diff --git a/src/components/ProposalProcess.vue b/src/components/ProposalProcess.vue index b970feca..54fa93ad 100644 --- a/src/components/ProposalProcess.vue +++ b/src/components/ProposalProcess.vue @@ -13,6 +13,7 @@ const props = defineProps({ }>, }, }); +console.log(props); const total = computed(() => props.pool?.bonded_tokens); const format = useFormatter(); const yes = computed(() => diff --git a/src/libs/client.ts b/src/libs/client.ts index 0b8277a5..818c35f8 100644 --- a/src/libs/client.ts +++ b/src/libs/client.ts @@ -46,6 +46,8 @@ import type { SlashingExtension, } from '@cosmjs/stargate/build/modules'; import type { BondStatusString } from '@cosmjs/stargate/build/modules/staking/queries'; +import type { ProposalStatus } from 'cosmjs-types/cosmos/gov/v1beta1/gov'; +import { fromBase64 } from '@cosmjs/encoding'; export class BaseRestClient { endpoint: string; @@ -176,9 +178,7 @@ export class CosmosRestClient extends BaseRestClient { // if (!page) page = new PageRequest(); // const query = `?${page.toQueryString()}`; // return this.request(this.registry.bank_supply, {}, query); - const paginationKey = page?.key - ? Buffer.from(page.key, 'base64') - : undefined; + const paginationKey = page?.key ? fromBase64(page.key) : undefined; const res = await this.queryClient.bank.totalSupply(paginationKey); console.log(res); return res; @@ -291,15 +291,13 @@ export class CosmosRestClient extends BaseRestClient { console.log(res); return res; } - async getGovProposals(status: string, page?: PageRequest) { + async getGovProposals(status: ProposalStatus, page?: PageRequest) { if (!page) page = new PageRequest(); page.reverse = true; // const query = `?proposal_status={status}&${page.toQueryString()}`; // return this.request(this.registry.gov_proposals, { status }, query); - const paginationKey = page?.key - ? Buffer.from(page.key, 'base64') - : undefined; - // @ts-ignore + const paginationKey = page?.key ? fromBase64(page.key) : undefined; + const res = this.queryClient.gov.proposals(status, '', '', paginationKey); console.log(res); return res; @@ -344,9 +342,7 @@ export class CosmosRestClient extends BaseRestClient { // query // ); - const paginationKey = page?.key - ? Buffer.from(page.key, 'base64') - : undefined; + const paginationKey = page?.key ? fromBase64(page.key) : undefined; const res = await this.queryClient.gov.votes(proposal_id, paginationKey); console.log(res); return res; @@ -626,9 +622,7 @@ export class CosmosRestClient extends BaseRestClient { // {}, // query // ); - const paginationKey = page?.key - ? Buffer.from(page.key, 'base64') - : undefined; + const paginationKey = page?.key ? fromBase64(page.key) : undefined; const res = await this.queryClient.ibc.connection.connections( paginationKey ); diff --git a/src/modules/[chain]/gov/[proposal_id].vue b/src/modules/[chain]/gov/[proposal_id].vue index ec3650f3..99232c2a 100644 --- a/src/modules/[chain]/gov/[proposal_id].vue +++ b/src/modules/[chain]/gov/[proposal_id].vue @@ -22,7 +22,6 @@ import Countdown from '@/components/Countdown.vue'; import PaginationBar from '@/components/PaginationBar.vue'; import { fromBech32, toHex } from '@cosmjs/encoding'; - const props = defineProps(['proposal_id', 'chain']); const proposal = ref({} as GovProposal); const format = useFormatter(); @@ -36,23 +35,23 @@ store.fetchProposal(props.proposal_id).then((res) => { // when status under the voting, final_tally_result are no data, should request fetchTally if (res.proposal?.status === 'PROPOSAL_STATUS_VOTING_PERIOD') { store.fetchTally(props.proposal_id).then((tallRes) => { - proposalDetail.final_tally_result = tallRes?.tally; + proposalDetail.final_tally_result = tallRes.tally; }); } proposal.value = proposalDetail; // load origin params if the proposal is param change - if(proposalDetail.content?.changes) { - proposalDetail.content?.changes.forEach((item) => { - chainStore.rpc.getParams(item.subspace, item.key).then((res) => { - if(proposal.value.content && res.param) { - if(proposal.value.content.current){ - proposal.value.content.current.push(res.param); - } else { - proposal.value.content.current = [res.param]; - }; + if (proposalDetail.content?.changes) { + proposalDetail.content?.changes.forEach((item) => { + chainStore.rpc.getParams(item.subspace, item.key).then((res) => { + if (proposal.value.content && res.param) { + if (proposal.value.content.current) { + proposal.value.content.current.push(res.param); + } else { + proposal.value.content.current = [res.param]; } - }) - }) + } + }); + }); } }); @@ -186,17 +185,27 @@ function pageload(p: number) { }); } -function metaItem(metadata: string|undefined): { title: string; summary: string } { - return metadata ? JSON.parse(metadata) : {} +function metaItem(metadata: string | undefined): { + title: string; + summary: string; +} { + return metadata ? JSON.parse(metadata) : {}; }