From fd54f13c19e59d9fbbab84fc85d8519eab51f623 Mon Sep 17 00:00:00 2001 From: jeff <113397187+cyberhorsey@users.noreply.github.com> Date: Thu, 10 Aug 2023 20:04:03 -0700 Subject: [PATCH] fix(pos-dashboard): Staking dashboard bug fixes (#14447) --- packages/bridge-ui/src/proof/ProofService.ts | 3 ++ .../utils/checkIfTokenIsDeployedCrossChain.ts | 2 + .../bridge-ui/src/utils/getAddressForToken.ts | 2 +- packages/bridge-ui/src/wagmi/watcher.ts | 4 +- .../src/components/Events/History.svelte | 2 - .../src/components/Rewards/Rewards.svelte | 12 ++++++ .../StakeForm.svelte/StakeForm.svelte | 7 ++++ .../src/components/Tabs/TabPanel.svelte | 1 - .../pos-dashboard/src/utils/switchNetwork.ts | 38 ------------------- 9 files changed, 27 insertions(+), 44 deletions(-) diff --git a/packages/bridge-ui/src/proof/ProofService.ts b/packages/bridge-ui/src/proof/ProofService.ts index a7b4ef126a..967d2ed4f3 100644 --- a/packages/bridge-ui/src/proof/ProofService.ts +++ b/packages/bridge-ui/src/proof/ProofService.ts @@ -91,6 +91,9 @@ export class ProofService implements Prover { ]); log('Proof from eth_getProof', proof); + log('ProofOpts', opts); + log('Key', key); + log('Proof value', proof.storageProof[0].value); if (proof.storageProof[0].value !== '0x1') { throw Error('invalid proof'); diff --git a/packages/bridge-ui/src/utils/checkIfTokenIsDeployedCrossChain.ts b/packages/bridge-ui/src/utils/checkIfTokenIsDeployedCrossChain.ts index 0e4c4f022c..add6316154 100644 --- a/packages/bridge-ui/src/utils/checkIfTokenIsDeployedCrossChain.ts +++ b/packages/bridge-ui/src/utils/checkIfTokenIsDeployedCrossChain.ts @@ -56,6 +56,8 @@ export const checkIfTokenIsDeployedCrossChain = async ( }, ); } + } else { + return true; } } return false; diff --git a/packages/bridge-ui/src/utils/getAddressForToken.ts b/packages/bridge-ui/src/utils/getAddressForToken.ts index 565d9e73e9..e42d3a722d 100644 --- a/packages/bridge-ui/src/utils/getAddressForToken.ts +++ b/packages/bridge-ui/src/utils/getAddressForToken.ts @@ -19,7 +19,7 @@ export async function getAddressForToken( // Get the address for the token on the source chain let address = token.addresses[srcChain.id]; - // If the token isn't ETH or has no address... + // If the token isn't ETH and has no address... if (!isETH(token) && (!address || address === '0x00')) { // Find the address on the destination chain instead const destChainAddress = token.addresses[destChain.id]; diff --git a/packages/bridge-ui/src/wagmi/watcher.ts b/packages/bridge-ui/src/wagmi/watcher.ts index 73f786e08a..d5487fa805 100644 --- a/packages/bridge-ui/src/wagmi/watcher.ts +++ b/packages/bridge-ui/src/wagmi/watcher.ts @@ -17,12 +17,12 @@ const setChain = (chainId: number) => { srcChain.set(L1Chain); destChain.set(L2Chain); - log(`Network swtiched to ${L1Chain.name}`); + log(`Network switched to ${L1Chain.name}`); } else if (chainId === L2Chain.id) { srcChain.set(L2Chain); destChain.set(L1Chain); - log(`Network swtiched to ${L2Chain.name}`); + log(`Network switched to ${L2Chain.name}`); } else { isSwitchChainModalOpen.set(true); } diff --git a/packages/pos-dashboard/src/components/Events/History.svelte b/packages/pos-dashboard/src/components/Events/History.svelte index a8ac4b563d..8a2f2fe0fd 100644 --- a/packages/pos-dashboard/src/components/Events/History.svelte +++ b/packages/pos-dashboard/src/components/Events/History.svelte @@ -28,9 +28,7 @@ if (!allEvents) return []; const start = (page - 1) * pageSize; const end = start + pageSize; - console.log('total items', totalItems); const ret = allEvents.slice(start, end); - console.log(ret); return ret; } diff --git a/packages/pos-dashboard/src/components/Rewards/Rewards.svelte b/packages/pos-dashboard/src/components/Rewards/Rewards.svelte index e8227beaea..0ec283c1b0 100644 --- a/packages/pos-dashboard/src/components/Rewards/Rewards.svelte +++ b/packages/pos-dashboard/src/components/Rewards/Rewards.svelte @@ -8,6 +8,10 @@ import { successToast } from '../NotificationToast.svelte'; import { pendingTransactions } from '../../store/transaction'; import { getTTKOBalance } from '../../utils/getTTKOBalance'; + import { switchNetwork } from '../../utils/switchNetwork'; + import { mainnetChain } from '../../chain/chains'; + import { srcChain } from '../../store/chain'; + let balance: BigNumber = BigNumber.from(0); let ttkoBalanceInWei: BigNumber = BigNumber.from(0); @@ -37,6 +41,10 @@ } async function withdraw() { + if ($srcChain.id !== mainnetChain.id) { + await switchNetwork(mainnetChain.id); + } + const tx = await withdrawTaikoToken( $signer, TAIKO_L1_ADDRESS, @@ -60,6 +68,10 @@ } async function deposit() { + if ($srcChain.id !== mainnetChain.id) { + await switchNetwork(mainnetChain.id); + } + const tx = await depositTaikoToken( $signer, TAIKO_L1_ADDRESS, diff --git a/packages/pos-dashboard/src/components/StakeForm.svelte/StakeForm.svelte b/packages/pos-dashboard/src/components/StakeForm.svelte/StakeForm.svelte index 9ad1e5ca76..9ed51dbb69 100644 --- a/packages/pos-dashboard/src/components/StakeForm.svelte/StakeForm.svelte +++ b/packages/pos-dashboard/src/components/StakeForm.svelte/StakeForm.svelte @@ -7,6 +7,10 @@ import { successToast } from '../NotificationToast.svelte'; import { pendingTransactions } from '../../store/transaction'; import { getProverRequirements } from '../../utils/getProverRequirements'; + import { switchNetwork } from '../../utils/switchNetwork'; + import { mainnetChain } from '../../chain/chains'; + import { srcChain } from '../../store/chain'; + import { mainnet } from 'wagmi'; let ttkoBalanceInWei: BigNumber = BigNumber.from(0); let amount: string = '0'; let rewardPerGas: number = 0; @@ -42,6 +46,9 @@ } async function submitForm() { + if ($srcChain.id !== mainnetChain.id) { + await switchNetwork(mainnetChain.id); + } const tx = await stake( $signer, PROVER_POOL_ADDRESS, diff --git a/packages/pos-dashboard/src/components/Tabs/TabPanel.svelte b/packages/pos-dashboard/src/components/Tabs/TabPanel.svelte index 8a04d4ec81..b5e68a87f7 100644 --- a/packages/pos-dashboard/src/components/Tabs/TabPanel.svelte +++ b/packages/pos-dashboard/src/components/Tabs/TabPanel.svelte @@ -13,7 +13,6 @@ activeTab = getContext>(key); } else { activeTab = getContext>(subKey); - console.log('EYY', tab, activeTab); } $: selected = tab === $activeTab; diff --git a/packages/pos-dashboard/src/utils/switchNetwork.ts b/packages/pos-dashboard/src/utils/switchNetwork.ts index 1e531c9959..92954950e7 100644 --- a/packages/pos-dashboard/src/utils/switchNetwork.ts +++ b/packages/pos-dashboard/src/utils/switchNetwork.ts @@ -1,43 +1,5 @@ -import { get } from 'svelte/store'; import { switchNetwork as wagmiSwitchNetwork } from 'wagmi/actions'; -import { srcChain } from '../store/chain'; -import { Deferred } from './Deferred'; - export async function switchNetwork(chainId: number) { - const prevChainId = get(srcChain)?.id; - - if (prevChainId === chainId) return; - await wagmiSwitchNetwork({ chainId }); - - // What are we doing here? we have a watcher waiting for network changes. - // When this happens this watcher is called and takes care of setting - // the signer and chains in the store. We are actually waiting here - // for these stores to change due to some race conditions in the UI. - // There will be a better design around this in alpha-4: fewer stores - // and '$:' tags. They're evil. - const deferred = new Deferred(); - - // This will prevent an unlikely infinite loop - const starting = Date.now(); - const timeout = 5000; // TODO: config? - - const waitForNetworkChange = () => { - const srcChainId = get(srcChain)?.id; - - if (srcChainId && srcChainId !== prevChainId) { - // We have finally set the chain in the store. We're done here. - deferred.resolve(); - } else if (Date.now() > starting + timeout) { - // Wait, what??? - deferred.reject(new Error('timeout switching network')); - } else { - setTimeout(waitForNetworkChange, 300); // TODO: config those 300? - } - }; - - waitForNetworkChange(); - - return deferred.promise; }