diff --git a/packages/dashboard/src/pages/Wallets/components/Transfer/TransferERC20.tsx b/packages/dashboard/src/pages/Wallets/components/Transfer/TransferERC20.tsx index e75bf749d057..61f2374becf2 100644 --- a/packages/dashboard/src/pages/Wallets/components/Transfer/TransferERC20.tsx +++ b/packages/dashboard/src/pages/Wallets/components/Transfer/TransferERC20.tsx @@ -6,12 +6,14 @@ import { formatWeiToEther, FungibleTokenDetailed, isEIP1559Supported, + isSameAddress, TransactionStateType, useChainId, useFungibleTokenBalance, useGasLimit, useGasPrice, useNativeTokenDetailed, + useTokenConstants, useTokenTransferCallback, } from '@masknet/web3-shared-evm' import { isGreaterThan, isZero, multipliedBy, rightShift } from '@masknet/web3-shared-base' @@ -34,6 +36,7 @@ interface TransferERC20Props { const GAS_LIMIT = 30000 export const TransferERC20 = memo(({ token }) => { const t = useDashboardI18N() + const { NATIVE_TOKEN_ADDRESS } = useTokenConstants() const anchorEl = useRef(null) const [amount, setAmount] = useState('') const [address, setAddress] = useState('') @@ -58,7 +61,10 @@ export const TransferERC20 = memo(({ token }) => { // balance const { value: tokenBalance = '0', retry: tokenBalanceRetry } = useFungibleTokenBalance( - selectedToken?.type ?? EthereumTokenType.Native, + // workaround: transferERC20 should support non-evm network + isSameAddress(selectedToken?.address, NATIVE_TOKEN_ADDRESS) + ? EthereumTokenType.Native + : EthereumTokenType.ERC20, selectedToken?.address ?? '', ) const nativeToken = useNativeTokenDetailed() @@ -101,7 +107,7 @@ export const TransferERC20 = memo(({ token }) => { }, [tokenBalance, gasPrice, selectedToken?.type, amount]) const [transferState, transferCallback, resetTransferCallback] = useTokenTransferCallback( - selectedToken.type, + EthereumTokenType.ERC20, selectedToken.address, )