diff --git a/public/icons.svg b/public/icons.svg
index f708c1db..37362bba 100644
--- a/public/icons.svg
+++ b/public/icons.svg
@@ -96,4 +96,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/App.vue b/src/App.vue
index cd644601..7c912bd2 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -2,21 +2,9 @@
diff --git a/src/common/b64.ts b/src/common/b64.ts
index 715a332c..cb2f3615 100644
--- a/src/common/b64.ts
+++ b/src/common/b64.ts
@@ -1,3 +1,3 @@
export const urlSafeEncode = (value: string) => {
- return value.replace('+/gi', '_').replace('\//gi', '-');
+ return value.replace(/\+/gi, '_').replace(/\//g, '-');
}
diff --git a/src/common/chart.ts b/src/common/chart.ts
index c710540d..224219a6 100644
--- a/src/common/chart.ts
+++ b/src/common/chart.ts
@@ -36,10 +36,12 @@ export const getMappedVotes = (details: DetailedVote) => {
export const getMappedTimeline = (details: DetailedVote): TimelineData[] => {
const timeline = details.timeline.map((el) => {
if (el) {
+ const postfix = el.time && !compareNow(el.time) ? 'ago' : 'left';
+
return ({
label: el.title,
active: el.time ? !compareNow(el.time) : false,
- subtitle: el.time ? `${fromNow(el.time)} ago` : '--'
+ subtitle: el.time ? `${fromNow(el.time)} ${postfix}` : 'N/A'
});
}
});
diff --git a/src/common/cosmos-reducer.ts b/src/common/cosmos-reducer.ts
index 34e55178..6dc809a4 100644
--- a/src/common/cosmos-reducer.ts
+++ b/src/common/cosmos-reducer.ts
@@ -390,7 +390,7 @@ const proposalStatusMap = (status: ProposalRawStatus) => {
}
}
-export const proposalReducer = (proposal: ProposalRaw, totalBondedTokens: string, detailedVotes: DetailedVote): Proposal => {
+export const proposalReducer = (proposal: ProposalRaw, totalBondedTokens: string, detailedVotes: DetailedVote | null): Proposal => {
const typeStringArray = proposal.content['@type'].split('.')
const typeString = typeStringArray[typeStringArray.length - 1];
const type = proposalTypeEnumDictionary[typeString] as ProposalType;
@@ -405,10 +405,10 @@ export const proposalReducer = (proposal: ProposalRaw, totalBondedTokens: string
status: proposalStatusMap(proposal.status),
statusBeginTime: proposalBeginTime(proposal),
statusEndTime: proposalEndTime(proposal),
- tally: tallyReducer(proposal, detailedVotes.tally, totalBondedTokens),
+ tally: detailedVotes ? tallyReducer(proposal, detailedVotes.tally, totalBondedTokens) : null,
deposit: getDeposit(proposal),
summary: getProposalSummary(type),
- detailedVotes,
+ detailedVotes: detailedVotes ? detailedVotes : null,
}
}
diff --git a/src/components/BalanceSummary.vue b/src/components/BalanceSummary.vue
index c04613d0..88d8eed9 100644
--- a/src/components/BalanceSummary.vue
+++ b/src/components/BalanceSummary.vue
@@ -7,12 +7,12 @@
- APR
+ TOTAL ({{ network.stakingDenom }})
-
+
- {{ apr }}
+ {{ balance ? balance.total : 0 }}
@@ -22,7 +22,7 @@
REWARDS ({{ network.stakingDenom }})
-
+
{{ rewards }}
@@ -34,14 +34,14 @@
AVAILABLE ({{ network.stakingDenom }})
-
+
{{ balance && balance.type === 'STAKE' ? balance.available : 0 }}
-
+
SEND
@@ -64,9 +64,7 @@ export default defineComponent({
const quasar = useQuasar();
const session = computed(() => store.state.authentication.session);
-
- const apr = computed(() => store.getters['data/getAprInfo'] as string);
- const loadingApr = computed(() => store.state.data.loadingApr || store.state.data.loading);
+ const loading = computed(() => store.state.authentication.loading || store.state.authentication.changing);
const balance = computed(() => store.getters['data/currentBalance'] as Balance | undefined);
const loadingBalance = computed(() => !store.state.data.balancesLoaded || store.state.data.loading);
@@ -102,9 +100,8 @@ export default defineComponent({
return {
session,
- apr,
- loadingApr,
loadingBalance,
+ loading,
network,
rewards,
balance,
diff --git a/src/components/BalancesTable.vue b/src/components/BalancesTable.vue
new file mode 100644
index 00000000..a860a944
--- /dev/null
+++ b/src/components/BalancesTable.vue
@@ -0,0 +1,204 @@
+
+
+
+ No assets available
+
+
+
+
+ {{ col.label }}
+
+
+
+
+
+
+
+
+ {{ props.row.denom }}
+
+
+
+
+
+ {{ props.row.total }}
+
+
+
+
+ {{ props.row.available }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ClaimDialog.vue b/src/components/ClaimDialog.vue
index 0a0e9601..a5d2557c 100644
--- a/src/components/ClaimDialog.vue
+++ b/src/components/ClaimDialog.vue
@@ -85,7 +85,7 @@
Error!
- {{ error }}
+ {{ error }}
diff --git a/src/components/DelegationDialog.vue b/src/components/DelegationDialog.vue
index dfe16613..57c2cce8 100644
--- a/src/components/DelegationDialog.vue
+++ b/src/components/DelegationDialog.vue
@@ -179,7 +179,7 @@
Error!
- {{ error }}
+ {{ error }}
diff --git a/src/components/DepositDialog.vue b/src/components/DepositDialog.vue
index e54dc380..86c5649b 100644
--- a/src/components/DepositDialog.vue
+++ b/src/components/DepositDialog.vue
@@ -87,7 +87,7 @@
Error!
- {{ error }}
+ {{ error }}
diff --git a/src/components/MenuLink.vue b/src/components/MenuLink.vue
index afbec2f4..6e663fe3 100644
--- a/src/components/MenuLink.vue
+++ b/src/components/MenuLink.vue
@@ -21,6 +21,8 @@
{{ title }}
+
+
- {{ title }}
-
+
+ {{ title }}
-
-
- new
-
+
+
@@ -73,7 +73,10 @@ export default defineComponent({
newLink: {
type: Boolean,
default: false,
- }
+ },
+ count: {
+ type: Number,
+ },
},
setup() {
const router = useRouter();
@@ -125,4 +128,20 @@ export default defineComponent({
min-height: 24px;
border-radius: 25px;
}
+
+.status-count {
+ margin-left: 14px;
+ width: 24px;
+ height: 24px;
+ padding: 0;
+ border-radius: 25px;
+ justify-content: center;
+ align-items: center;
+}
+
+.external-icon {
+ margin-left: 12px;
+ margin-top: auto;
+ margin-bottom: auto;
+}
diff --git a/src/components/ProposalsSummary.vue b/src/components/ProposalsSummary.vue
new file mode 100644
index 00000000..8ac7955f
--- /dev/null
+++ b/src/components/ProposalsSummary.vue
@@ -0,0 +1,58 @@
+
+
+
+
+ No voting proposals at this moment.
+ Come back in days to see what’s changed.
+
+
+
+ SEE ALL PROPOSALS
+
+
+
+
+
+
+
+
diff --git a/src/components/SendDialog.vue b/src/components/SendDialog.vue
index 65e19c49..1f232cc8 100644
--- a/src/components/SendDialog.vue
+++ b/src/components/SendDialog.vue
@@ -65,11 +65,11 @@
MAX
-
+
- Available: {{ availableCoins.toFormat() }} {{ network.stakingDenom }}
+ Available: {{ denom ? availableCoins.toFixed() : availableCoins.toFormat() }} {{ network.stakingDenom }}
@@ -132,7 +132,7 @@
Success!
-
You have successfully send your {{ network.stakingDenom }}s.
+
You have successfully send your {{ !denom ? network.stakingDenom : 'coin' }}s.
See your transaction
@@ -145,7 +145,7 @@
Error!
- {{ error }}
+ {{ error }}
@@ -162,10 +162,15 @@ import { isValidAddress } from 'src/common/address';
export default defineComponent({
name: 'SendDialog',
+ props: {
+ denom: {
+ type: String,
+ }
+ },
emits: [
...useDialogPluginComponent.emits,
],
- setup() {
+ setup(props) {
const store = useStore();
const { dialogRef, onDialogHide } = useDialogPluginComponent();
@@ -177,10 +182,27 @@ export default defineComponent({
const showAdvanced = ref(false);
const error = ref();
- const balance = computed(() => store.getters['data/currentRawBalance'] as Balance | undefined);
+ store.commit('data/setLoadingSignTransaction', false);
+
+ const balance = computed(() => {
+ if (!props.denom) {
+ return store.getters['data/currentRawBalance'] as Balance | undefined;
+ }
+
+ const balances = store.state.data.balances;
+
+ return balances.find(el => el.denom === props.denom);
+ });
+
const network = computed(() => store.state.authentication.network);
- const availableCoins = computed(() => new BigNumber(balance.value ? balance.value.available : '0'));
+ const availableCoins = computed(() => {
+ if (props.denom) {
+ return new BigNumber(balance.value ? balance.value.available : '0').multipliedBy('1e-6');
+ }
+
+ return new BigNumber(balance.value ? balance.value.available : '0');
+ });
const loading = computed(() => store.state.data.loadingSignTransaction);
@@ -196,10 +218,12 @@ export default defineComponent({
memo: memo.value,
amounts: [{
amount: amount.value,
- denom: network.value.stakingDenom
+ denom: props.denom ? props.denom : network.value.stakingDenom
}],
};
+ console.log(request);
+
const hashres = await store.dispatch('data/signTransaction', request) as string;
hash.value = hashres;
diff --git a/src/components/ValidatorsTable.vue b/src/components/ValidatorsTable.vue
index 37f9f336..88420f69 100644
--- a/src/components/ValidatorsTable.vue
+++ b/src/components/ValidatorsTable.vue
@@ -54,7 +54,7 @@
- {{ props.row.delegation ? bigFigureOrShortDecimals(props.row.delegation.amount) : '--' }}
+ {{ props.row.delegation ? bigFigureOrShortDecimals(props.row.delegation.amount) : 'N/A' }}
+ {{ filterStakingDenomReward(props.row.operatorAddress) }}
@@ -62,7 +62,7 @@
- {{ props.row.expectedReturns ? bigFigureOrPercent(props.row.expectedReturns) : '--' }}
+ {{ props.row.expectedReturns ? bigFigureOrPercent(props.row.expectedReturns) : 'N/A' }}
@@ -75,12 +75,12 @@
- {{ props.row.undelegation ? bigFigureOrShortDecimals(props.row.undelegation.amount) : '--' }}
+ {{ props.row.undelegation ? bigFigureOrShortDecimals(props.row.undelegation.amount) : 'N/A' }}
- {{ props.row.undelegation ? fromNow(props.row.undelegation.endTime) : '--' }}
+ {{ props.row.undelegation ? fromNow(props.row.undelegation.endTime) : 'N/A' }}
@@ -147,6 +147,7 @@ export default defineComponent({
const router = useRouter();
const rewards = computed(() => store.state.data.rewards);
const network = computed(() => store.state.authentication.network);
+ const session = computed(() => store.state.authentication.session);
const pagination = {
sortBy: 'votingPower',
@@ -199,7 +200,7 @@ export default defineComponent({
},
{
name: 'time',
- label: 'Time',
+ label: 'Remaining Time',
align: 'center',
field: 'time',
},
@@ -210,15 +211,17 @@ export default defineComponent({
]);
const visibleColumns = computed(() => {
+ const extra = !session.value || (session.value && session.value.sessionType !== 'keplr') ? [] : ['actions'];
+
if (props.unstaking) {
return ['id', 'name', 'unstaked', 'time'];
}
if (props.staking) {
- return ['id', 'name', 'status', 'staked', 'rewards', 'votingPower', 'actions'];
+ return ['id', 'name', 'status', 'staked', 'rewards', 'votingPower', ...extra];
}
- return ['id', 'name', 'status', 'rewards', 'votingPower', 'actions'];
+ return ['id', 'name', 'status', 'rewards', 'votingPower', ...extra];
});
const rowClick = async (row: LooseDictionary) => {
@@ -282,6 +285,7 @@ export default defineComponent({
&::v-deep(.q-table) {
border-spacing: 0 6px;
+ padding-bottom: 20px;
}
}
diff --git a/src/constants/network.ts b/src/constants/network.ts
index 74dc27fb..0dc81b3e 100644
--- a/src/constants/network.ts
+++ b/src/constants/network.ts
@@ -136,6 +136,7 @@ export const networks: NetworkConfig[] = [
apiURL: 'https://lcd-osmosis.keplr.app',
rpcURL: 'https://rpc-osmosis.itastakers.com',
explorerURL: 'https://www.mintscan.io/osmosis/',
+ supplyURL: null,
minBlockHeight: 2742000,
stakingDenom: 'OSMO',
coinLookup: [
@@ -176,7 +177,8 @@ export const networks: NetworkConfig[] = [
apiURL: 'https://lcd-cosmoshub.keplr.app',
rpcURL: 'https://rpc-cosmoshub.keplr.app',
explorerURL: 'https://www.mintscan.io/cosmos/',
- minBlockHeight: 1,
+ supplyURL: null,
+ minBlockHeight: 9054000,
stakingDenom: 'ATOM',
coinLookup: [
{
@@ -206,5 +208,46 @@ export const networks: NetworkConfig[] = [
},
icon: 'https://assets.coingecko.com/coins/images/5041/small/logo_-_2021-01-10T210801.390.png',
localSigning: false, // this is only to be used as a developer tool - never deployed in production or for mainnet chains
+ },
+ {
+ id: 'chihuahua-1',
+ name: 'Chihuahua',
+ description: 'Chihuahua Mainnet',
+ logo: 'logo.svg',
+ website: 'https://chihuahua.wtf',
+ apiURL: 'https://api.chihuahua.wtf',
+ rpcURL: 'https://rpc.chihuahua.wtf',
+ explorerURL: 'https://www.mintscan.io/chihuahua/',
+ minBlockHeight: 1,
+ supplyURL: null,
+ stakingDenom: 'HUAHUA',
+ coinLookup: [
+ {
+ viewDenom: 'HUAHUA',
+ chainDenom: 'uhuahua',
+ chainToViewConversionFactor: 1e-6,
+ icon: 'currencies/bitsong.png',
+ },
+ ],
+ addressPrefix: 'chihuahua',
+ validatorAddressPrefix: 'chihuahuavaloper',
+ validatorConsensusaddressPrefix: 'chihuahuavalcons', // needed to map validators from staking queries to the validator set
+ HDPath: 'm/44\'/118\'/0\'/0/0',
+ coinType: 118,
+ coinGeckoId: 'chihuahua-token',
+ lockUpPeriod: '3 days',
+ fees: {
+ default: {
+ gasEstimate: 350000,
+ feeOptions: [
+ {
+ denom: 'HUAHUA',
+ amount: 0.001,
+ },
+ ],
+ },
+ },
+ icon: 'https://assets.coingecko.com/coins/images/22485/small/logo_transparent_notext.png',
+ localSigning: false, // this is only to be used as a developer tool - never deployed in production or for mainnet chains
}
];
diff --git a/src/css/_drawer.scss b/src/css/_drawer.scss
index 05e03217..06179a80 100644
--- a/src/css/_drawer.scss
+++ b/src/css/_drawer.scss
@@ -25,10 +25,14 @@
@media screen and (min-width: $breakpoint-md-min) {
padding-top: 190px;
- padding-right: 46px;
+ padding-right: 38px;
padding-left: 0;
}
+ @media screen and (max-height: 820px) {
+ padding-top: 37px;
+ }
+
&.back {
padding-top: 60px;
}
diff --git a/src/css/_menu.scss b/src/css/_menu.scss
index 1143b78e..fc50feb0 100644
--- a/src/css/_menu.scss
+++ b/src/css/_menu.scss
@@ -35,3 +35,7 @@
color: $primary;
}
}
+
+.q-select__dialog {
+ background: $secondary;
+}
diff --git a/src/css/_typography.scss b/src/css/_typography.scss
index 34c2f27f..3f84352f 100644
--- a/src/css/_typography.scss
+++ b/src/css/_typography.scss
@@ -18,3 +18,25 @@
font-style: normal;
src: local('Circular Std Bold'), local('CircularStd-Bold'), url('./fonts/CircularStd-Bold.woff2') format('woff2'), url('./fonts/CircularStd-Bold.woff') format('woff');
}
+
+.proposal-description {
+ & h1 {
+ font-size: 32px;
+ line-height: normal;
+ }
+
+ & h2 {
+ font-size: 28px;
+ line-height: normal;
+ }
+
+ & h3 {
+ font-size: 24px;
+ line-height: normal;
+ }
+
+ & h4 {
+ font-size: 20px;
+ line-height: normal;
+ }
+}
diff --git a/src/css/_utils.scss b/src/css/_utils.scss
index 4c2a21bb..d4793172 100644
--- a/src/css/_utils.scss
+++ b/src/css/_utils.scss
@@ -47,6 +47,18 @@
background: $accent-2 !important;
}
+.bg-accent-3 {
+ background: $accent-3 !important;
+}
+
+.bg-alternative-4 {
+ background: $alternative-4 !important;
+}
+
+.bg-transparent-accent-3 {
+ background: $transparent-accent-3 !important;
+}
+
.bg-alternative-linear-gradient {
background: $alternative-linear-gradient !important;
}
@@ -79,6 +91,10 @@
color: $gray3 !important;
}
+.text-alternative-4 {
+ color: $alternative-4 !important;
+}
+
.text-transparent-accent {
color: $transparent-accent !important;
}
diff --git a/src/css/quasar.variables.scss b/src/css/quasar.variables.scss
index 1c333569..b6d265cf 100644
--- a/src/css/quasar.variables.scss
+++ b/src/css/quasar.variables.scss
@@ -23,6 +23,7 @@ $accent-5: #9494B9;
$alternative: #313150;
$alternative-2: #23223B;
$alternative-3: #303046;
+$alternative-4: #27273E;
$white: #fff;
$transparent-white: transparentize($white, 0.85);
@@ -36,6 +37,7 @@ $dark: #1D1D1D;
$transparent-secondary: transparentize($secondary, 0.3);
$transparent-accent: transparentize($accent, 0.5);
+$transparent-accent-3: transparentize($accent-3, 0.5);
$accent-linear-gradient: linear-gradient(0deg, $accent, $accent), rgba(255, 255, 255, 0.2);
$alternative-linear-gradient: linear-gradient(0deg, $alternative, $alternative), $white;
@@ -96,7 +98,7 @@ $breakpoint-lg-max: (map-get($sizes, "xl") - 0.02) !default;
$breakpoint-xl-min: map-get($sizes, "xl") !default;
-$h1: (size: 6rem, line-height: 6rem, letter-spacing: normal, weight: 300) !default;
+$h1: (size: 40px, line-height: normal, letter-spacing: normal, weight: 400) !default;
$h2: (size: 38px, line-height: 48px, letter-spacing: normal, weight: 400) !default;
$h3: (size: 36px, line-height: 46px, letter-spacing: normal, weight: 400) !default;
$h4: (size: 18px, line-height: 23px, letter-spacing: normal, weight: 400) !default;
@@ -117,7 +119,8 @@ $subtitle2: (size: 16px, line-height: 20px, letter-spacing: normal, weight: 400)
$overline: (size: 13px, line-height: 16px, letter-spacing: normal, weight: 400) !default;
$overline-2: (size: 13px, line-height: 24px, letter-spacing: normal, weight: 400) !default;
$caption: (size: 11px, line-height: 12px, letter-spacing: normal, weight: 400) !default;
+$caption-2: (size: 10px, line-height: 12px, letter-spacing: normal, weight: 400) !default;
-$headings: ('h1': $h1, 'h2': $h2, 'h3': $h3, 'h4': $h4, 'h5': $h5, 'h6': $h6, 'subtitle1': $subtitle1, 'subtitle2': $subtitle2, 'body1': $body1, 'body2': $body2, 'body3': $body3, 'body4': $body4, 'body5': $body5, 'body6': $body6, 'body-large': $body-large, 'body-extra-large': $body-extra-large, 'body-extra-large2': $body-extra-large2, 'body-extra-large3': $body-extra-large3, 'overline': $overline,'overline-2': $overline-2, 'caption': $caption) !default;
+$headings: ('h1': $h1, 'h2': $h2, 'h3': $h3, 'h4': $h4, 'h5': $h5, 'h6': $h6, 'subtitle1': $subtitle1, 'subtitle2': $subtitle2, 'body1': $body1, 'body2': $body2, 'body3': $body3, 'body4': $body4, 'body5': $body5, 'body6': $body6, 'body-large': $body-large, 'body-extra-large': $body-extra-large, 'body-extra-large2': $body-extra-large2, 'body-extra-large3': $body-extra-large3, 'overline': $overline,'overline-2': $overline-2, 'caption': $caption, 'caption-2': $caption-2) !default;
$typography-font-family: Circular Std, 'Roboto', '-apple-system', 'Helvetica Neue', Helvetica, Arial, sans-serif !default
diff --git a/src/hooks/useChangeNetwork.ts b/src/hooks/useChangeNetwork.ts
index bb3cdad3..d884ab54 100644
--- a/src/hooks/useChangeNetwork.ts
+++ b/src/hooks/useChangeNetwork.ts
@@ -3,10 +3,10 @@ import { computed } from 'vue';
import { useStore } from 'src/store';
import { networks } from 'src/constants';
-export const useChangeNetwork = (onChange?: () => Promise) => {
+export const useChangeNetwork = (refresh = true, onChange?: () => Promise) => {
const store = useStore();
const router = useRouter();
- const loadingNetwork = computed(() => store.state.authentication.changing);
+ const loadingNetwork = computed(() => store.state.authentication.changing || store.state.authentication.loading);
const network = computed({
get: () => store.state.authentication.network,
@@ -16,7 +16,7 @@ export const useChangeNetwork = (onChange?: () => Promise) => {
await onChange();
}
- await store.dispatch('authentication/changeNetwork', value);
+ await store.dispatch('authentication/changeNetwork', { network: value , refresh });
} catch (error) {
console.error(error);
diff --git a/src/layouts/AuthLayout.vue b/src/layouts/AuthLayout.vue
index 015c2c65..ce220e46 100644
--- a/src/layouts/AuthLayout.vue
+++ b/src/layouts/AuthLayout.vue
@@ -1,5 +1,5 @@
-
+
-
-
-
+
+
+
+
- wallet
+ wallet
+
@@ -22,20 +24,20 @@
-
-
+
+
-
-
+
+
-
@@ -45,8 +47,10 @@
@@ -64,16 +68,17 @@
no-error-icon
hide-bottom-space
:loading="loadingNetwork"
+ :disable="loadingNetwork"
:options-cover="false"
>
-
+
-
+
@@ -97,7 +102,7 @@
+
+
diff --git a/src/modules/wallet/views/Portfolio.vue b/src/modules/wallet/views/Portfolio.vue
index ed30506c..ea14b446 100644
--- a/src/modules/wallet/views/Portfolio.vue
+++ b/src/modules/wallet/views/Portfolio.vue
@@ -5,19 +5,9 @@
Your Balances
-
+
{{ !quasar.screen.lt.md ? 'CLAIM REWARDS' : 'CLAIM' }}
-
-
-
- TOTAL ({{ network.stakingDenom }})
-
-
- {{ balance ? balance.total : 0 }}
-
-
-
@@ -35,7 +25,7 @@
-
+
@@ -57,28 +47,9 @@
>
-
+
-
-
-
-
-
-
-
-
-
-
@@ -86,29 +57,27 @@
import { defineComponent, computed } from 'vue';
import { useQuasar } from 'quasar';
import { useStore } from 'src/store';
-import { SupplyResponse, Validator, Balance } from 'src/models';
+import { Validator } from 'src/models';
import BalanceSummary from 'src/components/BalanceSummary.vue';
import ValidatorsSummary from 'src/components/ValidatorsSummary.vue';
import ValidatorsTable from 'src/components/ValidatorsTable.vue';
import ClaimDialog from 'src/components/ClaimDialog.vue';
-import ChainStats from 'src/components/ChainStats.vue';
export default defineComponent({
name: 'Portfolio',
components: {
BalanceSummary,
ValidatorsSummary,
- ValidatorsTable,
- ChainStats
+ ValidatorsTable
},
setup() {
const store = useStore();
const quasar = useQuasar();
- const network = computed(() => store.state.authentication.network);
-
const rewards = computed(() => store.state.data.rewards);
+ const session = computed(() => store.state.authentication.session);
+ const loading = computed(() => store.state.authentication.loading || store.state.authentication.changing);
const validatorsOfDelegations = computed(() => store.getters['data/validatorsOfDelegations'] as Validator[]);
const delegationsLoaded = computed(() => store.state.data.delegationsLoaded);
@@ -116,12 +85,6 @@ export default defineComponent({
const validatorsOfUndelegations = computed(() => store.getters['data/validatorsOfUndelegations'] as Validator[]);
const undelegationsLoaded = computed(() => store.state.data.undelegationsLoaded);
- const supplyInfo = computed(() => store.getters['data/supplyInfo'] as SupplyResponse | null);
- const loadingSupplyInfo = computed(() => store.state.data.loadingSupplyInfo);
-
- const balance = computed(() => store.getters['data/currentBalance'] as Balance | undefined);
- const loadingBalance = computed(() => !store.state.data.balancesLoaded || store.state.data.loading);
-
const openClaimDialog = () => {
quasar.dialog({
component: ClaimDialog,
@@ -131,11 +94,8 @@ export default defineComponent({
}
return {
- network,
- balance,
- loadingBalance,
- supplyInfo,
- loadingSupplyInfo,
+ loading,
+ session,
rewards,
validatorsOfDelegations,
delegationsLoaded,
diff --git a/src/modules/wallet/views/Proposal.vue b/src/modules/wallet/views/Proposal.vue
index 2fa66e76..63269bce 100644
--- a/src/modules/wallet/views/Proposal.vue
+++ b/src/modules/wallet/views/Proposal.vue
@@ -3,7 +3,7 @@