11import { loadEnv , CLIArgs , CLIEnvironment } from '../../env'
22import { logger } from '../../logging'
33import { getProvider , sendTransaction , toGRT } from '../../network'
4- import { utils } from 'ethers'
4+ import { BigNumber , utils } from 'ethers'
55import { parseEther } from '@ethersproject/units'
66import {
77 L1TransactionReceipt ,
@@ -32,7 +32,12 @@ const checkAndRedeemMessage = async (l1ToL2Message: L1ToL2MessageWriter) => {
3232 logAutoRedeemReason ( autoRedeemRec )
3333 logger . info ( 'Attempting to redeem...' )
3434 await l1ToL2Message . redeem ( )
35- l2TxHash = ( await l1ToL2Message . getSuccessfulRedeem ( ) ) . transactionHash
35+ const redeemAttempt = await l1ToL2Message . getSuccessfulRedeem ( )
36+ if ( redeemAttempt . status == L1ToL2MessageStatus . REDEEMED ) {
37+ l2TxHash = redeemAttempt . l2TxReceipt ? redeemAttempt . l2TxReceipt . transactionHash : 'null'
38+ } else {
39+ throw new Error ( `Unexpected L1ToL2MessageStatus after redeem attempt: ${ res . status } ` )
40+ }
3641 } else if ( res . status != L1ToL2MessageStatus . REDEEMED ) {
3742 throw new Error ( `Unexpected L1ToL2MessageStatus ${ res . status } ` )
3843 }
@@ -72,18 +77,19 @@ export const sendToL2 = async (cli: CLIEnvironment, cliArgs: CLIArgs): Promise<v
7277 logger . info ( 'Estimating retryable ticket gas:' )
7378 const baseFee = ( await cli . wallet . provider . getBlock ( 'latest' ) ) . baseFeePerGas
7479 const gasEstimator = new L1ToL2MessageGasEstimator ( l2Provider )
75- const gasParams = await gasEstimator . estimateMessage (
80+ const gasParams = await gasEstimator . estimateAll (
7681 gateway . address ,
7782 l2Dest ,
7883 depositCalldata ,
7984 parseEther ( '0' ) ,
80- baseFee ,
85+ baseFee as BigNumber ,
8186 gateway . address ,
8287 gateway . address ,
88+ cli . wallet . provider ,
8389 )
84- const maxGas = gasParams . maxGasBid
85- const gasPriceBid = gasParams . maxGasPriceBid
86- const maxSubmissionPrice = gasParams . maxSubmissionPriceBid
90+ const maxGas = gasParams . gasLimit
91+ const gasPriceBid = gasParams . maxFeePerGas
92+ const maxSubmissionPrice = gasParams . maxSubmissionFee
8793 logger . info (
8894 `Using max gas: ${ maxGas } , gas price bid: ${ gasPriceBid } , max submission price: ${ maxSubmissionPrice } ` ,
8995 )
@@ -100,7 +106,7 @@ export const sendToL2 = async (cli: CLIEnvironment, cliArgs: CLIArgs): Promise<v
100106 value : ethValue ,
101107 } )
102108 const l1Receipt = new L1TransactionReceipt ( receipt )
103- const l1ToL2Message = await l1Receipt . getL1ToL2Message ( cli . wallet . connect ( l2Provider ) )
109+ const l1ToL2Message = await l1Receipt . getL1ToL2Messages ( cli . wallet . connect ( l2Provider ) ) [ 0 ]
104110
105111 logger . info ( 'Waiting for message to propagate to L2...' )
106112 try {
0 commit comments