From 6faf69c6f99e5f068d388d2bc49af1876b5710df Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Mon, 25 Dec 2023 09:22:04 +0800 Subject: [PATCH] update evmos gov api --- src/libs/clients/evmos.ts | 52 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/src/libs/clients/evmos.ts b/src/libs/clients/evmos.ts index a4fbd277..72e35248 100644 --- a/src/libs/clients/evmos.ts +++ b/src/libs/clients/evmos.ts @@ -1,9 +1,59 @@ import type{ RequestRegistry } from '@/libs/registry' - +import { adapter } from '@/libs/registry' +import { GovProposal, PaginatedProposals } from '@/types' // which registry is store export const store = 'name' // name or version // Blockchain Name export const name = 'evmos' + +function proposalAdapter(p: any): GovProposal { + if(p) { + if(p.messages && p.messages.length >= 1) p.content = p.messages[0].content || p.messages[0] + p.proposal_id = p.id + p.final_tally_result = { + yes: p.final_tally_result?.yes_count, + no: p.final_tally_result?.no_count, + no_with_veto: p.final_tally_result?.no_with_veto_count, + abstain: p.final_tally_result?.abstain_count, + } + } + return p +} + export const requests: Partial = { mint_inflation: { url: '/evmos/inflation/v1/inflation_rate', adapter: (data: any) => ({inflation: (Number(data.inflation_rate || 0)/ 100 ).toFixed(2)}) }, + gov_params_voting: { url: '/cosmos/gov/v1/params/voting', adapter }, + gov_params_tally: { url: '/cosmos/gov/v1/params/tallying', adapter }, + gov_params_deposit: { url: '/cosmos/gov/v1/params/deposit', adapter }, + gov_proposals: { url: '/cosmos/gov/v1/proposals', adapter: (source: any): PaginatedProposals => { + const proposals = source.proposals.map((p:any) => proposalAdapter(p)) + return { + proposals, + pagination: source.pagination + } + }}, + gov_proposals_proposal_id: { + url: '/cosmos/gov/v1/proposals/{proposal_id}', + adapter: (source: any): {proposal: GovProposal} => { + return { + proposal: proposalAdapter(source.proposal) + } + }, + }, + gov_proposals_deposits: { + url: '/cosmos/gov/v1/proposals/{proposal_id}/deposits', + adapter, + }, + gov_proposals_tally: { + url: '/cosmos/gov/v1/proposals/{proposal_id}/tally', + adapter, + }, + gov_proposals_votes: { + url: '/cosmos/gov/v1/proposals/{proposal_id}/votes', + adapter, + }, + gov_proposals_votes_voter: { + url: '/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}', + adapter, + }, }