Skip to content

Commit

Permalink
Use market fees for tunnel operations
Browse files Browse the repository at this point in the history
  • Loading branch information
gndelia committed Sep 23, 2024
1 parent e79156d commit 08bbd97
Showing 1 changed file with 31 additions and 10 deletions.
41 changes: 31 additions & 10 deletions webapp/hooks/useL2Bridge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {
} from '@tanstack/react-query'
import { useJsonRpcProvider, useWeb3Provider } from 'hooks/useEthersSigner'
import { useIsConnectedToExpectedNetwork } from 'hooks/useIsConnectedToExpectedNetwork'
import merge from 'lodash/merge'
import { Token } from 'types/token'
import {
type CrossChainMessengerProxy,
Expand All @@ -22,6 +23,12 @@ import { useAccount } from 'wagmi'
import { useEstimateFees } from './useEstimateFees'
import { useHemi } from './useHemi'

const tunnelOverrides = {
gasLimit: 2_000_000,
// enable usage of EIP-1559
overrides: { type: 2 },
}

type GasEstimationOperations = Extract<
keyof CrossChainMessengerProxy['estimateGas'],
| 'depositERC20'
Expand Down Expand Up @@ -296,7 +303,7 @@ export const useDepositErc20Token = function ({
const l2BridgeAddress = token.extensions?.bridgeInfo[hemi.id]?.tokenAddress

const depositErc20TokenGasFees = useEstimateGasFees({
args: [l1BridgeAddress, l2BridgeAddress, toDeposit],
args: [l1BridgeAddress, l2BridgeAddress, toDeposit, tunnelOverrides],
crossChainMessenger,
crossChainMessengerStatus,
enabled:
Expand Down Expand Up @@ -327,6 +334,7 @@ export const useDepositErc20Token = function ({
l1Address,
l2Address,
amount,
tunnelOverrides,
)
return response.hash as Hash
},
Expand Down Expand Up @@ -362,7 +370,7 @@ export const useDepositNativeToken = function ({
useL1ToL2CrossChainMessenger(l1ChainId)

const depositNativeTokenGasFees = useEstimateGasFees({
args: [toDeposit],
args: [toDeposit, tunnelOverrides],
crossChainMessenger,
crossChainMessengerStatus,
enabled:
Expand All @@ -381,7 +389,10 @@ export const useDepositNativeToken = function ({
reset: resetDepositNativeToken,
} = useMutation({
async mutationFn(amount: string) {
const response = await crossChainMessenger.depositETH(amount)
const response = await crossChainMessenger.depositETH(
amount,
tunnelOverrides,
)
return response.hash as Hash
},
})
Expand Down Expand Up @@ -415,7 +426,7 @@ export const useWithdrawNativeToken = function ({

const withdrawNativeTokenGasFees = useEstimateGasFees({
// Need to manually override from address - See https://github.com/ethereum-optimism/optimism/issues/8952
args: [amount, { overrides: { from: address } }],
args: [amount, merge(tunnelOverrides, { overrides: { from: address } })],
crossChainMessenger,
crossChainMessengerStatus,
enabled:
Expand All @@ -434,7 +445,10 @@ export const useWithdrawNativeToken = function ({
reset: resetWithdrawNativeToken,
} = useMutation<Hash, Error, string>({
async mutationFn(toWithdraw: string) {
const response = await crossChainMessenger.withdrawETH(toWithdraw)
const response = await crossChainMessenger.withdrawETH(
toWithdraw,
tunnelOverrides,
)
return response.hash as Hash
},
...options,
Expand Down Expand Up @@ -465,7 +479,7 @@ export const useFinalizeMessage = function ({
useL1ToL2CrossChainMessenger(l1ChainId)

const finalizeWithdrawalTokenGasFees = useEstimateGasFees({
args: [withdrawTxHash],
args: [withdrawTxHash, tunnelOverrides],
crossChainMessenger,
crossChainMessengerStatus,
enabled: enabled && isHash(withdrawTxHash),
Expand All @@ -480,7 +494,10 @@ export const useFinalizeMessage = function ({
reset: resetFinalizeWithdrawal,
} = useMutation({
async mutationFn(toFinalize: Hash) {
const response = await crossChainMessenger.finalizeMessage(toFinalize)
const response = await crossChainMessenger.finalizeMessage(
toFinalize,
tunnelOverrides,
)
return response.hash as Hash
},
...options,
Expand Down Expand Up @@ -511,7 +528,7 @@ export const useProveMessage = function ({
useL1ToL2CrossChainMessenger(l1ChainId)

const proveWithdrawalTokenGasFees = useEstimateGasFees({
args: [withdrawTxHash],
args: [withdrawTxHash, tunnelOverrides],
crossChainMessenger,
crossChainMessengerStatus,
enabled: enabled && isHash(withdrawTxHash),
Expand All @@ -526,7 +543,10 @@ export const useProveMessage = function ({
reset: resetProveWithdrawal,
} = useMutation({
async mutationFn(toProve: Hash) {
const response = await crossChainMessenger.proveMessage(toProve)
const response = await crossChainMessenger.proveMessage(
toProve,
tunnelOverrides,
)
return response.hash as Hash
},
})
Expand Down Expand Up @@ -562,7 +582,7 @@ export const useWithdrawToken = function ({
const l2BridgeAddress = token.address

const withdrawErc20TokenGasFees = useEstimateGasFees({
args: [l1BridgeAddress, l2BridgeAddress, amount],
args: [l1BridgeAddress, l2BridgeAddress, amount, tunnelOverrides],
crossChainMessenger,
crossChainMessengerStatus,
enabled:
Expand All @@ -584,6 +604,7 @@ export const useWithdrawToken = function ({
l1BridgeAddress,
l2BridgeAddress,
toWithdraw,
tunnelOverrides,
)
return response.hash as Hash
},
Expand Down

0 comments on commit 08bbd97

Please sign in to comment.