diff --git a/src/components/Widget.tsx b/src/components/Widget.tsx index b900ac40aa..dbe2e6c30b 100644 --- a/src/components/Widget.tsx +++ b/src/components/Widget.tsx @@ -44,6 +44,7 @@ import { switchNetwork } from '@/utils/actions/switchNetwork' import { generateTheme } from '@/utils/generateTheme' import { fetchTokenBalances } from '@/utils/actions/fetchTokenBalances' import { AvailableBalance } from './AvailableBalance' +import { ZeroAddress } from 'ethers' const chains = { 1: { @@ -249,6 +250,7 @@ export const Widget = ({ }, [debouncedInputAmount]) const isApproved: boolean = useMemo(() => { + if (originToken?.addresses[originChainId] === ZeroAddress) return true if (allowance === null) return true if (!formattedInputAmount) return true return formattedInputAmount <= allowance diff --git a/src/hooks/useBridgeCallback.tsx b/src/hooks/useBridgeCallback.tsx index 2b1321a125..10b23c194d 100644 --- a/src/hooks/useBridgeCallback.tsx +++ b/src/hooks/useBridgeCallback.tsx @@ -1,3 +1,5 @@ +import { stringToBigInt } from '@/utils/stringToBigInt' +import { ZeroAddress } from 'ethers' import { useState, useCallback, useMemo } from 'react' export enum UseBridgeCallbackError { @@ -98,7 +100,17 @@ export function useBridgeCallback({ originQuery, destinationQuery ) - const transactionHash = await signer.sendTransaction(data) + + const payload = + tokenAddress === ZeroAddress + ? { + data: data.data, + to: data.to, + value: amount, + } + : data + + const transactionHash = await signer.sendTransaction(payload) BridgeStateCallback.successBridge() return transactionHash