Commit 762092f2 authored by Maurelian's avatar Maurelian

contracts: Fix OZ-M-04 Disallow reentrant withdrawals

parent 04803ac8
...@@ -33,12 +33,11 @@ L1CrossDomainMessenger_Test:test_L1MessengerSendMessage() (gas: 172148) ...@@ -33,12 +33,11 @@ L1CrossDomainMessenger_Test:test_L1MessengerSendMessage() (gas: 172148)
L1CrossDomainMessenger_Test:test_L1MessengerTwiceSendMessage() (gas: 1254131) L1CrossDomainMessenger_Test:test_L1MessengerTwiceSendMessage() (gas: 1254131)
L1CrossDomainMessenger_Test:test_L1MessengerXDomainSenderReverts() (gas: 10566) L1CrossDomainMessenger_Test:test_L1MessengerXDomainSenderReverts() (gas: 10566)
L1CrossDomainMessenger_Test:test_L1MessengerxDomainMessageSenderResets() (gas: 58535) L1CrossDomainMessenger_Test:test_L1MessengerxDomainMessageSenderResets() (gas: 58535)
L1StandardBridge_Test:test_depositERC20() (gas: 452873) L1StandardBridge_Test:test_depositERC20() (gas: 452837)
L1StandardBridge_Test:test_depositERC20To() (gas: 454650) L1StandardBridge_Test:test_depositERC20To() (gas: 454614)
L1StandardBridge_Test:test_depositETH() (gas: 247054) L1StandardBridge_Test:test_depositETH() (gas: 247054)
L1StandardBridge_Test:test_depositETHTo() (gas: 204938) L1StandardBridge_Test:test_depositETHTo() (gas: 204938)
L1StandardBridge_Test:test_donateETH() (gas: 17545) L1StandardBridge_Test:test_finalizeERC20Withdrawal() (gas: 438752)
L1StandardBridge_Test:test_finalizeERC20Withdrawal() (gas: 438824)
L1StandardBridge_Test:test_finalizeETHWithdrawal() (gas: 48005) L1StandardBridge_Test:test_finalizeETHWithdrawal() (gas: 48005)
L1StandardBridge_Test:test_initialize() (gas: 14885) L1StandardBridge_Test:test_initialize() (gas: 14885)
L1StandardBridge_Test:test_onlyEOADepositERC20() (gas: 12085) L1StandardBridge_Test:test_onlyEOADepositERC20() (gas: 12085)
...@@ -71,14 +70,15 @@ L2OutputOracleTest:test_deleteL2Output() (gas: 66081) ...@@ -71,14 +70,15 @@ L2OutputOracleTest:test_deleteL2Output() (gas: 66081)
L2OutputOracleTest:test_getL2Output() (gas: 76274) L2OutputOracleTest:test_getL2Output() (gas: 76274)
L2OutputOracleTest:test_latestBlockNumber() (gas: 70075) L2OutputOracleTest:test_latestBlockNumber() (gas: 70075)
L2OutputOracleTest:test_nextBlockNumber() (gas: 9279) L2OutputOracleTest:test_nextBlockNumber() (gas: 9279)
L2StandardBridge_Test:test_cannotWithdrawEthWithoutSendingIt() (gas: 21578) L2StandardBridge_Test:test_ERC20BridgeFailed_whenLocalTokenIsBridge() (gas: 133074)
L2StandardBridge_Test:test_finalizeDeposit() (gas: 93165) L2StandardBridge_Test:test_cannotWithdrawEthWithoutSendingIt() (gas: 21611)
L2StandardBridge_Test:test_finalizeDeposit() (gas: 93100)
L2StandardBridge_Test:test_finalizeDeposit_failsToCompleteOutboundTransfer() (gas: 140106) L2StandardBridge_Test:test_finalizeDeposit_failsToCompleteOutboundTransfer() (gas: 140106)
L2StandardBridge_Test:test_initialize() (gas: 14834) L2StandardBridge_Test:test_initialize() (gas: 14856)
L2StandardBridge_Test:test_receive() (gas: 136459) L2StandardBridge_Test:test_receive() (gas: 136392)
L2StandardBridge_Test:test_withdraw() (gas: 352724) L2StandardBridge_Test:test_withdraw() (gas: 352742)
L2StandardBridge_Test:test_withdrawTo() (gas: 353480) L2StandardBridge_Test:test_withdrawTo() (gas: 353463)
L2StandardBridge_Test:test_withdraw_onlyEOA() (gas: 251952) L2StandardBridge_Test:test_withdraw_onlyEOA() (gas: 251970)
L2ToL1MessagePasserTest:test_burn() (gas: 112046) L2ToL1MessagePasserTest:test_burn() (gas: 112046)
L2ToL1MessagePasserTest:test_initiateWithdrawal_fromContract() (gas: 67890) L2ToL1MessagePasserTest:test_initiateWithdrawal_fromContract() (gas: 67890)
L2ToL1MessagePasserTest:test_initiateWithdrawal_fromEOA() (gas: 74851) L2ToL1MessagePasserTest:test_initiateWithdrawal_fromEOA() (gas: 74851)
...@@ -164,4 +164,4 @@ SequencerFeeVault_Test:test_constructor() (gas: 7611) ...@@ -164,4 +164,4 @@ SequencerFeeVault_Test:test_constructor() (gas: 7611)
SequencerFeeVault_Test:test_minWithdrawalAmount() (gas: 5429) SequencerFeeVault_Test:test_minWithdrawalAmount() (gas: 5429)
SequencerFeeVault_Test:test_receive() (gas: 17280) SequencerFeeVault_Test:test_receive() (gas: 17280)
SequencerFeeVault_Test:test_revertWithdraw() (gas: 9266) SequencerFeeVault_Test:test_revertWithdraw() (gas: 9266)
SequencerFeeVault_Test:test_withdraw() (gas: 147300) SequencerFeeVault_Test:test_withdraw() (gas: 147278)
...@@ -165,7 +165,7 @@ contract OptimismPortal is ResourceMetering { ...@@ -165,7 +165,7 @@ contract OptimismPortal is ResourceMetering {
WithdrawalVerifier.OutputRootProof calldata _outputRootProof, WithdrawalVerifier.OutputRootProof calldata _outputRootProof,
bytes calldata _withdrawalProof bytes calldata _withdrawalProof
) external payable { ) external payable {
// Prevent reentrancy. // Prevent nested withdrawals within withdrawals.
require( require(
l2Sender == DEFAULT_L2_SENDER, l2Sender == DEFAULT_L2_SENDER,
"OptimismPortal: can only trigger one withdrawal per transaction" "OptimismPortal: can only trigger one withdrawal per transaction"
......
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