From 21ff37aac182966a4e573e03355a2085049e31ba Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Sat, 28 Oct 2023 08:21:02 +0800 Subject: [PATCH 001/240] load origin value for param change proposal --- src/libs/api.ts | 1 + src/libs/client.ts | 4 ++++ src/libs/registry.ts | 2 ++ src/modules/[chain]/gov/[proposal_id].vue | 16 ++++++++++++++++ src/types/gov.ts | 2 ++ 5 files changed, 25 insertions(+) diff --git a/src/libs/api.ts b/src/libs/api.ts index 376b841b9f..bd9517652a 100644 --- a/src/libs/api.ts +++ b/src/libs/api.ts @@ -10,6 +10,7 @@ export const DEFAULT: RequestRegistry = { url: '/cosmos/auth/v1beta1/accounts/{address}', adapter, }, + params: { url: '/cosmos/params/v1beta1/params?subspace={subspace}&key={key}', adapter }, bank_params: { url: '/cosmos/bank/v1beta1/params', adapter }, bank_balances_address: { url: '/cosmos/bank/v1beta1/balances/{address}', diff --git a/src/libs/client.ts b/src/libs/client.ts index 38fc39b812..24ef754418 100644 --- a/src/libs/client.ts +++ b/src/libs/client.ts @@ -133,6 +133,10 @@ export class CosmosRestClient extends BaseRestClient { return this.request(this.registry.slashing_signing_info, {}, query); } // Gov + async getParams(subspace: string, key: string) { + console.log(this.registry.params, subspace, key) + return this.request(this.registry.params, {subspace, key}); + } async getGovParamsVoting() { return this.request(this.registry.gov_params_voting, {}); } diff --git a/src/libs/registry.ts b/src/libs/registry.ts index ce4230719b..1378ad2751 100644 --- a/src/libs/registry.ts +++ b/src/libs/registry.ts @@ -124,6 +124,8 @@ export interface RequestRegistry extends AbstractRegistry { base_tendermint_validatorsets_latest: Request; base_tendermint_validatorsets_height: Request; + params: Request<{param: any}>; + tx_txs: Request; tx_txs_block: Request; tx_hash: Request<{ tx: Tx; tx_response: TxResponse }>; diff --git a/src/modules/[chain]/gov/[proposal_id].vue b/src/modules/[chain]/gov/[proposal_id].vue index 1eaf5cd7c7..c837186947 100644 --- a/src/modules/[chain]/gov/[proposal_id].vue +++ b/src/modules/[chain]/gov/[proposal_id].vue @@ -4,6 +4,7 @@ import MdEditor from 'md-editor-v3'; import ObjectElement from '@/components/dynamic/ObjectElement.vue'; import { useBaseStore, + useBlockchain, useFormatter, useGovStore, useStakingStore, @@ -28,6 +29,7 @@ const format = useFormatter(); const store = useGovStore(); const dialog = useTxDialog(); const stakingStore = useStakingStore(); +const chainStore = useBlockchain(); store.fetchProposal(props.proposal_id).then((res) => { const proposalDetail = reactive(res.proposal); @@ -38,6 +40,20 @@ store.fetchProposal(props.proposal_id).then((res) => { }); } 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.origin){ + proposal.value.content.origin.push(res.param); + } else { + proposal.value.content.origin = [res.param]; + }; + } + }) + }) + } }); const color = computed(() => { diff --git a/src/types/gov.ts b/src/types/gov.ts index 02c9d6ef48..af84e43a97 100644 --- a/src/types/gov.ts +++ b/src/types/gov.ts @@ -28,6 +28,8 @@ export interface GovProposal { '@type': string; title?: string; description?: string; + origin?: any[] + changes?: any[]; plan?: { height?: string | number; time?: string | number; From f4732ec5946fdf4a43735b6eb26f949e02cbf3a7 Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Sat, 28 Oct 2023 09:04:47 +0800 Subject: [PATCH 002/240] change the field name --- src/modules/[chain]/gov/[proposal_id].vue | 6 +++--- src/types/gov.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/[chain]/gov/[proposal_id].vue b/src/modules/[chain]/gov/[proposal_id].vue index c837186947..c96e7b8708 100644 --- a/src/modules/[chain]/gov/[proposal_id].vue +++ b/src/modules/[chain]/gov/[proposal_id].vue @@ -45,10 +45,10 @@ store.fetchProposal(props.proposal_id).then((res) => { proposalDetail.content?.changes.forEach((item) => { chainStore.rpc.getParams(item.subspace, item.key).then((res) => { if(proposal.value.content && res.param) { - if(proposal.value.content.origin){ - proposal.value.content.origin.push(res.param); + if(proposal.value.content.current){ + proposal.value.content.current.push(res.param); } else { - proposal.value.content.origin = [res.param]; + proposal.value.content.current = [res.param]; }; } }) diff --git a/src/types/gov.ts b/src/types/gov.ts index af84e43a97..ead2546e64 100644 --- a/src/types/gov.ts +++ b/src/types/gov.ts @@ -28,7 +28,7 @@ export interface GovProposal { '@type': string; title?: string; description?: string; - origin?: any[] + current?: any[]; changes?: any[]; plan?: { height?: string | number; From 75f2c5b40cbbc3842114bd8263a50bae11358ed8 Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Sat, 28 Oct 2023 09:30:33 +0800 Subject: [PATCH 003/240] add unbonding validators --- .../[chain]/cosmwasm/[code_id]/transactions.vue | 13 ++++++++++++- src/stores/useStakingStore.ts | 3 +++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/modules/[chain]/cosmwasm/[code_id]/transactions.vue b/src/modules/[chain]/cosmwasm/[code_id]/transactions.vue index 664692e183..1cb8740fd1 100644 --- a/src/modules/[chain]/cosmwasm/[code_id]/transactions.vue +++ b/src/modules/[chain]/cosmwasm/[code_id]/transactions.vue @@ -1,6 +1,6 @@ diff --git a/src/router/index.ts b/src/router/index.ts index 7dc4a6d0ab..7030ae872b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -14,7 +14,7 @@ const router = createRouter({ router.beforeEach((to) => { const { chain } = to.params if(chain){ - const blockchain = useBlockchain() + const blockchain= useBlockchain() if(chain !== blockchain.chainName) { blockchain.setCurrent(chain.toString()) } diff --git a/src/stores/useWalletStore.ts b/src/stores/useWalletStore.ts index 5962287cce..2843e72e30 100644 --- a/src/stores/useWalletStore.ts +++ b/src/stores/useWalletStore.ts @@ -128,8 +128,11 @@ export const useWalletStore = defineStore('walletStore', { if(value) this.wallet = value }, suggestChain() { - // const router = useRouter() - router.push({path: '/wallet/keplr'}) + if (window.location.pathname === '/SIDE-Testnet') { + router.push({path: '/wallet/unisat'}) + } else { + router.push({path: '/wallet/keplr'}) + } } }, }); \ No newline at end of file From 51aaf66068e52f01121919d7c6a853db398e52fa Mon Sep 17 00:00:00 2001 From: showlizi Date: Fri, 14 Jun 2024 18:03:36 +0800 Subject: [PATCH 151/240] fix: route unisat --- src/layouts/components/NavBarWallet.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/components/NavBarWallet.vue b/src/layouts/components/NavBarWallet.vue index 98e1c0385a..db1b43b344 100644 --- a/src/layouts/components/NavBarWallet.vue +++ b/src/layouts/components/NavBarWallet.vue @@ -43,7 +43,7 @@ const tipMsg = computed(() => { let chainId = baseStore?.value?.currentChainId; let params = ''; -if (route.path === '/SIDE-Testnet') { +if (route.path === '/SIDE-Testnet' || route.path === '/wallet/unisat') { chainId = 'S2-testnet-2'; params = JSON.stringify({ wallet: ['okex', 'unisat'] From 4b6930b040f2d91cd4de782b4072649c8d0f3cdb Mon Sep 17 00:00:00 2001 From: ping <18786721@qq.com> Date: Sun, 16 Jun 2024 08:08:29 +0800 Subject: [PATCH 152/240] Delete chains/mainnet/side.json --- chains/mainnet/side.json | 81 ---------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 chains/mainnet/side.json diff --git a/chains/mainnet/side.json b/chains/mainnet/side.json deleted file mode 100644 index cbfc804184..0000000000 --- a/chains/mainnet/side.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "chain_name": "SIDE-Testnet", - "api": [], - "rpc": [ - "https://testnet-rpc.side.one", - "https://testnet-rpc2.side.one" - ], - "faucet": "https://testnet.side.one/faucet", - "snapshot_provider": "", - "sdk_version": "0.45.6", - "coin_type": "118", - "min_tx_fee": "800", - "addr_prefix": "side", - "logo": "/logos/side.png", - "theme_color": "#161723", - "assets": [ - { - "base": "uside", - "symbol": "SIDE", - "name": "Side protocol", - "exponent": "6", - "coingecko_id": "usd-coin", - "logo": "side-SIDE", - "precision": 6 - }, - { - "base": "abtct", - "symbol": "BTCT", - "name": "Bitcoin Token", - "exponent": "8", - "coingecko_id": "bitcoin", - "logo": "", - "precision": 8 - }, - { - "base": "uusdc", - "symbol": "USDC", - "name": "USD Coin", - "exponent": "6", - "coingecko_id": "usd-coin", - "logo": "side-USDC", - "precision": 6 - }, - { - "base": "uusdt", - "symbol": "USDT", - "name": "Tether USD", - "exponent": "6", - "coingecko_id": "usd-coin", - "logo": "data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMzkuNDMgMjk1LjI3Ij48dGl0bGU+dGV0aGVyLXVzZHQtbG9nbzwvdGl0bGU+PHBhdGggZD0iTTYyLjE1LDEuNDVsLTYxLjg5LDEzMGEyLjUyLDIuNTIsMCwwLDAsLjU0LDIuOTRMMTY3Ljk1LDI5NC41NmEyLjU1LDIuNTUsMCwwLDAsMy41MywwTDMzOC42MywxMzQuNGEyLjUyLDIuNTIsMCwwLDAsLjU0LTIuOTRsLTYxLjg5LTEzMEEyLjUsMi41LDAsMCwwLDI3NSwwSDY0LjQ1YTIuNSwyLjUsMCwwLDAtMi4zLDEuNDVoMFoiIHN0eWxlPSJmaWxsOiM1MGFmOTU7ZmlsbC1ydWxlOmV2ZW5vZGQiLz48cGF0aCBkPSJNMTkxLjE5LDE0NC44djBjLTEuMi4wOS03LjQsMC40Ni0yMS4yMywwLjQ2LTExLDAtMTguODEtLjMzLTIxLjU1LTAuNDZ2MGMtNDIuNTEtMS44Ny03NC4yNC05LjI3LTc0LjI0LTE4LjEzczMxLjczLTE2LjI1LDc0LjI0LTE4LjE1djI4LjkxYzIuNzgsMC4yLDEwLjc0LjY3LDIxLjc0LDAuNjcsMTMuMiwwLDE5LjgxLS41NSwyMS0wLjY2di0yOC45YzQyLjQyLDEuODksNzQuMDgsOS4yOSw3NC4wOCwxOC4xM3MtMzEuNjUsMTYuMjQtNzQuMDgsMTguMTJoMFptMC0zOS4yNVY3OS42OGg1OS4yVjQwLjIzSDg5LjIxVjc5LjY4SDE0OC40djI1Ljg2Yy00OC4xMSwyLjIxLTg0LjI5LDExLjc0LTg0LjI5LDIzLjE2czM2LjE4LDIwLjk0LDg0LjI5LDIzLjE2djgyLjloNDIuNzhWMTUxLjgzYzQ4LTIuMjEsODQuMTItMTEuNzMsODQuMTItMjMuMTRzLTM2LjA5LTIwLjkzLTg0LjEyLTIzLjE1aDBabTAsMGgwWiIgc3R5bGU9ImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZCIvPjwvc3ZnPg==", - "precision": 6 - }, - { - "base": "uwbtc", - "coingecko_id": "bitcoin", - "exponent": "8", - "logo": "", - "name": "Wrapped BTC", - "precision": 8, - "symbol": "wBTC" - }, - { - "base": "ibc/F082B65C88E4B6D5EF1DB243CDA1D331D002759E938A0F5CD3FFDC5D53B3E349", - "symbol": "USDC", - "name": "USD Coin (ibc)", - "exponent": "6", - "coingecko_id": "usd-coin", - "logo": "side-USDC", - "precision": 6 - }, - { - "base": "ibc/4BDF2D63B8FFE3454AF30E9BC10D2D7979BD3A938D989889ABC94FC5B86F1E2D", - "symbol": "aUSDC", - "name": "aUSDC.axl (ibc)", - "exponent": "6", - "coingecko_id": "usd-coin", - "logo": "https://testnet.satellite.money/assets/tokens/uausdc.logo.svg", - "precision": 6 - } - ] -} From 9d882785f4d38283acac0766ff4b6145b4d0bb9c Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Sun, 16 Jun 2024 08:48:48 +0800 Subject: [PATCH 153/240] update wallet connect --- index.html | 2 +- src/layouts/components/NavBarWallet.vue | 26 ++++++++++--------------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/index.html b/index.html index 3c1c9f9468..156b08af67 100644 --- a/index.html +++ b/index.html @@ -38,7 +38,7 @@ }); gtag('config', 'G-SSBKVF3GMX'); - + diff --git a/src/layouts/components/NavBarWallet.vue b/src/layouts/components/NavBarWallet.vue index db1b43b344..f80eaa1a1f 100644 --- a/src/layouts/components/NavBarWallet.vue +++ b/src/layouts/components/NavBarWallet.vue @@ -34,21 +34,15 @@ const tipMsg = computed(() => { ? { class: 'error', msg: 'Copy Error!' } : { class: 'success', msg: 'Copy Success!' }; }); -// console.log(`route: `, route); -// console.log(`baseStore: `, baseStore); -// console.log(`baseStore: currentChainId`, baseStore.currentChainId); -// console.log(`baseStore: defaultHDPath`, chainStore?.value?.defaultHDPath); -// console.log(`baseStore: `, walletStateChange); -// console.log(`baseStore: `, walletStore.suggestChain()); -let chainId = baseStore?.value?.currentChainId; -let params = ''; -if (route.path === '/SIDE-Testnet' || route.path === '/wallet/unisat') { - chainId = 'S2-testnet-2'; - params = JSON.stringify({ - wallet: ['okex', 'unisat'] - }) -} +const params = computed(() => { + if (chainStore.chainName == 'side') { + return JSON.stringify({ + wallet: ['okex', 'unisat'], + }); + } + return ""; +}); @@ -101,9 +95,9 @@ if (route.path === '/SIDE-Testnet' || route.path === '/wallet/unisat') { - + @keplr-config="walletStore.suggestChain()" :params="params" /> From 01958fb73b4a9172cbf6dfaf390d0b3e1341ec5d Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Sun, 16 Jun 2024 08:56:29 +0800 Subject: [PATCH 154/240] fix wallet --- src/layouts/components/NavBarWallet.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/components/NavBarWallet.vue b/src/layouts/components/NavBarWallet.vue index f80eaa1a1f..fc52e61674 100644 --- a/src/layouts/components/NavBarWallet.vue +++ b/src/layouts/components/NavBarWallet.vue @@ -95,7 +95,7 @@ const params = computed(() => { - From d45fb91328cea0a046e374ee0cc670902e85bb01 Mon Sep 17 00:00:00 2001 From: omahs <73983677+omahs@users.noreply.github.com> Date: Sun, 16 Jun 2024 06:59:55 +0200 Subject: [PATCH 155/240] fix typos --- chains/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chains/README.md b/chains/README.md index 7b651cfadd..dbb910de04 100644 --- a/chains/README.md +++ b/chains/README.md @@ -1,10 +1,10 @@ # Directory Layout -** if you want to list your blockhain on ping.pub, please submit your configure on https://github.com/ping-pub/ping.pub.git ** +** if you want to list your blockchain on ping.pub, please submit your configuration on https://github.com/ping-pub/ping.pub.git ** - Submit configs for mainnet, go to https://github.com/ping-pub/explorer/tree/master/chains/mainnet -- Submit configs for testnet, go to https://github.com/ping-pub/explorer/tree/master/chains/testnet, thess configs will be enabled when you visit the domain starts withs `testnet.*`, for example `https://testnet.ping.pub` +- Submit configs for testnet, go to https://github.com/ping-pub/explorer/tree/master/chains/testnet, these configs will be enabled when you visit the domain that starts with `testnet.*`, for example `https://testnet.ping.pub` # Sample of Config From a850809952cea86d63a60eb31b967646e9209cf0 Mon Sep 17 00:00:00 2001 From: omahs <73983677+omahs@users.noreply.github.com> Date: Sun, 16 Jun 2024 07:00:22 +0200 Subject: [PATCH 156/240] fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 342d5900e3..051bc973d9 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Your donation will help us make better products. Thanks in advance. ## Hire us -You can hire us by submiting an issue and fund the issue on [IssueHunter](https://issuehunt.io/r/ping-pub/explorer) +You can hire us by submitting an issue and fund the issue on [IssueHunter](https://issuehunt.io/r/ping-pub/explorer) ## Contributors From 738fc5518289773c092fdcf873c21ee93701cc88 Mon Sep 17 00:00:00 2001 From: Arnaud Mimart <33665250+amimart@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:31:42 +0200 Subject: [PATCH 157/240] fix(staking): correct APR computation formula --- src/modules/[chain]/staking/[validator].vue | 12 +++++++----- src/stores/useBlockchain.ts | 4 +++- src/stores/useDistributionStore.ts | 17 ++++++++++++++++- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/modules/[chain]/staking/[validator].vue b/src/modules/[chain]/staking/[validator].vue index d253d092f9..a4f883c8ee 100644 --- a/src/modules/[chain]/staking/[validator].vue +++ b/src/modules/[chain]/staking/[validator].vue @@ -1,7 +1,9 @@ From ff111eb57ee5a458fd2b95630b5e25ee7b52a2cc Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Sun, 1 Sep 2024 15:19:09 +0800 Subject: [PATCH 165/240] fix error --- chains/mainnet/cosmos.json | 9 ++------- src/modules/[chain]/nft/types.ts | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/chains/mainnet/cosmos.json b/chains/mainnet/cosmos.json index 2bd610640d..954ec4bba4 100644 --- a/chains/mainnet/cosmos.json +++ b/chains/mainnet/cosmos.json @@ -2,14 +2,9 @@ "chain_name": "cosmos", "registry_name": "cosmoshub", "api": [ - {"provider": "notional", "address": "https://api-cosmoshub-ia.cosmosia.notional.ventures"}, - {"provider": "blockapsis", "address": "https://lcd-cosmoshub.blockapsis.com:443"}, - {"provider": "WhisperNode🤐", "address": "https://lcd-cosmoshub.whispernode.com:443"}, - {"provider": "pupmos", "address": "https://api-cosmoshub.pupmos.network"}, + {"provider": "cosmos.directory", "address": "https://rest.cosmos.directory/cosmoshub"}, {"provider": "publicnode", "address": "https://cosmos-rest.publicnode.com"}, - {"provider": "staketab", "address": "https://cosmos-rest.staketab.org"}, - {"provider": "nodestake", "address": "https://api.cosmos.nodestake.top"}, - {"provider": "Golden Ratio Staking", "address": "https://rest-cosmoshub.goldenratiostaking.net"} + {"provider": "silknode", "address": "https://cosmos.api.silknodes.io"} ], "rpc": [ {"provider": "icycro", "address": "https://cosmos-rpc.icycro.org"}, diff --git a/src/modules/[chain]/nft/types.ts b/src/modules/[chain]/nft/types.ts index 044a7b7c15..65fe56ccce 100644 --- a/src/modules/[chain]/nft/types.ts +++ b/src/modules/[chain]/nft/types.ts @@ -1,6 +1,6 @@ import { BaseRestClient } from '@/libs/client'; -import { adapter, type AbstractRegistry, type Request } from '@/libs/registry'; +import { adapter, type AbstractRegistry, type Request } from '@/libs/api/registry'; import { PageRequest, type PaginatedResponse } from '@/types'; export interface Classes { From 1243306c691086996d8ca6ce46e37511034fd0b4 Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Sun, 1 Sep 2024 16:29:11 +0800 Subject: [PATCH 166/240] test provider validators --- src/libs/api/customization/README.md | 0 src/libs/api/customization/v0.46.0.ts | 2 +- src/libs/api/customization/v0.50.0.ts | 2 +- src/libs/api/index.ts | 4 ++++ src/libs/api/registry.ts | 1 + src/libs/client.ts | 3 +++ src/stores/useStakingStore.ts | 4 ++++ 7 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 src/libs/api/customization/README.md diff --git a/src/libs/api/customization/README.md b/src/libs/api/customization/README.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/libs/api/customization/v0.46.0.ts b/src/libs/api/customization/v0.46.0.ts index e6b4c15b0a..36aa780553 100644 --- a/src/libs/api/customization/v0.46.0.ts +++ b/src/libs/api/customization/v0.46.0.ts @@ -12,7 +12,7 @@ import type { // which registry is store export const store = 'version' // name or version -// Blockchain Name +// Cosmos SDK version export const name = 'v0.46.7' function proposalAdapter(p: any): GovProposal { diff --git a/src/libs/api/customization/v0.50.0.ts b/src/libs/api/customization/v0.50.0.ts index 578c759ddd..fec605ba27 100644 --- a/src/libs/api/customization/v0.50.0.ts +++ b/src/libs/api/customization/v0.50.0.ts @@ -12,7 +12,7 @@ import type { // which registry is store export const store = 'version' // name or version -// Blockchain Name +// Cosmos SDK version export const name = 'v0.50.0' function proposalAdapter(p: any): GovProposal { diff --git a/src/libs/api/index.ts b/src/libs/api/index.ts index bd9517652a..8e1170e4f7 100644 --- a/src/libs/api/index.ts +++ b/src/libs/api/index.ts @@ -195,4 +195,8 @@ export const DEFAULT: RequestRegistry = { url: '/interchain_security/ccv/provider/validator_consumer_addr?provider_address={provider_address}&chain_id={chain_id}', adapter, }, + interchain_security_provider_opted_in_validators: { + url: '/interchain_security/ccv/provider/opted_in_validators/{chain_id}', + adapter, + }, }; diff --git a/src/libs/api/registry.ts b/src/libs/api/registry.ts index 56fba5d0a1..462a3b336b 100644 --- a/src/libs/api/registry.ts +++ b/src/libs/api/registry.ts @@ -152,6 +152,7 @@ export interface RequestRegistry extends AbstractRegistry { ibc_core_connection_connections_connection_id: Request; ibc_core_connection_connections_connection_id_client_state: Request; interchain_security_ccv_provider_validator_consumer_addr: Request<{consumer_address: string}> + interchain_security_provider_opted_in_validators: Request<{validators_provider_addresses: string[]}> } export function adapter(source: any): Promise { diff --git a/src/libs/client.ts b/src/libs/client.ts index 3a7213ad5e..13a9ba1301 100644 --- a/src/libs/client.ts +++ b/src/libs/client.ts @@ -362,4 +362,7 @@ export class CosmosRestClient extends BaseRestClient { async getInterchainSecurityValidatorRotatedKey(chain_id: string, provider_address: string) { return this.request(this.registry.interchain_security_ccv_provider_validator_consumer_addr, {chain_id, provider_address}); } + async getInterchainSecurityProviderOptedInValidators(chain_id: string) { + return this.request(this.registry.interchain_security_provider_opted_in_validators, {chain_id}); + } } diff --git a/src/stores/useStakingStore.ts b/src/stores/useStakingStore.ts index 35ccbeb65b..a2876bc473 100644 --- a/src/stores/useStakingStore.ts +++ b/src/stores/useStakingStore.ts @@ -94,6 +94,10 @@ export const useStakingStore = defineStore('stakingStore', { if(exists < 0) { const client = CosmosRestClient.newDefault(this.blockchain.current.providerChain.api[0].address) + + client.getInterchainSecurityProviderOptedInValidators(chain_id).then((res) => { + console.log(res) + }) const res = await client.getInterchainSecurityValidatorRotatedKey(chain_id, validatorAddr); if(res.consumer_address) { this.keyRotation[validatorAddr] = res.consumer_address From fac4c1a543f023a4bee903e27352290c68166b93 Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Sun, 1 Sep 2024 23:27:43 +0800 Subject: [PATCH 167/240] improve consumer uptime --- chains/mainnet/neutron.json | 2 +- src/libs/address.ts | 20 ++++++++++++- src/libs/api/index.ts | 4 +++ src/libs/api/registry.ts | 1 + src/libs/client.ts | 3 ++ src/modules/[chain]/uptime/index.vue | 42 ++++++++++++++++++---------- src/stores/useBlockchain.ts | 4 ++- src/stores/useStakingStore.ts | 41 +++++++++++++++++++-------- 8 files changed, 89 insertions(+), 28 deletions(-) diff --git a/chains/mainnet/neutron.json b/chains/mainnet/neutron.json index 864e67f10b..76fc3dd6d2 100644 --- a/chains/mainnet/neutron.json +++ b/chains/mainnet/neutron.json @@ -11,7 +11,7 @@ {"provider": "Allnodes", "address": "https://neutron-rpc.publicnode.com:443"} ], "provider_chain": { - "api": ["https://api-cosmoshub-ia.cosmosia.notional.ventures"] + "api": ["https://rest.cosmos.directory/cosmoshub"] }, "features": ["dashboard", "blocks", "ibc", "cosmwasm", "uptime", "parameters", "state-sync", "consensus", "supply", "widget"], "sdk_version": "0.45.1", diff --git a/src/libs/address.ts b/src/libs/address.ts index 54695c71c0..1bd5f46b88 100644 --- a/src/libs/address.ts +++ b/src/libs/address.ts @@ -1,6 +1,7 @@ import { fromBase64, fromBech32, + toBase64, toBech32, toHex, } from '@cosmjs/encoding'; @@ -42,6 +43,23 @@ export function consensusPubkeyToHexAddress(consensusPubkey?: { return raw; } +// not work as expected, will fix later or remove +export function consumerKeyToBase64Address(consumerKey?: Record) { + + if (!consumerKey) return ''; + let raw = ''; + if (consumerKey.ed25519) { + const pubkey = fromBase64(consumerKey.ed25519); + if (pubkey) return toBase64(sha256(pubkey)).slice(0, 40); + } + + if (consumerKey.secp256k1) { + const pubkey = fromBase64(consumerKey.secp256k1); + if (pubkey) return toBase64(new Ripemd160().update(sha256(pubkey)).digest()); + } + return raw; +} + export function pubKeyToValcons( consensusPubkey: { '@type': string; key: string }, prefix: string @@ -57,7 +75,7 @@ export function pubKeyToValcons( } export function valconsToBase64(address: string) { - if (address) return toHex(fromBech32(address).data).toUpperCase(); + if (address) return toBase64(fromBech32(address).data); return ''; } diff --git a/src/libs/api/index.ts b/src/libs/api/index.ts index 8e1170e4f7..ff8efdcc5b 100644 --- a/src/libs/api/index.ts +++ b/src/libs/api/index.ts @@ -199,4 +199,8 @@ export const DEFAULT: RequestRegistry = { url: '/interchain_security/ccv/provider/opted_in_validators/{chain_id}', adapter, }, + interchain_security_consumer_validators: { + url: '/interchain_security/ccv/provider/consumer_validators/{chain_id}', + adapter, + }, }; diff --git a/src/libs/api/registry.ts b/src/libs/api/registry.ts index 462a3b336b..2787c9b1bc 100644 --- a/src/libs/api/registry.ts +++ b/src/libs/api/registry.ts @@ -153,6 +153,7 @@ export interface RequestRegistry extends AbstractRegistry { ibc_core_connection_connections_connection_id_client_state: Request; interchain_security_ccv_provider_validator_consumer_addr: Request<{consumer_address: string}> interchain_security_provider_opted_in_validators: Request<{validators_provider_addresses: string[]}> + interchain_security_consumer_validators: Request<{validators: {provider_address: string, consumer_key: {ed25519: string}, power: string}[]}> } export function adapter(source: any): Promise { diff --git a/src/libs/client.ts b/src/libs/client.ts index 13a9ba1301..932ea2f156 100644 --- a/src/libs/client.ts +++ b/src/libs/client.ts @@ -365,4 +365,7 @@ export class CosmosRestClient extends BaseRestClient { async getInterchainSecurityProviderOptedInValidators(chain_id: string) { return this.request(this.registry.interchain_security_provider_opted_in_validators, {chain_id}); } + async getInterchainSecurityConsumerValidators(chain_id: string) { + return this.request(this.registry.interchain_security_consumer_validators, {chain_id}); + } } diff --git a/src/modules/[chain]/uptime/index.vue b/src/modules/[chain]/uptime/index.vue index 6f0e8383e4..b9663a0fdc 100644 --- a/src/modules/[chain]/uptime/index.vue +++ b/src/modules/[chain]/uptime/index.vue @@ -1,6 +1,6 @@