From 0d718497eb5604a5a9d32fab14cf64de911306ba Mon Sep 17 00:00:00 2001 From: evavirseda Date: Wed, 24 Apr 2024 08:55:33 +0200 Subject: [PATCH 1/3] fix: display correct mana in implicit account details --- .../components/AccountManagementDetails.svelte | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/desktop/components/AccountManagementDetails.svelte b/packages/desktop/components/AccountManagementDetails.svelte index 8b47442ab3b..326844b95c6 100644 --- a/packages/desktop/components/AccountManagementDetails.svelte +++ b/packages/desktop/components/AccountManagementDetails.svelte @@ -39,7 +39,13 @@ StakingFeature, } from '@iota/sdk/out/types' import { openUrlInBrowser } from '@core/app' - import { DEFAULT_MANA, ExplorerEndpoint, getOfficialExplorerUrl, getPassiveManaForOutput } from '@core/network' + import { + DEFAULT_MANA, + ExplorerEndpoint, + getAccountOutputsMana, + getOfficialExplorerUrl, + getTotalAvailableMana, + } from '@core/network' import { activeProfile, getBaseToken } from '@core/profile' import { PopupId, openPopup } from '@auxiliary/popup' @@ -48,6 +54,7 @@ let modal: Modal let address: string = '' let keys: string[] = [] + let totalAvailableMana: number const explorerUrl = getOfficialExplorerUrl($activeProfile?.network?.id) @@ -67,7 +74,12 @@ $: hasMainAccountNegativeBIC = hasWalletMainAccountNegativeBIC($selectedWallet) $: hasAccountNegativeBIC = $selectedWallet?.balances?.blockIssuanceCredits?.[(selectedOutput.output as AccountOutput)?.accountId] < 0 - $: selectedOutputPassiveMana = getPassiveManaForOutput(selectedOutput) + $: $selectedWallet, (totalAvailableMana = getTotalAvailableMana($selectedWallet, selectedOutput?.outputId)) + $: generatedManaImplicitAccount = totalAvailableMana - getAccountOutputsMana($selectedWallet?.accountOutputs) + $: formattedManaBalance = generatedManaImplicitAccount + ? formatTokenAmountBestMatch(Number(generatedManaImplicitAccount), DEFAULT_MANA) + : '-' + function getImplicitAccountBalance(outputData: OutputData): number | undefined { return Number(outputData.output.amount) } @@ -219,7 +231,7 @@
- {formatTokenAmountBestMatch(selectedOutputPassiveMana, DEFAULT_MANA)} {localize('views.accountManagement.details.mana')} Date: Wed, 24 Apr 2024 17:36:28 +0200 Subject: [PATCH 2/3] feat: create poll to syn node info --- packages/desktop/views/dashboard/Dashboard.svelte | 4 ++++ packages/shared/lib/core/wallet/actions/index.ts | 1 + .../lib/core/wallet/actions/syncNodeInfoPoll.ts | 15 +++++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 packages/shared/lib/core/wallet/actions/syncNodeInfoPoll.ts diff --git a/packages/desktop/views/dashboard/Dashboard.svelte b/packages/desktop/views/dashboard/Dashboard.svelte index 22e39ccd562..c8fc48a567b 100644 --- a/packages/desktop/views/dashboard/Dashboard.svelte +++ b/packages/desktop/views/dashboard/Dashboard.svelte @@ -33,6 +33,8 @@ clearBalanceSyncPoll, syncBalancePoll, hasWalletMainAccountNegativeBIC, + clearNodeInfoSyncPoll, + syncNodeInfoPoll, } from '@core/wallet' import { get } from 'svelte/store' import features from '@features/features' @@ -96,6 +98,7 @@ onMount(() => { syncBalancePoll($selectedWalletId, true) + syncNodeInfoPoll() Platform.onEvent('menu-logout', () => { void logout() }) @@ -140,6 +143,7 @@ onDestroy(() => { clearBalanceSyncPoll() + clearNodeInfoSyncPoll() Platform.DeepLinkManager.clearDeepLinkRequest() Platform.removeListenersForEvent('deep-link-params') diff --git a/packages/shared/lib/core/wallet/actions/index.ts b/packages/shared/lib/core/wallet/actions/index.ts index 6a099e258c7..38b2d186342 100644 --- a/packages/shared/lib/core/wallet/actions/index.ts +++ b/packages/shared/lib/core/wallet/actions/index.ts @@ -42,3 +42,4 @@ export * from './prepareMintNft' export * from './prepareCreateNativeToken' export * from './getNetworkMetrics' export * from './getTotalWalletBalance' +export * from './syncNodeInfoPoll' diff --git a/packages/shared/lib/core/wallet/actions/syncNodeInfoPoll.ts b/packages/shared/lib/core/wallet/actions/syncNodeInfoPoll.ts new file mode 100644 index 00000000000..5525b83a37c --- /dev/null +++ b/packages/shared/lib/core/wallet/actions/syncNodeInfoPoll.ts @@ -0,0 +1,15 @@ +import { DEFAULT_SECONDS_PER_SLOT, getAndUpdateNodeInfo } from '../../network' +import { MILLISECONDS_PER_SECOND } from '../../utils' + +let nodeSyncInterval: number + +export async function syncNodeInfoPoll(): Promise { + await getAndUpdateNodeInfo() + nodeSyncInterval = window.setInterval(() => { + void getAndUpdateNodeInfo() + }, DEFAULT_SECONDS_PER_SLOT * MILLISECONDS_PER_SECOND) +} + +export function clearNodeInfoSyncPoll(): void { + clearInterval(nodeSyncInterval) +} From eff339ab0290d8633881f906c9d50257db0b66c3 Mon Sep 17 00:00:00 2001 From: cpl121 Date: Wed, 24 Apr 2024 17:38:20 +0200 Subject: [PATCH 3/3] fix: improve reactivity in account management details --- .../AccountManagementDetails.svelte | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/packages/desktop/components/AccountManagementDetails.svelte b/packages/desktop/components/AccountManagementDetails.svelte index 326844b95c6..6ba3ac9d36f 100644 --- a/packages/desktop/components/AccountManagementDetails.svelte +++ b/packages/desktop/components/AccountManagementDetails.svelte @@ -39,13 +39,7 @@ StakingFeature, } from '@iota/sdk/out/types' import { openUrlInBrowser } from '@core/app' - import { - DEFAULT_MANA, - ExplorerEndpoint, - getAccountOutputsMana, - getOfficialExplorerUrl, - getTotalAvailableMana, - } from '@core/network' + import { DEFAULT_MANA, ExplorerEndpoint, getOfficialExplorerUrl, getPassiveManaForOutput } from '@core/network' import { activeProfile, getBaseToken } from '@core/profile' import { PopupId, openPopup } from '@auxiliary/popup' @@ -54,7 +48,6 @@ let modal: Modal let address: string = '' let keys: string[] = [] - let totalAvailableMana: number const explorerUrl = getOfficialExplorerUrl($activeProfile?.network?.id) @@ -74,10 +67,12 @@ $: hasMainAccountNegativeBIC = hasWalletMainAccountNegativeBIC($selectedWallet) $: hasAccountNegativeBIC = $selectedWallet?.balances?.blockIssuanceCredits?.[(selectedOutput.output as AccountOutput)?.accountId] < 0 - $: $selectedWallet, (totalAvailableMana = getTotalAvailableMana($selectedWallet, selectedOutput?.outputId)) - $: generatedManaImplicitAccount = totalAvailableMana - getAccountOutputsMana($selectedWallet?.accountOutputs) - $: formattedManaBalance = generatedManaImplicitAccount - ? formatTokenAmountBestMatch(Number(generatedManaImplicitAccount), DEFAULT_MANA) + + let selectedOutputPassiveMana: number + $: $selectedWallet, (selectedOutputPassiveMana = getPassiveManaForOutput(selectedOutput)) + + $: formattedManaBalance = selectedOutputPassiveMana + ? formatTokenAmountBestMatch(Number(selectedOutputPassiveMana), DEFAULT_MANA) : '-' function getImplicitAccountBalance(outputData: OutputData): number | undefined {