Commit 301b518b authored by smartcontracts's avatar smartcontracts Committed by GitHub

test(ctb): add test for stuck ETH on failed msg (#3029)

Adds a test that ETH gets properly stuck in the CrossDomainMessenger
contracts but then is unstuck when the message is replayed.
Co-authored-by: default avatarMark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: default avatarMaurelian <maurelian@protonmail.ch>
Co-authored-by: default avatarmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
parent 177a9ea8
GasBenchMark_L1CrossDomainMessenger:test_L1MessengerSendMessage_benchmark_0() (gas: 262334) GasBenchMark_L1CrossDomainMessenger:test_L1MessengerSendMessage_benchmark_0() (gas: 262334)
GasBenchMark_L1CrossDomainMessenger:test_L1MessengerSendMessage_benchmark_1() (gas: 75340) GasBenchMark_L1CrossDomainMessenger:test_L1MessengerSendMessage_benchmark_1() (gas: 75318)
GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_0() (gas: 353380) GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_0() (gas: 353380)
GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_1() (gas: 116384) GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_1() (gas: 116384)
GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_0() (gas: 353402) GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_0() (gas: 353402)
GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_1() (gas: 116381) GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_1() (gas: 116359)
GasBenchMark_L1StandardBridge_Finalize:test_finalizeETHWithdrawal_benchmark() (gas: 45368) GasBenchMark_L1StandardBridge_Finalize:test_finalizeETHWithdrawal_benchmark() (gas: 45413)
GasBenchMark_L2OutputOracle:test_proposeL2Output_benchmark() (gas: 68672) GasBenchMark_L2OutputOracle:test_proposeL2Output_benchmark() (gas: 68672)
GasBenchMark_OptimismPortal:test_depositTransaction_benchmark() (gas: 75069) GasBenchMark_OptimismPortal:test_depositTransaction_benchmark() (gas: 75069)
GasBenchMark_OptimismPortal:test_depositTransaction_benchmark_1() (gas: 35328) GasBenchMark_OptimismPortal:test_depositTransaction_benchmark_1() (gas: 35373)
DeployerWhitelist_Test:test_owner() (gas: 7680) DeployerWhitelist_Test:test_owner() (gas: 7658)
DeployerWhitelist_Test:test_storageSlots() (gas: 33516) DeployerWhitelist_Test:test_storageSlots() (gas: 33494)
Encoding_Test:test_encodeDepositTransaction() (gas: 64567) Encoding_Test:test_encodeDepositTransaction() (gas: 64610)
GasPriceOracle_Test:test_baseFee() (gas: 8392) GasPriceOracle_Test:test_baseFee() (gas: 8370)
GasPriceOracle_Test:test_gasPrice() (gas: 8381) GasPriceOracle_Test:test_gasPrice() (gas: 8381)
GasPriceOracle_Test:test_l1BaseFee() (gas: 10582) GasPriceOracle_Test:test_l1BaseFee() (gas: 10582)
GasPriceOracle_Test:test_onlyOwnerSetDecimals() (gas: 10575) GasPriceOracle_Test:test_onlyOwnerSetDecimals() (gas: 10553)
GasPriceOracle_Test:test_onlyOwnerSetOverhead() (gas: 10599) GasPriceOracle_Test:test_onlyOwnerSetOverhead() (gas: 10599)
GasPriceOracle_Test:test_onlyOwnerSetScalar() (gas: 10640) GasPriceOracle_Test:test_onlyOwnerSetScalar() (gas: 10640)
GasPriceOracle_Test:test_owner() (gas: 9762) GasPriceOracle_Test:test_owner() (gas: 9806)
GasPriceOracle_Test:test_setDecimals() (gas: 36798) GasPriceOracle_Test:test_setDecimals() (gas: 36798)
GasPriceOracle_Test:test_setGasPriceReverts() (gas: 11740) GasPriceOracle_Test:test_setGasPriceReverts() (gas: 11740)
GasPriceOracle_Test:test_setL1BaseFeeReverts() (gas: 11739) GasPriceOracle_Test:test_setL1BaseFeeReverts() (gas: 11717)
GasPriceOracle_Test:test_setOverhead() (gas: 36767) GasPriceOracle_Test:test_setOverhead() (gas: 36767)
GasPriceOracle_Test:test_setScalar() (gas: 36818) GasPriceOracle_Test:test_setScalar() (gas: 36818)
GasPriceOracle_Test:test_storageLayout() (gas: 86683) GasPriceOracle_Test:test_storageLayout() (gas: 86683)
Hashing_Test:test_hashDepositSource() (gas: 673) Hashing_Test:test_hashDepositSource() (gas: 673)
Hashing_Test:test_hashDepositTransaction() (gas: 39151) Hashing_Test:test_hashDepositTransaction() (gas: 39129)
L1BlockTest:test_basefee() (gas: 7553) L1BlockTest:test_basefee() (gas: 7531)
L1BlockTest:test_hash() (gas: 7575) L1BlockTest:test_hash() (gas: 7575)
L1BlockTest:test_number() (gas: 7652) L1BlockTest:test_number() (gas: 7630)
L1BlockTest:test_sequenceNumber() (gas: 7630) L1BlockTest:test_sequenceNumber() (gas: 7695)
L1BlockTest:test_timestamp() (gas: 7684) L1BlockTest:test_timestamp() (gas: 7662)
L1BlockTest:test_updateValues() (gas: 28238) L1BlockTest:test_updateValues() (gas: 28216)
L1BlockNumberTest:test_fallback() (gas: 18774) L1BlockNumberTest:test_fallback() (gas: 18774)
L1BlockNumberTest:test_getL1BlockNumber() (gas: 10612) L1BlockNumberTest:test_getL1BlockNumber() (gas: 10657)
L1BlockNumberTest:test_receive() (gas: 25437) L1BlockNumberTest:test_receive() (gas: 25437)
L1CrossDomainMessenger_Test:testCannot_L1MessengerPause() (gas: 24496) L1CrossDomainMessenger_Test:testCannot_L1MessengerPause() (gas: 24561)
L1CrossDomainMessenger_Test:testCannot_L1MessengerUnpause() (gas: 24508) L1CrossDomainMessenger_Test:testCannot_L1MessengerUnpause() (gas: 24508)
L1CrossDomainMessenger_Test:test_L1MessengerMessageVersion() (gas: 24725) L1CrossDomainMessenger_Test:test_L1MessengerMessageVersion() (gas: 24725)
L1CrossDomainMessenger_Test:test_L1MessengerPause() (gas: 48039) L1CrossDomainMessenger_Test:test_L1MessengerPause() (gas: 48017)
L1CrossDomainMessenger_Test:test_L1MessengerRelayMessageSucceeds() (gas: 77772) L1CrossDomainMessenger_Test:test_L1MessengerRelayMessageFirstStuckSecondSucceeds() (gas: 201762)
L1CrossDomainMessenger_Test:test_L1MessengerRelayMessageToSystemContract() (gas: 67800) L1CrossDomainMessenger_Test:test_L1MessengerRelayMessageSucceeds() (gas: 77784)
L1CrossDomainMessenger_Test:test_L1MessengerRelayShouldRevertIfPaused() (gas: 60449) L1CrossDomainMessenger_Test:test_L1MessengerRelayMessageToSystemContract() (gas: 67778)
L1CrossDomainMessenger_Test:test_L1MessengerRelayShouldRevertIfPaused() (gas: 60493)
L1CrossDomainMessenger_Test:test_L1MessengerReplayMessageWithValue() (gas: 38127) L1CrossDomainMessenger_Test:test_L1MessengerReplayMessageWithValue() (gas: 38127)
L1CrossDomainMessenger_Test:test_L1MessengerSendMessage() (gas: 297767) L1CrossDomainMessenger_Test:test_L1MessengerSendMessage() (gas: 297767)
L1CrossDomainMessenger_Test:test_L1MessengerTwiceSendMessage() (gas: 1490070) L1CrossDomainMessenger_Test:test_L1MessengerTwiceSendMessage() (gas: 1490070)
L1CrossDomainMessenger_Test:test_L1MessengerUnpause() (gas: 40889) L1CrossDomainMessenger_Test:test_L1MessengerUnpause() (gas: 40889)
L1CrossDomainMessenger_Test:test_L1MessengerXDomainSenderReverts() (gas: 24249) L1CrossDomainMessenger_Test:test_L1MessengerXDomainSenderReverts() (gas: 24249)
L1CrossDomainMessenger_Test:test_L1MessengerxDomainMessageSenderResets() (gas: 86190) L1CrossDomainMessenger_Test:test_L1MessengerxDomainMessageSenderResets() (gas: 86168)
L1StandardBridge_Test:test_depositERC20() (gas: 578889) L1StandardBridge_Test:test_depositERC20() (gas: 578867)
L1StandardBridge_Test:test_depositERC20To() (gas: 581070) L1StandardBridge_Test:test_depositERC20To() (gas: 581048)
L1StandardBridge_Test:test_depositETH() (gas: 372910) L1StandardBridge_Test:test_depositETH() (gas: 372975)
L1StandardBridge_Test:test_depositETHTo() (gas: 330097) L1StandardBridge_Test:test_depositETHTo() (gas: 330097)
L1StandardBridge_Test:test_finalizeERC20Withdrawal() (gas: 490759) L1StandardBridge_Test:test_finalizeERC20Withdrawal() (gas: 490759)
L1StandardBridge_Test:test_finalizeETHWithdrawal() (gas: 64431) L1StandardBridge_Test:test_finalizeETHWithdrawal() (gas: 64409)
L1StandardBridge_Test:test_initialize() (gas: 26358) L1StandardBridge_Test:test_initialize() (gas: 26336)
L1StandardBridge_Test:test_onlyEOADepositERC20() (gas: 22319) L1StandardBridge_Test:test_onlyEOADepositERC20() (gas: 22363)
L1StandardBridge_Test:test_onlyEOADepositETH() (gas: 40838) L1StandardBridge_Test:test_onlyEOADepositETH() (gas: 40816)
L1StandardBridge_Test:test_onlyL2BridgeFinalizeERC20Withdrawal() (gas: 36293) L1StandardBridge_Test:test_onlyL2BridgeFinalizeERC20Withdrawal() (gas: 36271)
L1StandardBridge_Test:test_onlyPortalFinalizeERC20Withdrawal() (gas: 35622) L1StandardBridge_Test:test_onlyPortalFinalizeERC20Withdrawal() (gas: 35600)
L1StandardBridge_Test:test_receive() (gas: 519560) L1StandardBridge_Test:test_receive() (gas: 519560)
L2CrossDomainMessenger_Test:testCannot_L2MessengerPause() (gas: 10822) L2CrossDomainMessenger_Test:testCannot_L2MessengerPause() (gas: 10823)
L2CrossDomainMessenger_Test:test_L2MessengerMessageVersion() (gas: 8499) L2CrossDomainMessenger_Test:test_L2MessengerMessageVersion() (gas: 8455)
L2CrossDomainMessenger_Test:test_L2MessengerPause() (gas: 31816) L2CrossDomainMessenger_Test:test_L2MessengerPause() (gas: 31772)
L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageSucceeds() (gas: 57331) L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageFirstStuckSecondSucceeds() (gas: 173026)
L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageToSystemContract() (gas: 36070) L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageSucceeds() (gas: 57288)
L2CrossDomainMessenger_Test:test_L2MessengerRelayShouldRevertIfPaused() (gas: 41535) L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageToSystemContract() (gas: 36115)
L2CrossDomainMessenger_Test:test_L2MessengerRelayShouldRevertIfPaused() (gas: 41578)
L2CrossDomainMessenger_Test:test_L2MessengerSendMessage() (gas: 120536) L2CrossDomainMessenger_Test:test_L2MessengerSendMessage() (gas: 120536)
L2CrossDomainMessenger_Test:test_L2MessengerTwiceSendMessage() (gas: 133720) L2CrossDomainMessenger_Test:test_L2MessengerTwiceSendMessage() (gas: 133720)
L2CrossDomainMessenger_Test:test_L2MessengerXDomainSenderReverts() (gas: 10598) L2CrossDomainMessenger_Test:test_L2MessengerXDomainSenderReverts() (gas: 10554)
L2CrossDomainMessenger_Test:test_L2MessengerxDomainMessageSenderResets() (gas: 54732) L2CrossDomainMessenger_Test:test_L2MessengerxDomainMessageSenderResets() (gas: 54754)
L2OutputOracleTest:testCannot_ProposeWithUnmatchedBlockhash() (gas: 26808) L2OutputOracleTest:testCannot_ProposeWithUnmatchedBlockhash() (gas: 26786)
L2OutputOracleTest:testCannot_deleteL2Output_ifNotOwner() (gas: 24866) L2OutputOracleTest:testCannot_deleteL2Output_ifNotOwner() (gas: 24844)
L2OutputOracleTest:testCannot_deleteL2Output_withWrongRoot() (gas: 91136) L2OutputOracleTest:testCannot_deleteL2Output_withWrongRoot() (gas: 91114)
L2OutputOracleTest:testCannot_deleteL2Output_withWrongTime() (gas: 87085) L2OutputOracleTest:testCannot_deleteL2Output_withWrongTime() (gas: 87108)
L2OutputOracleTest:testCannot_proposeEmptyOutput() (gas: 24107) L2OutputOracleTest:testCannot_proposeEmptyOutput() (gas: 24085)
L2OutputOracleTest:testCannot_proposeFutureTimetamp() (gas: 26031) L2OutputOracleTest:testCannot_proposeFutureTimetamp() (gas: 26054)
L2OutputOracleTest:testCannot_proposeL2OutputIfNotProposer() (gas: 23477) L2OutputOracleTest:testCannot_proposeL2OutputIfNotProposer() (gas: 23521)
L2OutputOracleTest:testCannot_proposeOnWrongFork() (gas: 26381) L2OutputOracleTest:testCannot_proposeOnWrongFork() (gas: 26381)
L2OutputOracleTest:testCannot_proposeUnexpectedBlockNumber() (gas: 25940) L2OutputOracleTest:testCannot_proposeUnexpectedBlockNumber() (gas: 25940)
L2OutputOracleTest:test_changeProposer() (gas: 56008) L2OutputOracleTest:test_changeProposer() (gas: 55986)
L2OutputOracleTest:test_computeL2Timestamp() (gas: 30200) L2OutputOracleTest:test_computeL2Timestamp() (gas: 30200)
L2OutputOracleTest:test_constructor() (gas: 48902) L2OutputOracleTest:test_constructor() (gas: 48880)
L2OutputOracleTest:test_deleteOutput() (gas: 76562) L2OutputOracleTest:test_deleteOutput() (gas: 76544)
L2OutputOracleTest:test_getL2Output() (gas: 82893) L2OutputOracleTest:test_getL2Output() (gas: 82893)
L2OutputOracleTest:test_latestBlockNumber() (gas: 76177) L2OutputOracleTest:test_latestBlockNumber() (gas: 76219)
L2OutputOracleTest:test_nextBlockNumber() (gas: 15166) L2OutputOracleTest:test_nextBlockNumber() (gas: 15166)
L2OutputOracleTest:test_proposeWithBlockhashAndHeight() (gas: 75025) L2OutputOracleTest:test_proposeWithBlockhashAndHeight() (gas: 75003)
L2OutputOracleTest:test_proposingAnotherOutput() (gas: 76816) L2OutputOracleTest:test_proposingAnotherOutput() (gas: 76816)
L2OutputOracleTest:test_updateOwner() (gas: 34624) L2OutputOracleTest:test_updateOwner() (gas: 34602)
L2OutputOracleUpgradeable_Test:test_cannotInitImpl() (gas: 19451) L2OutputOracleUpgradeable_Test:test_cannotInitImpl() (gas: 19451)
L2OutputOracleUpgradeable_Test:test_cannotInitProxy() (gas: 24472) L2OutputOracleUpgradeable_Test:test_cannotInitProxy() (gas: 24450)
L2OutputOracleUpgradeable_Test:test_initValuesOnProxy() (gas: 38899) L2OutputOracleUpgradeable_Test:test_initValuesOnProxy() (gas: 38899)
L2OutputOracleUpgradeable_Test:test_upgrading() (gas: 230843) L2OutputOracleUpgradeable_Test:test_upgrading() (gas: 230843)
L2StandardBridge_Test:test_ERC20BridgeFailed_whenLocalTokenIsBridge() (gas: 133459) L2StandardBridge_Test:test_ERC20BridgeFailed_whenLocalTokenIsBridge() (gas: 133459)
L2StandardBridge_Test:test_cannotWithdrawEthWithoutSendingIt() (gas: 21656) L2StandardBridge_Test:test_cannotWithdrawEthWithoutSendingIt() (gas: 21656)
L2StandardBridge_Test:test_finalizeDeposit() (gas: 93225) L2StandardBridge_Test:test_finalizeDeposit() (gas: 93203)
L2StandardBridge_Test:test_finalizeDeposit_failsToCompleteOutboundTransfer() (gas: 140491) L2StandardBridge_Test:test_finalizeDeposit_failsToCompleteOutboundTransfer() (gas: 140469)
L2StandardBridge_Test:test_initialize() (gas: 14824) L2StandardBridge_Test:test_initialize() (gas: 14802)
L2StandardBridge_Test:test_receive() (gas: 136864) L2StandardBridge_Test:test_receive() (gas: 136864)
L2StandardBridge_Test:test_withdraw() (gas: 353038) L2StandardBridge_Test:test_withdraw() (gas: 353020)
L2StandardBridge_Test:test_withdrawTo() (gas: 353723) L2StandardBridge_Test:test_withdrawTo() (gas: 353705)
L2StandardBridge_Test:test_withdraw_onlyEOA() (gas: 252006) L2StandardBridge_Test:test_withdraw_onlyEOA() (gas: 252006)
L2ToL1MessagePasserTest:test_burn() (gas: 112059) L2ToL1MessagePasserTest:test_burn() (gas: 112037)
L2ToL1MessagePasserTest:test_initiateWithdrawal_fromContract() (gas: 67847) L2ToL1MessagePasserTest:test_initiateWithdrawal_fromContract() (gas: 67892)
L2ToL1MessagePasserTest:test_initiateWithdrawal_fromEOA() (gas: 74831) L2ToL1MessagePasserTest:test_initiateWithdrawal_fromEOA() (gas: 74831)
LegacyERC20ETH_Test:test_approve() (gas: 10731) LegacyERC20ETH_Test:test_approve() (gas: 10796)
LegacyERC20ETH_Test:test_burn() (gas: 10615) LegacyERC20ETH_Test:test_burn() (gas: 10681)
LegacyERC20ETH_Test:test_crossDomain() (gas: 10599) LegacyERC20ETH_Test:test_crossDomain() (gas: 10577)
LegacyERC20ETH_Test:test_decreaseAllowance() (gas: 10731) LegacyERC20ETH_Test:test_decreaseAllowance() (gas: 10731)
LegacyERC20ETH_Test:test_increaseAllowance() (gas: 10763) LegacyERC20ETH_Test:test_increaseAllowance() (gas: 10741)
LegacyERC20ETH_Test:test_metadata() (gas: 15608) LegacyERC20ETH_Test:test_metadata() (gas: 15586)
LegacyERC20ETH_Test:test_mint() (gas: 10627) LegacyERC20ETH_Test:test_mint() (gas: 10627)
LegacyERC20ETH_Test:test_transfer() (gas: 10762) LegacyERC20ETH_Test:test_transfer() (gas: 10829)
LegacyERC20ETH_Test:test_transferFrom() (gas: 13008) LegacyERC20ETH_Test:test_transferFrom() (gas: 13008)
OptimismMintableERC20_Test:test_bridge() (gas: 9850) OptimismMintableERC20_Test:test_bridge() (gas: 9828)
OptimismMintableERC20_Test:test_burn() (gas: 52791) OptimismMintableERC20_Test:test_burn() (gas: 52773)
OptimismMintableERC20_Test:test_burnRevertsFromNotBridge() (gas: 13241) OptimismMintableERC20_Test:test_burnRevertsFromNotBridge() (gas: 13219)
OptimismMintableERC20_Test:test_erc165_supportsInterface() (gas: 7828) OptimismMintableERC20_Test:test_erc165_supportsInterface() (gas: 7828)
OptimismMintableERC20_Test:test_l1Token() (gas: 9757) OptimismMintableERC20_Test:test_l1Token() (gas: 9824)
OptimismMintableERC20_Test:test_l2Bridge() (gas: 9768) OptimismMintableERC20_Test:test_l2Bridge() (gas: 9746)
OptimismMintableERC20_Test:test_mint() (gas: 65754) OptimismMintableERC20_Test:test_mint() (gas: 65754)
OptimismMintableERC20_Test:test_mintRevertsFromNotBridge() (gas: 13243) OptimismMintableERC20_Test:test_mintRevertsFromNotBridge() (gas: 13243)
OptimismMintableERC20_Test:test_remoteToken() (gas: 9762) OptimismMintableERC20_Test:test_remoteToken() (gas: 9740)
OptimismMintableTokenFactory_Test:test_bridge() (gas: 7598) OptimismMintableTokenFactory_Test:test_bridge() (gas: 7663)
OptimismMintableTokenFactory_Test:test_createStandardL2Token() (gas: 1113150) OptimismMintableTokenFactory_Test:test_createStandardL2Token() (gas: 1113150)
OptimismMintableTokenFactory_Test:test_createStandardL2TokenSameTwice() (gas: 2209211) OptimismMintableTokenFactory_Test:test_createStandardL2TokenSameTwice() (gas: 2209211)
OptimismMintableTokenFactory_Test:test_createStandardL2TokenShouldRevertIfRemoteIsZero() (gas: 9399) OptimismMintableTokenFactory_Test:test_createStandardL2TokenShouldRevertIfRemoteIsZero() (gas: 9399)
OptimismPortalUpgradeable_Test:test_cannotInitImpl() (gas: 10686) OptimismPortalUpgradeable_Test:test_cannotInitImpl() (gas: 10686)
OptimismPortalUpgradeable_Test:test_cannotInitProxy() (gas: 15684) OptimismPortalUpgradeable_Test:test_cannotInitProxy() (gas: 15662)
OptimismPortalUpgradeable_Test:test_initValuesOnProxy() (gas: 15990) OptimismPortalUpgradeable_Test:test_initValuesOnProxy() (gas: 15990)
OptimismPortalUpgradeable_Test:test_upgrading() (gas: 230843) OptimismPortalUpgradeable_Test:test_upgrading() (gas: 230843)
OptimismPortal_Test:test_OptimismPortalConstructor() (gas: 17341) OptimismPortal_Test:test_OptimismPortalConstructor() (gas: 17319)
OptimismPortal_Test:test_OptimismPortalContractCreationReverts() (gas: 14215) OptimismPortal_Test:test_OptimismPortalContractCreationReverts() (gas: 14238)
OptimismPortal_Test:test_OptimismPortalReceiveEth() (gas: 126636) OptimismPortal_Test:test_OptimismPortalReceiveEth() (gas: 126614)
OptimismPortal_Test:test_cannotVerifyRecentWithdrawal() (gas: 31925) OptimismPortal_Test:test_cannotVerifyRecentWithdrawal() (gas: 31925)
OptimismPortal_Test:test_depositTransaction_NoValueContract() (gas: 75797) OptimismPortal_Test:test_depositTransaction_NoValueContract() (gas: 75820)
OptimismPortal_Test:test_depositTransaction_NoValueEOA() (gas: 76121) OptimismPortal_Test:test_depositTransaction_NoValueEOA() (gas: 76099)
OptimismPortal_Test:test_depositTransaction_createWithZeroValueForContract() (gas: 75825) OptimismPortal_Test:test_depositTransaction_createWithZeroValueForContract() (gas: 75825)
OptimismPortal_Test:test_depositTransaction_createWithZeroValueForEOA() (gas: 76146) OptimismPortal_Test:test_depositTransaction_createWithZeroValueForEOA() (gas: 76146)
OptimismPortal_Test:test_depositTransaction_withEthValueAndContractContractCreation() (gas: 82846) OptimismPortal_Test:test_depositTransaction_withEthValueAndContractContractCreation() (gas: 82846)
OptimismPortal_Test:test_depositTransaction_withEthValueAndEOAContractCreation() (gas: 75029) OptimismPortal_Test:test_depositTransaction_withEthValueAndEOAContractCreation() (gas: 75007)
OptimismPortal_Test:test_depositTransaction_withEthValueFromContract() (gas: 82485) OptimismPortal_Test:test_depositTransaction_withEthValueFromContract() (gas: 82550)
OptimismPortal_Test:test_depositTransaction_withEthValueFromEOA() (gas: 83101) OptimismPortal_Test:test_depositTransaction_withEthValueFromEOA() (gas: 83145)
OptimismPortal_Test:test_invalidWithdrawalProof() (gas: 45176) OptimismPortal_Test:test_invalidWithdrawalProof() (gas: 45154)
OptimismPortal_Test:test_isOutputFinalized() (gas: 132184) OptimismPortal_Test:test_isOutputFinalized() (gas: 132228)
OptimismPortal_Test:test_simple_isOutputFinalized() (gas: 23978) OptimismPortal_Test:test_simple_isOutputFinalized() (gas: 24021)
Proxy_Test:test_clashingFunctionSignatures() (gas: 101427) Proxy_Test:test_clashingFunctionSignatures() (gas: 101427)
Proxy_Test:test_implementationKey() (gas: 20942) Proxy_Test:test_implementationKey() (gas: 20942)
Proxy_Test:test_implementationProxyCallIfNotAdmin() (gas: 30021) Proxy_Test:test_implementationProxyCallIfNotAdmin() (gas: 30021)
Proxy_Test:test_implementationZeroAddress() (gas: 48022) Proxy_Test:test_implementationZeroAddress() (gas: 48000)
Proxy_Test:test_itDelegatesToTheImplementation() (gas: 45184) Proxy_Test:test_itDelegatesToTheImplementation() (gas: 45251)
Proxy_Test:test_ownerKey() (gas: 19113) Proxy_Test:test_ownerKey() (gas: 19091)
Proxy_Test:test_ownerProxyCallIfNotAdmin() (gas: 34733) Proxy_Test:test_ownerProxyCallIfNotAdmin() (gas: 34711)
Proxy_Test:test_payableUpgradeToAndCall() (gas: 53887) Proxy_Test:test_payableUpgradeToAndCall() (gas: 53865)
Proxy_Test:test_revertUpgradeToAndCall() (gas: 104654) Proxy_Test:test_revertUpgradeToAndCall() (gas: 104654)
Proxy_Test:test_upgradeToAndCall() (gas: 125238) Proxy_Test:test_upgradeToAndCall() (gas: 125305)
Proxy_Test:test_zeroAddressCaller() (gas: 14758) Proxy_Test:test_zeroAddressCaller() (gas: 14825)
ProxyAdmin_Test:test_chugsplashChangeProxyAdmin() (gas: 35647) ProxyAdmin_Test:test_chugsplashChangeProxyAdmin() (gas: 35647)
ProxyAdmin_Test:test_chugsplashGetProxyAdmin() (gas: 15711) ProxyAdmin_Test:test_chugsplashGetProxyAdmin() (gas: 15689)
ProxyAdmin_Test:test_chugsplashGetProxyImplementation() (gas: 51122) ProxyAdmin_Test:test_chugsplashGetProxyImplementation() (gas: 51167)
ProxyAdmin_Test:test_chugsplashUpgrade() (gas: 48994) ProxyAdmin_Test:test_chugsplashUpgrade() (gas: 48972)
ProxyAdmin_Test:test_chugsplashUpgradeAndCall() (gas: 82322) ProxyAdmin_Test:test_chugsplashUpgradeAndCall() (gas: 82345)
ProxyAdmin_Test:test_delegateResolvedChangeProxyAdmin() (gas: 33976) ProxyAdmin_Test:test_delegateResolvedChangeProxyAdmin() (gas: 34020)
ProxyAdmin_Test:test_delegateResolvedGetProxyAdmin() (gas: 17685) ProxyAdmin_Test:test_delegateResolvedGetProxyAdmin() (gas: 17708)
ProxyAdmin_Test:test_delegateResolvedGetProxyImplementation() (gas: 62016) ProxyAdmin_Test:test_delegateResolvedGetProxyImplementation() (gas: 62016)
ProxyAdmin_Test:test_delegateResolvedUpgrade() (gas: 58422) ProxyAdmin_Test:test_delegateResolvedUpgrade() (gas: 58466)
ProxyAdmin_Test:test_delegateResolvedUpgradeAndCall() (gas: 97948) ProxyAdmin_Test:test_delegateResolvedUpgradeAndCall() (gas: 97926)
ProxyAdmin_Test:test_erc1967ChangeProxyAdmin() (gas: 33863) ProxyAdmin_Test:test_erc1967ChangeProxyAdmin() (gas: 33863)
ProxyAdmin_Test:test_erc1967GetProxyAdmin() (gas: 15672) ProxyAdmin_Test:test_erc1967GetProxyAdmin() (gas: 15672)
ProxyAdmin_Test:test_erc1967GetProxyImplementation() (gas: 52124) ProxyAdmin_Test:test_erc1967GetProxyImplementation() (gas: 52102)
ProxyAdmin_Test:test_erc1967Upgrade() (gas: 50036) ProxyAdmin_Test:test_erc1967Upgrade() (gas: 50036)
ProxyAdmin_Test:test_erc1967UpgradeAndCall() (gas: 79019) ProxyAdmin_Test:test_erc1967UpgradeAndCall() (gas: 79019)
ProxyAdmin_Test:test_isUpgrading() (gas: 19530) ProxyAdmin_Test:test_isUpgrading() (gas: 19575)
ProxyAdmin_Test:test_onlyOwner() (gas: 22715) ProxyAdmin_Test:test_onlyOwner() (gas: 22715)
ProxyAdmin_Test:test_onlyOwnerSetAddressManager() (gas: 10622) ProxyAdmin_Test:test_onlyOwnerSetAddressManager() (gas: 10600)
ProxyAdmin_Test:test_onlyOwnerSetImplementationName() (gas: 11135) ProxyAdmin_Test:test_onlyOwnerSetImplementationName() (gas: 11113)
ProxyAdmin_Test:test_onlyOwnerSetProxyType() (gas: 10751) ProxyAdmin_Test:test_onlyOwnerSetProxyType() (gas: 10751)
ProxyAdmin_Test:test_owner() (gas: 9776) ProxyAdmin_Test:test_owner() (gas: 9818)
ProxyAdmin_Test:test_proxyType() (gas: 20622) ProxyAdmin_Test:test_proxyType() (gas: 20622)
ProxyAdmin_Test:test_setImplementationName() (gas: 38957) ProxyAdmin_Test:test_setImplementationName() (gas: 39002)
RLPReader_Test:testReadBool() (gas: 1109) RLPReader_Test:testReadBool() (gas: 1109)
RLPReader_Test:test_readAddress() (gas: 1347) RLPReader_Test:test_readAddress() (gas: 1347)
RLPReader_Test:test_readAddressSmall() (gas: 614) RLPReader_Test:test_readAddressSmall() (gas: 614)
RLPReader_Test:test_readAddressTooLarge() (gas: 3646) RLPReader_Test:test_readAddressTooLarge() (gas: 3646)
RLPReader_Test:test_readAddressTooShort() (gas: 3625) RLPReader_Test:test_readAddressTooShort() (gas: 3603)
RLPReader_Test:test_readBoolInvalidValue() (gas: 3699) RLPReader_Test:test_readBoolInvalidValue() (gas: 3677)
RLPReader_Test:test_readBoolLargeInput() (gas: 3572) RLPReader_Test:test_readBoolLargeInput() (gas: 3550)
RLPReader_Test:test_readBytes32_revertOnList() (gas: 4020) RLPReader_Test:test_readBytes32_revertOnList() (gas: 3998)
RLPReader_Test:test_readBytes32_revertOnTooLong() (gas: 3610) RLPReader_Test:test_readBytes32_revertOnTooLong() (gas: 3588)
RLPReader_Test:test_readBytes_bytestring00() (gas: 1845) RLPReader_Test:test_readBytes_bytestring00() (gas: 1823)
RLPReader_Test:test_readBytes_bytestring01() (gas: 1846) RLPReader_Test:test_readBytes_bytestring01() (gas: 1846)
RLPReader_Test:test_readBytes_bytestring7f() (gas: 1779) RLPReader_Test:test_readBytes_bytestring7f() (gas: 1844)
RLPReader_Test:test_readBytes_invalidListLength() (gas: 3834) RLPReader_Test:test_readBytes_invalidListLength() (gas: 3812)
RLPReader_Test:test_readBytes_invalidStringLength() (gas: 3790) RLPReader_Test:test_readBytes_invalidStringLength() (gas: 3768)
RLPReader_Test:test_readBytes_revertListItem() (gas: 3944) RLPReader_Test:test_readBytes_revertListItem() (gas: 3922)
RLPReader_Test:test_readList_dictTest1() (gas: 23791) RLPReader_Test:test_readList_dictTest1() (gas: 23791)
RLPReader_Test:test_readList_empty() (gas: 4472) RLPReader_Test:test_readList_empty() (gas: 4472)
RLPReader_Test:test_readList_incorrectLengthInArray() (gas: 4210) RLPReader_Test:test_readList_incorrectLengthInArray() (gas: 4210)
RLPReader_Test:test_readList_int32Overflow() (gas: 3955) RLPReader_Test:test_readList_int32Overflow() (gas: 3955)
RLPReader_Test:test_readList_int32Overflow2() (gas: 3998) RLPReader_Test:test_readList_int32Overflow2() (gas: 4021)
RLPReader_Test:test_readList_invalidShortList() (gas: 3788) RLPReader_Test:test_readList_invalidShortList() (gas: 3855)
RLPReader_Test:test_readList_invalidValue() (gas: 3787) RLPReader_Test:test_readList_invalidValue() (gas: 3787)
RLPReader_Test:test_readList_leadingZerosInLongLengthArray1() (gas: 4215) RLPReader_Test:test_readList_leadingZerosInLongLengthArray1() (gas: 4193)
RLPReader_Test:test_readList_leadingZerosInLongLengthArray2() (gas: 4199) RLPReader_Test:test_readList_leadingZerosInLongLengthArray2() (gas: 4177)
RLPReader_Test:test_readList_leadingZerosInLongLengthList1() (gas: 38582) RLPReader_Test:test_readList_leadingZerosInLongLengthList1() (gas: 38560)
RLPReader_Test:test_readList_listOfLists() (gas: 9641) RLPReader_Test:test_readList_listOfLists() (gas: 9619)
RLPReader_Test:test_readList_listOfLists2() (gas: 12456) RLPReader_Test:test_readList_listOfLists2() (gas: 12479)
RLPReader_Test:test_readList_longList1() (gas: 29013) RLPReader_Test:test_readList_longList1() (gas: 29013)
RLPReader_Test:test_readList_longList2() (gas: 202917) RLPReader_Test:test_readList_longList2() (gas: 202895)
RLPReader_Test:test_readList_longStringLength() (gas: 3787) RLPReader_Test:test_readList_longStringLength() (gas: 3853)
RLPReader_Test:test_readList_multiList() (gas: 11961) RLPReader_Test:test_readList_multiList() (gas: 12025)
RLPReader_Test:test_readList_nonOptimalLongLengthArray1() (gas: 4222) RLPReader_Test:test_readList_nonOptimalLongLengthArray1() (gas: 4200)
RLPReader_Test:test_readList_nonOptimalLongLengthArray2() (gas: 4223) RLPReader_Test:test_readList_nonOptimalLongLengthArray2() (gas: 4223)
RLPReader_Test:test_readList_notLongEnough() (gas: 3863) RLPReader_Test:test_readList_notLongEnough() (gas: 3841)
RLPReader_Test:test_readList_shortListMax1() (gas: 40596) RLPReader_Test:test_readList_shortListMax1() (gas: 40662)
RLPReader_Test:test_readList_stringList() (gas: 16818) RLPReader_Test:test_readList_stringList() (gas: 16796)
RLPReader_Test:test_readString_emptyString() (gas: 1719) RLPReader_Test:test_readString_emptyString() (gas: 1719)
RLPReader_Test:test_readString_longString() (gas: 3098) RLPReader_Test:test_readString_longString() (gas: 3076)
RLPReader_Test:test_readString_longString2() (gas: 18546) RLPReader_Test:test_readString_longString2() (gas: 18524)
RLPReader_Test:test_readString_shortString() (gas: 2302) RLPReader_Test:test_readString_shortString() (gas: 2280)
RLPReader_Test:test_readString_shortString2() (gas: 2775) RLPReader_Test:test_readString_shortString2() (gas: 2775)
RLPReader_Test:test_readUint256_mediumInt1() (gas: 1257) RLPReader_Test:test_readUint256_mediumInt1() (gas: 1235)
RLPReader_Test:test_readUint256_mediumInt2() (gas: 1237) RLPReader_Test:test_readUint256_mediumInt2() (gas: 1237)
RLPReader_Test:test_readUint256_mediumInt3() (gas: 1238) RLPReader_Test:test_readUint256_mediumInt3() (gas: 1238)
RLPReader_Test:test_readUint256_smallInt() (gas: 1106) RLPReader_Test:test_readUint256_smallInt() (gas: 1084)
RLPReader_Test:test_readUint256_smallInt2() (gas: 1151) RLPReader_Test:test_readUint256_smallInt2() (gas: 1151)
RLPReader_Test:test_readUint256_smallInt3() (gas: 1104) RLPReader_Test:test_readUint256_smallInt3() (gas: 1127)
RLPReader_Test:test_readUint256_smallInt4() (gas: 1150) RLPReader_Test:test_readUint256_smallInt4() (gas: 1128)
RLPReader_Test:test_readUint256_zero() (gas: 1258) RLPReader_Test:test_readUint256_zero() (gas: 1258)
RLPWriter_Test:test_writeList_dictTest1() (gas: 37170) RLPWriter_Test:test_writeList_dictTest1() (gas: 37148)
RLPWriter_Test:test_writeList_empty() (gas: 1773) RLPWriter_Test:test_writeList_empty() (gas: 1751)
RLPWriter_Test:test_writeList_listoflists() (gas: 10991) RLPWriter_Test:test_writeList_listoflists() (gas: 10969)
RLPWriter_Test:test_writeList_listoflists2() (gas: 16779) RLPWriter_Test:test_writeList_listoflists2() (gas: 16779)
RLPWriter_Test:test_writeList_longlist1() (gas: 40730) RLPWriter_Test:test_writeList_longlist1() (gas: 40730)
RLPWriter_Test:test_writeList_longlist2() (gas: 283255) RLPWriter_Test:test_writeList_longlist2() (gas: 283278)
RLPWriter_Test:test_writeList_multiList() (gas: 22682) RLPWriter_Test:test_writeList_multiList() (gas: 22660)
RLPWriter_Test:test_writeList_shortListMax1() (gas: 36985) RLPWriter_Test:test_writeList_shortListMax1() (gas: 36985)
RLPWriter_Test:test_writeList_stringList() (gas: 10786) RLPWriter_Test:test_writeList_stringList() (gas: 10786)
RLPWriter_Test:test_writeString_bytestring00() (gas: 978) RLPWriter_Test:test_writeString_bytestring00() (gas: 1022)
RLPWriter_Test:test_writeString_bytestring01() (gas: 1000) RLPWriter_Test:test_writeString_bytestring01() (gas: 978)
RLPWriter_Test:test_writeString_bytestring7f() (gas: 1002) RLPWriter_Test:test_writeString_bytestring7f() (gas: 1002)
RLPWriter_Test:test_writeString_empty() (gas: 1659) RLPWriter_Test:test_writeString_empty() (gas: 1704)
RLPWriter_Test:test_writeString_longstring() (gas: 17135) RLPWriter_Test:test_writeString_longstring() (gas: 17180)
RLPWriter_Test:test_writeString_longstring2() (gas: 261886) RLPWriter_Test:test_writeString_longstring2() (gas: 261864)
RLPWriter_Test:test_writeString_shortstring() (gas: 2544) RLPWriter_Test:test_writeString_shortstring() (gas: 2544)
RLPWriter_Test:test_writeString_shortstring2() (gas: 15563) RLPWriter_Test:test_writeString_shortstring2() (gas: 15563)
RLPWriter_Test:test_writeUint_mediumint() (gas: 8452) RLPWriter_Test:test_writeUint_mediumint() (gas: 8430)
RLPWriter_Test:test_writeUint_mediumint2() (gas: 8780) RLPWriter_Test:test_writeUint_mediumint2() (gas: 8780)
RLPWriter_Test:test_writeUint_mediumint3() (gas: 9189) RLPWriter_Test:test_writeUint_mediumint3() (gas: 9189)
RLPWriter_Test:test_writeUint_smallint() (gas: 7350) RLPWriter_Test:test_writeUint_smallint() (gas: 7350)
RLPWriter_Test:test_writeUint_smallint2() (gas: 7352) RLPWriter_Test:test_writeUint_smallint2() (gas: 7352)
RLPWriter_Test:test_writeUint_smallint3() (gas: 7372) RLPWriter_Test:test_writeUint_smallint3() (gas: 7372)
RLPWriter_Test:test_writeUint_smallint4() (gas: 7373) RLPWriter_Test:test_writeUint_smallint4() (gas: 7351)
RLPWriter_Test:test_writeUint_zero() (gas: 7798) RLPWriter_Test:test_writeUint_zero() (gas: 7798)
ResourceMetering_Test:test_initialResourceParams() (gas: 8986) ResourceMetering_Test:test_initialResourceParams() (gas: 8964)
ResourceMetering_Test:test_updateNoGasDelta() (gas: 2008317) ResourceMetering_Test:test_updateNoGasDelta() (gas: 2008317)
ResourceMetering_Test:test_updateOneEmptyBlock() (gas: 18126) ResourceMetering_Test:test_updateOneEmptyBlock() (gas: 18171)
ResourceMetering_Test:test_updateParamsNoChange() (gas: 13956) ResourceMetering_Test:test_updateParamsNoChange() (gas: 13956)
ResourceMetering_Test:test_updateTenEmptyBlocks() (gas: 20593) ResourceMetering_Test:test_updateTenEmptyBlocks() (gas: 20571)
ResourceMetering_Test:test_updateTwoEmptyBlocks() (gas: 20594) ResourceMetering_Test:test_updateTwoEmptyBlocks() (gas: 20594)
ResourceMetering_Test:test_useMaxSucceeds() (gas: 8017109) ResourceMetering_Test:test_useMaxSucceeds() (gas: 8017087)
ResourceMetering_Test:test_useMoreThanMaxReverts() (gas: 16069) ResourceMetering_Test:test_useMoreThanMaxReverts() (gas: 16047)
Semver_Test:test_behindProxy() (gas: 504930) Semver_Test:test_behindProxy() (gas: 504908)
Semver_Test:test_major() (gas: 5428) Semver_Test:test_major() (gas: 5406)
Semver_Test:test_minor() (gas: 5430) Semver_Test:test_minor() (gas: 5430)
Semver_Test:test_patch() (gas: 5386) Semver_Test:test_patch() (gas: 5364)
SequencerFeeVault_Test:test_constructor() (gas: 7611) SequencerFeeVault_Test:test_constructor() (gas: 7656)
SequencerFeeVault_Test:test_minWithdrawalAmount() (gas: 5429) SequencerFeeVault_Test:test_minWithdrawalAmount() (gas: 5407)
SequencerFeeVault_Test:test_receive() (gas: 17338) SequencerFeeVault_Test:test_receive() (gas: 17338)
SequencerFeeVault_Test:test_revertWithdraw() (gas: 9267) SequencerFeeVault_Test:test_revertWithdraw() (gas: 9332)
SequencerFeeVault_Test:test_withdraw() (gas: 147604) SequencerFeeVault_Test:test_withdraw() (gas: 147582)
...@@ -413,3 +413,9 @@ contract NextImpl is Initializable { ...@@ -413,3 +413,9 @@ contract NextImpl is Initializable {
slot21 = slot21Init; slot21 = slot21Init;
} }
} }
contract Reverter {
fallback() external {
revert();
}
}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
pragma solidity 0.8.10; pragma solidity 0.8.10;
/* Testing utilities */ /* Testing utilities */
import { Messenger_Initializer } from "./CommonTest.t.sol"; import { Messenger_Initializer, Reverter } from "./CommonTest.t.sol";
import { L2OutputOracle_Initializer } from "./L2OutputOracle.t.sol"; import { L2OutputOracle_Initializer } from "./L2OutputOracle.t.sol";
/* Libraries */ /* Libraries */
...@@ -215,4 +215,55 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -215,4 +215,55 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
vm.expectRevert("Pausable: paused"); vm.expectRevert("Pausable: paused");
L1Messenger.relayMessage(0, address(0), address(0), 0, 0, hex""); L1Messenger.relayMessage(0, address(0), address(0), 0, 0, hex"");
} }
// relayMessage: should send a successful call to the target contract after the first message
// fails and ETH gets stuck, but the second message succeeds
function test_L1MessengerRelayMessageFirstStuckSecondSucceeds() external {
address target = address(0xabcd);
address sender = PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER;
uint256 value = 100;
vm.expectCall(target, hex"1111");
bytes32 hash = Hashing.hashCrossDomainMessage(0, sender, target, value, 0, hex"1111");
uint256 senderSlotIndex = 51;
vm.store(address(op), bytes32(senderSlotIndex), bytes32(abi.encode(sender)));
vm.etch(target, address(new Reverter()).code);
vm.deal(address(op), value);
vm.prank(address(op));
L1Messenger.relayMessage{value: value}(
0, // nonce
sender,
target,
value,
0,
hex"1111"
);
assertEq(address(L1Messenger).balance, value);
assertEq(address(target).balance, 0);
assertEq(L1Messenger.successfulMessages(hash), false);
assertEq(L1Messenger.receivedMessages(hash), true);
vm.expectEmit(true, true, true, true);
emit RelayedMessage(hash);
vm.etch(target, address(0).code);
vm.prank(address(sender));
L1Messenger.relayMessage(
0, // nonce
sender,
target,
value,
0,
hex"1111"
);
assertEq(address(L1Messenger).balance, 0);
assertEq(address(target).balance, value);
assertEq(L1Messenger.successfulMessages(hash), true);
assertEq(L1Messenger.receivedMessages(hash), true);
}
} }
//SPDX-License-Identifier: MIT //SPDX-License-Identifier: MIT
pragma solidity 0.8.10; pragma solidity 0.8.10;
import { Messenger_Initializer } from "./CommonTest.t.sol"; import { Messenger_Initializer, Reverter } from "./CommonTest.t.sol";
import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol"; import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol";
import { L2ToL1MessagePasser } from "../L2/L2ToL1MessagePasser.sol"; import { L2ToL1MessagePasser } from "../L2/L2ToL1MessagePasser.sol";
...@@ -164,4 +164,52 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -164,4 +164,52 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer {
vm.expectRevert("Pausable: paused"); vm.expectRevert("Pausable: paused");
L2Messenger.relayMessage(0, address(0), address(0), 0, 0, hex""); L2Messenger.relayMessage(0, address(0), address(0), 0, 0, hex"");
} }
// relayMessage: should send a successful call to the target contract after the first message
// fails and ETH gets stuck, but the second message succeeds
function test_L2MessengerRelayMessageFirstStuckSecondSucceeds() external {
address target = address(0xabcd);
address sender = address(L1Messenger);
address caller = AddressAliasHelper.applyL1ToL2Alias(address(L1Messenger));
uint256 value = 100;
bytes32 hash = Hashing.hashCrossDomainMessage(0, sender, target, value, 0, hex"1111");
vm.etch(target, address(new Reverter()).code);
vm.deal(address(caller), value);
vm.prank(caller);
L2Messenger.relayMessage{value: value}(
0, // nonce
sender,
target,
value,
0,
hex"1111"
);
assertEq(address(L2Messenger).balance, value);
assertEq(address(target).balance, 0);
assertEq(L2Messenger.successfulMessages(hash), false);
assertEq(L2Messenger.receivedMessages(hash), true);
vm.expectEmit(true, true, true, true);
emit RelayedMessage(hash);
vm.etch(target, address(0).code);
vm.prank(address(sender));
L2Messenger.relayMessage(
0, // nonce
sender,
target,
value,
0,
hex"1111"
);
assertEq(address(L2Messenger).balance, 0);
assertEq(address(target).balance, value);
assertEq(L2Messenger.successfulMessages(hash), true);
assertEq(L2Messenger.receivedMessages(hash), true);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment