From 67e646aaffa262ea63a0ff829859c8d30903de08 Mon Sep 17 00:00:00 2001 From: Alexander Kolberg Date: Tue, 23 Jun 2026 21:58:46 +0300 Subject: [PATCH] Fix WaaS fee token balance matching --- .changeset/tidy-lizards-compare.md | 5 +++++ packages/connect/src/hooks/useWaasFeeOptions.ts | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 .changeset/tidy-lizards-compare.md diff --git a/.changeset/tidy-lizards-compare.md b/.changeset/tidy-lizards-compare.md new file mode 100644 index 000000000..a0ba6a501 --- /dev/null +++ b/.changeset/tidy-lizards-compare.md @@ -0,0 +1,5 @@ +--- +'@0xsequence/connect': patch +--- + +Compare WaaS fee token addresses case-insensitively when matching balances. diff --git a/packages/connect/src/hooks/useWaasFeeOptions.ts b/packages/connect/src/hooks/useWaasFeeOptions.ts index 0b5c28077..630d5bbac 100644 --- a/packages/connect/src/hooks/useWaasFeeOptions.ts +++ b/packages/connect/src/hooks/useWaasFeeOptions.ts @@ -9,6 +9,7 @@ import type { Connector } from 'wagmi' import { useConnections } from 'wagmi' import { Deferred } from '../utils/deferred.js' +import { compareAddress } from '../utils/helpers.js' // Shared state across hook instances let sharedPendingConfirmation: WaasFeeOptionConfirmation | undefined = undefined @@ -101,8 +102,12 @@ export function useWaasFeeOptions(options?: WaasFeeOptionsConfig): UseWaasFeeOpt const { token, value } = option const decimals = token.decimals ?? 18 const rawValue = BigInt(value) - const balance = token.contractAddress - ? BigInt(balances.balances.find(({ contractAddress }) => contractAddress === token.contractAddress)?.balance ?? '0') + const tokenContractAddress = token.contractAddress + const balance = tokenContractAddress + ? BigInt( + balances.balances.find(({ contractAddress }) => compareAddress(contractAddress, tokenContractAddress))?.balance ?? + '0' + ) : BigInt(balances.nativeBalances?.[0]?.balance ?? '0') return {