From ea2d92944f7303622dcf2e8ddfeb1cd7f7691f81 Mon Sep 17 00:00:00 2001 From: Korbinian Date: Wed, 10 Jan 2024 07:34:00 +0100 Subject: [PATCH] fix(bridge-ui-v2): fixing getFilterLogs errors (#15468) --- .../src/components/Bridge/Amount.svelte | 41 ++++++++++++++----- .../Bridge/NFTBridgeSteps/ReviewStep.svelte | 2 +- .../TokenDropdown/AddCustomERC20.svelte | 5 ++- .../TokenDropdown/TokenDropdown.svelte | 9 ++-- .../src/libs/relayer/RelayerAPIService.ts | 6 +-- .../src/libs/storage/BridgeTxService.ts | 6 +-- .../src/libs/storage/CustomTokenService.ts | 1 + .../bridge-ui-v2/src/libs/token/getBalance.ts | 4 +- .../src/libs/util/fetchTransactionReceipt.ts | 31 ++++++++++++++ 9 files changed, 76 insertions(+), 29 deletions(-) create mode 100644 packages/bridge-ui-v2/src/libs/util/fetchTransactionReceipt.ts diff --git a/packages/bridge-ui-v2/src/components/Bridge/Amount.svelte b/packages/bridge-ui-v2/src/components/Bridge/Amount.svelte index 1d5558ff53..ce2bdde6da 100644 --- a/packages/bridge-ui-v2/src/components/Bridge/Amount.svelte +++ b/packages/bridge-ui-v2/src/components/Bridge/Amount.svelte @@ -20,6 +20,7 @@ import { getLogger } from '$libs/util/logger'; import { uid } from '$libs/util/uid'; import { account } from '$stores/account'; + import { ethBalance } from '$stores/balance'; import { network } from '$stores/network'; import { @@ -59,6 +60,8 @@ const to = $recipientAddress || $account?.address; + let balanceForGasCalculation = $ethBalance; + // We need all these guys to validate if ( !to || @@ -67,9 +70,11 @@ !$destNetwork || !$tokenBalance || !$selectedToken || + !(balanceForGasCalculation && balanceForGasCalculation > BigInt(0)) || $enteredAmount === BigInt(0) // no need to check if the amount is 0 - ) + ) { return; + } try { await checkBalanceToBridge({ @@ -77,7 +82,7 @@ token, amount: $enteredAmount, fee, - balance, + balance: balanceForGasCalculation, srcChainId: $network.id, destChainId: $destNetwork.id, tokenIds: @@ -192,6 +197,8 @@ computingMaxAmount = true; + const balance = determineBalance(); + try { let maxAmount; @@ -228,15 +235,27 @@ } } - $: balance = $tokenBalance - ? typeof $tokenBalance === 'bigint' - ? $tokenBalance > BigInt(0) - ? $tokenBalance - : BigInt(0) // ERC721/1155 - : 'value' in $tokenBalance && $tokenBalance.value > BigInt(0) - ? $tokenBalance.value - : BigInt(0) // ERC20 - : BigInt(0); + const determineBalance = () => { + let balance = 0n; + if (!$selectedToken) return balance; + const type = $selectedToken.type; + switch (type) { + case TokenType.ERC20: + if (typeof $tokenBalance === 'bigint') break; + if ($tokenBalance?.value) balance = $tokenBalance.value; + break; + case TokenType.ETH: + balance = $ethBalance; + break; + case TokenType.ERC721: + case TokenType.ERC1155: + if (typeof $tokenBalance === 'bigint') balance = $tokenBalance; + break; + default: + break; + } + return balance; + }; $: if (inputBox && sanitizedValue !== inputBox.getValue()) { inputBox.setValue(sanitizedValue); // Update InputBox value if sanitizedValue changes diff --git a/packages/bridge-ui-v2/src/components/Bridge/NFTBridgeSteps/ReviewStep.svelte b/packages/bridge-ui-v2/src/components/Bridge/NFTBridgeSteps/ReviewStep.svelte index f5c95f09ec..7ac1bdab80 100644 --- a/packages/bridge-ui-v2/src/components/Bridge/NFTBridgeSteps/ReviewStep.svelte +++ b/packages/bridge-ui-v2/src/components/Bridge/NFTBridgeSteps/ReviewStep.svelte @@ -44,7 +44,7 @@ $: isERC1155 = $selectedNFTs ? $selectedNFTs.some((nft) => nft.type === 'ERC1155') : false; -
+
{$t('bridge.nft.step.review.transfer_details')}
diff --git a/packages/bridge-ui-v2/src/components/TokenDropdown/AddCustomERC20.svelte b/packages/bridge-ui-v2/src/components/TokenDropdown/AddCustomERC20.svelte index bcc564e3cc..857189e2bd 100644 --- a/packages/bridge-ui-v2/src/components/TokenDropdown/AddCustomERC20.svelte +++ b/packages/bridge-ui-v2/src/components/TokenDropdown/AddCustomERC20.svelte @@ -18,6 +18,7 @@ import { getLogger } from '$libs/util/logger'; import { uid } from '$libs/util/uid'; import { account } from '$stores/account'; + import { network } from '$stores/network'; import { destNetwork } from '../Bridge/state'; @@ -44,7 +45,7 @@ tokenService.storeToken(customToken, $account?.address as Address); customTokens = tokenService.getTokens($account?.address as Address); - const { chain: srcChain } = getNetwork(); + const srcChain = $network; const destChain = $destNetwork; if (!srcChain || !destChain) return; @@ -119,7 +120,7 @@ return; } - const { chain: srcChain } = getNetwork(); + const srcChain = $network; if (!srcChain) return; try { const token = await getTokenWithInfoFromAddress({ diff --git a/packages/bridge-ui-v2/src/components/TokenDropdown/TokenDropdown.svelte b/packages/bridge-ui-v2/src/components/TokenDropdown/TokenDropdown.svelte index efa237644c..c9048d8605 100644 --- a/packages/bridge-ui-v2/src/components/TokenDropdown/TokenDropdown.svelte +++ b/packages/bridge-ui-v2/src/components/TokenDropdown/TokenDropdown.svelte @@ -1,5 +1,5 @@