diff --git a/public/logos/keplr-logo.svg b/public/logos/keplr-logo.svg new file mode 100644 index 00000000..666736bc --- /dev/null +++ b/public/logos/keplr-logo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/logos/ledger.png b/public/logos/ledger.png new file mode 100644 index 00000000..aa4c8445 Binary files /dev/null and b/public/logos/ledger.png differ diff --git a/src/components/ProposalListItem.vue b/src/components/ProposalListItem.vue index 58032010..00f3ddaa 100644 --- a/src/components/ProposalListItem.vue +++ b/src/components/ProposalListItem.vue @@ -115,19 +115,11 @@ const proposalInfo = ref(); for="vote" class="btn btn-xs btn-primary rounded-sm" @click="dialog.open('vote', { proposal_id: item?.proposal_id })" - >Vote + {{ item?.voterStatus.replace("VOTE_OPTION_", "")}} + Vote + -
- - {{ item?.voterStatus }} -
diff --git a/src/modules/[chain]/gov/[proposal_id].vue b/src/modules/[chain]/gov/[proposal_id].vue index d0152fd5..c3d5f4fe 100644 --- a/src/modules/[chain]/gov/[proposal_id].vue +++ b/src/modules/[chain]/gov/[proposal_id].vue @@ -18,12 +18,14 @@ PageRequest, import { ref, reactive } from 'vue'; 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(); const store = useGovStore(); const dialog = useTxDialog(); +const stakingStore = useStakingStore(); store.fetchProposal(props.proposal_id).then((res) => { const proposalDetail = reactive(res.proposal); @@ -102,7 +104,7 @@ const total = computed(() => { const turnout = computed(() => { if (total.value > 0) { - const bonded = useStakingStore().pool?.bonded_tokens || '1'; + const bonded = stakingStore.pool?.bonded_tokens || '1'; return format.percent(total.value / Number(bonded)); } return 0; @@ -149,6 +151,13 @@ const processList = computed(() => { ]; }); +function showValidatorName(voter: string) { + const {data} = fromBech32(voter) + const hex = toHex(data) + const v = stakingStore.validators.find( x => toHex(fromBech32(x.operator_address).data) === hex) + return v? v.description.moniker : voter +} + function pageload(p: number) { pageRequest.value.setPage(p) store @@ -324,7 +333,7 @@ function pageload(p: number) { - + diff --git a/src/modules/[chain]/index.vue b/src/modules/[chain]/index.vue index 81971af4..ff35ed95 100644 --- a/src/modules/[chain]/index.vue +++ b/src/modules/[chain]/index.vue @@ -267,9 +267,7 @@ const color = computed(() => { {{ format.formatToken(walletStore.balanceOfStakingToken) }}
- - ${{ format.tokenValue(walletStore.balanceOfStakingToken) }} - + ${{ format.tokenValue(walletStore.balanceOfStakingToken) }}
diff --git a/src/stores/useDashboard.ts b/src/stores/useDashboard.ts index 78fa9a17..269acc5e 100644 --- a/src/stores/useDashboard.ts +++ b/src/stores/useDashboard.ts @@ -265,7 +265,7 @@ export const useDashboard = defineStore('dashboard', { favorite: fav as string[], favoriteMap: favMap as Record, chains: {} as Record, - prices: {}, + prices: {} as Record, coingecko: {} as Record, }; }, diff --git a/src/stores/useFormatter.ts b/src/stores/useFormatter.ts index 0e9de4a0..13b3583c 100644 --- a/src/stores/useFormatter.ts +++ b/src/stores/useFormatter.ts @@ -69,7 +69,7 @@ export const useFormatter = defineStore('formatter', { return trace; }, priceInfo(denom: string) { - const id = this.dashboard.coingecko[denom]?.coinId; + const id = this.dashboard.coingecko[denom]?.coinId || ""; const prices = this.dashboard.prices[id]; return prices; }, @@ -96,7 +96,10 @@ export const useFormatter = defineStore('formatter', { return v!==0 ? numeral(v).format("+0,0.[00]"): "" }, tokenValue(token?: Coin) { - return token ? numeral(this.formatTokenAmount(token)).format('0,0.[00]') : "" + if(token) { + return numeral(this.tokenValueNumber(token)).format("0,0.[00]") + } + return "" }, tokenValueNumber(token?: Coin) { if(!token) return 0 @@ -129,7 +132,7 @@ export const useFormatter = defineStore('formatter', { formatToken( token?: { denom: string; amount: string }, withDenom = true, - fmt = '0.0a', + fmt = '0,0.[0]', mode = 'local' ): string { if (token && token.amount && token?.denom) { diff --git a/src/stores/useWalletStore.ts b/src/stores/useWalletStore.ts index 9643e564..eebea3a1 100644 --- a/src/stores/useWalletStore.ts +++ b/src/stores/useWalletStore.ts @@ -42,8 +42,9 @@ export const useWalletStore = defineStore('walletStore', { ); }, stakingAmount() { + const stakingStore = useStakingStore(); let amt = 0; - let denom = ''; + let denom = stakingStore.params.bond_denom; this.delegations.forEach((i) => { amt += Number(i.balance.amount); denom = i.balance.denom;
{{ item.voter }}{{ showValidatorName(item.voter) }} - {{ item.option }} + {{ String(item.option).replace("VOTE_OPTION_", "") }}