From b7dabc8fe8b510491bc5f485562ac0afce634e0f Mon Sep 17 00:00:00 2001 From: Nikola Pavlov Date: Fri, 5 Apr 2024 14:08:37 +0200 Subject: [PATCH] feat: add custom bridge address for fee estimation --- composables/zksync/useFee.ts | 9 ++++++--- views/transactions/Transfer.vue | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/composables/zksync/useFee.ts b/composables/zksync/useFee.ts index eb8690202..17a94689c 100644 --- a/composables/zksync/useFee.ts +++ b/composables/zksync/useFee.ts @@ -8,7 +8,7 @@ export type FeeEstimationParams = { type: "transfer" | "withdrawal"; from: string; to: string; - tokenAddress: string; + token: Token; }; export default ( @@ -51,15 +51,18 @@ export default ( if (!params) throw new Error("Params are not available"); const provider = getProvider(); - const tokenBalance = balances.value.find((e) => e.address === params!.tokenAddress)?.amount || "1"; + const tokenBalance = balances.value.find((e) => e.address === params!.token.address)?.amount || "1"; const [price, limit] = await Promise.all([ retry(() => provider.getGasPrice()), retry(() => { + const isCustomBridge = isExternalBridgeToken(params!.token); + const bridgeAddress = isCustomBridge ? EXTERNAL_BRIDGES[params!.token.address] : ""; return provider[params!.type === "transfer" ? "estimateGasTransfer" : "estimateGasWithdraw"]({ from: params!.from, to: params!.to, - token: params!.tokenAddress === ETH_TOKEN.address ? ETH_TOKEN.l1Address! : params!.tokenAddress, + token: params!.token.address === ETH_TOKEN.address ? ETH_TOKEN.l1Address! : params!.token.address, amount: tokenBalance, + ...(isCustomBridge ? { bridgeAddress } : {}), }); }), ]); diff --git a/views/transactions/Transfer.vue b/views/transactions/Transfer.vue index 6417ed613..fa09e43e7 100644 --- a/views/transactions/Transfer.vue +++ b/views/transactions/Transfer.vue @@ -522,7 +522,7 @@ const estimate = async () => { type: props.type, from: transaction.value.from.address, to: transaction.value.to.address, - tokenAddress: selectedToken.value.address, + token: selectedToken.value, }); }; watch(