From 466a7215228ebd0bcad91ec6d49b93040571448e Mon Sep 17 00:00:00 2001 From: apporc Date: Thu, 19 Sep 2024 18:00:11 +0800 Subject: [PATCH] earn: add rexfund into staked value --- src/pages/earn/index.svelte | 56 +++++++++++++++------------- src/pages/earn/step/bootstrap.svelte | 2 +- 2 files changed, 32 insertions(+), 26 deletions(-) diff --git a/src/pages/earn/index.svelte b/src/pages/earn/index.svelte index e3397b0c..e347cbc1 100644 --- a/src/pages/earn/index.svelte +++ b/src/pages/earn/index.svelte @@ -121,9 +121,32 @@ return Asset.fromUnits(result, $systemToken!.symbol) } + const rexEOSBalance: Writable = writable(Asset.from(0, $systemToken!.symbol)) + onMount(async () => { + const client = getClient($activeBlockchain.chainId) + const unsubscribe = currentAccount.subscribe(async (account) => { + const result = await client.v1.chain.get_table_rows({ + code: 'eosio', + scope: 'eosio', + table: 'rexfund', + json: true, + lower_bound: $currentAccount?.account_name, + upper_bound: $currentAccount?.account_name, + }) + if (result.rows.length > 0) { + rexEOSBalance.set(Asset.from(result.rows[0].balance, $systemToken!.symbol)) + } else { + rexEOSBalance.set(Asset.from(0, $systemToken!.symbol)) + } + }) + return () => { + unsubscribe() + } + }) + const rexInfo: Readable = derived( - [currentAccount, stateREX, systemToken], - ([$currentAccount, $stateREX, $systemToken]) => { + [currentAccount, stateREX, systemToken, rexEOSBalance], + ([$currentAccount, $stateREX, $systemToken, $rexEOSBalance]) => { let defaultZero = Asset.from(0, $systemToken!.symbol) let total = defaultZero let savings = defaultZero @@ -138,6 +161,12 @@ apy = ((annualReward / totalStaked) * 100).toFixed(2) if ($currentAccount && $currentAccount.rex_info) { total = convertRexToEos($currentAccount.rex_info.rex_balance.value) + if ($rexEOSBalance.value > 0) { + total = Asset.fromUnits( + total.units.adding($rexEOSBalance.units), + $systemToken!.symbol + ) + } const claimableBuckets = $currentAccount.rex_info.rex_maturities.filter( (maturity) => +new Date(maturity.first!.toString()) < +now @@ -190,29 +219,6 @@ return result }) - const rexEOSBalance: Writable = writable(Asset.from(0, $systemToken!.symbol)) - onMount(async () => { - const client = getClient($activeBlockchain.chainId) - const unsubscribe = currentAccount.subscribe(async (account) => { - const result = await client.v1.chain.get_table_rows({ - code: 'eosio', - scope: 'eosio', - table: 'rexfund', - json: true, - lower_bound: $currentAccount?.account_name, - upper_bound: $currentAccount?.account_name, - }) - if (result.rows.length > 0) { - rexEOSBalance.set(Asset.from(result.rows[0].balance, $systemToken!.symbol)) - } else { - rexEOSBalance.set(Asset.from(0, $systemToken!.symbol)) - } - }) - return () => { - unsubscribe() - } - }) - const initialStep: Step = Step.Bootstrap const step: Writable = writable(initialStep, () => { const unsubscribeStep = defaultStep.subscribe((s) => { diff --git a/src/pages/earn/step/bootstrap.svelte b/src/pages/earn/step/bootstrap.svelte index 80f4d290..8e41e32b 100644 --- a/src/pages/earn/step/bootstrap.svelte +++ b/src/pages/earn/step/bootstrap.svelte @@ -7,7 +7,7 @@ import Form from '~/components/elements/form.svelte' import InputAsset from '~/components/elements/input/asset.svelte' import InputLabel from '~/components/elements/input/label.svelte' - import {REXInfo} from '../types' + import type {REXInfo} from '../types' export let amount: string export let availableTokens: Asset