Commit 7baf49f1 authored by Maurelian's avatar Maurelian Committed by GitHub

ctb: Pass args in xdm and bridge as calldata (#3038)

This saves about 200 gas
parent 1a22e822
GasBenchMark_L1CrossDomainMessenger:test_L1MessengerSendMessage_benchmark_0() (gas: 262334) GasBenchMark_L1CrossDomainMessenger:test_L1MessengerSendMessage_benchmark_0() (gas: 262131)
GasBenchMark_L1CrossDomainMessenger:test_L1MessengerSendMessage_benchmark_1() (gas: 75318) GasBenchMark_L1CrossDomainMessenger:test_L1MessengerSendMessage_benchmark_1() (gas: 75115)
GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_0() (gas: 353380) GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_0() (gas: 353126)
GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_1() (gas: 116384) GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_1() (gas: 116130)
GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_0() (gas: 353402) GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_0() (gas: 353148)
GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_1() (gas: 116359) GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_1() (gas: 116105)
GasBenchMark_L1StandardBridge_Finalize:test_finalizeETHWithdrawal_benchmark() (gas: 45413) 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)
...@@ -45,16 +45,16 @@ L1CrossDomainMessenger_Test:test_L1MessengerRelayMessageSucceeds() (gas: 77762) ...@@ -45,16 +45,16 @@ L1CrossDomainMessenger_Test:test_L1MessengerRelayMessageSucceeds() (gas: 77762)
L1CrossDomainMessenger_Test:test_L1MessengerRelayMessageToSystemContract() (gas: 67873) L1CrossDomainMessenger_Test:test_L1MessengerRelayMessageToSystemContract() (gas: 67873)
L1CrossDomainMessenger_Test:test_L1MessengerRelayShouldRevertIfPaused() (gas: 60471) L1CrossDomainMessenger_Test:test_L1MessengerRelayShouldRevertIfPaused() (gas: 60471)
L1CrossDomainMessenger_Test:test_L1MessengerReplayMessageWithValue() (gas: 38127) L1CrossDomainMessenger_Test:test_L1MessengerReplayMessageWithValue() (gas: 38127)
L1CrossDomainMessenger_Test:test_L1MessengerSendMessage() (gas: 297745) L1CrossDomainMessenger_Test:test_L1MessengerSendMessage() (gas: 297369)
L1CrossDomainMessenger_Test:test_L1MessengerTwiceSendMessage() (gas: 1490048) L1CrossDomainMessenger_Test:test_L1MessengerTwiceSendMessage() (gas: 1489716)
L1CrossDomainMessenger_Test:test_L1MessengerUnpause() (gas: 40908) L1CrossDomainMessenger_Test:test_L1MessengerUnpause() (gas: 40908)
L1CrossDomainMessenger_Test:test_L1MessengerXDomainSenderReverts() (gas: 24291) L1CrossDomainMessenger_Test:test_L1MessengerXDomainSenderReverts() (gas: 24291)
L1CrossDomainMessenger_Test:test_L1MessengerxDomainMessageSenderResets() (gas: 86269) L1CrossDomainMessenger_Test:test_L1MessengerxDomainMessageSenderResets() (gas: 86269)
L1StandardBridge_Test:test_depositERC20() (gas: 578911) L1StandardBridge_Test:test_depositERC20() (gas: 578701)
L1StandardBridge_Test:test_depositERC20To() (gas: 581092) L1StandardBridge_Test:test_depositERC20To() (gas: 580882)
L1StandardBridge_Test:test_depositETH() (gas: 372953) L1StandardBridge_Test:test_depositETH() (gas: 372623)
L1StandardBridge_Test:test_depositETHTo() (gas: 330097) L1StandardBridge_Test:test_depositETHTo() (gas: 329767)
L1StandardBridge_Test:test_finalizeBridgeERC20FailSendBack() (gas: 681356) L1StandardBridge_Test:test_finalizeBridgeERC20FailSendBack() (gas: 681188)
L1StandardBridge_Test:test_finalizeERC20Withdrawal() (gas: 490817) L1StandardBridge_Test:test_finalizeERC20Withdrawal() (gas: 490817)
L1StandardBridge_Test:test_finalizeETHWithdrawal() (gas: 64453) L1StandardBridge_Test:test_finalizeETHWithdrawal() (gas: 64453)
L1StandardBridge_Test:test_initialize() (gas: 26401) L1StandardBridge_Test:test_initialize() (gas: 26401)
...@@ -62,7 +62,7 @@ L1StandardBridge_Test:test_onlyEOADepositERC20() (gas: 22377) ...@@ -62,7 +62,7 @@ L1StandardBridge_Test:test_onlyEOADepositERC20() (gas: 22377)
L1StandardBridge_Test:test_onlyEOADepositETH() (gas: 40918) L1StandardBridge_Test:test_onlyEOADepositETH() (gas: 40918)
L1StandardBridge_Test:test_onlyL2BridgeFinalizeERC20Withdrawal() (gas: 36330) L1StandardBridge_Test:test_onlyL2BridgeFinalizeERC20Withdrawal() (gas: 36330)
L1StandardBridge_Test:test_onlyPortalFinalizeERC20Withdrawal() (gas: 35614) L1StandardBridge_Test:test_onlyPortalFinalizeERC20Withdrawal() (gas: 35614)
L1StandardBridge_Test:test_receive() (gas: 519538) L1StandardBridge_Test:test_receive() (gas: 519340)
L2CrossDomainMessenger_Test:testCannot_L2MessengerPause() (gas: 10823) L2CrossDomainMessenger_Test:testCannot_L2MessengerPause() (gas: 10823)
L2CrossDomainMessenger_Test:test_L1MessengerRelayMessageRevertsOnReentrancy() (gas: 171968) L2CrossDomainMessenger_Test:test_L1MessengerRelayMessageRevertsOnReentrancy() (gas: 171968)
L2CrossDomainMessenger_Test:test_L2MessengerMessageVersion() (gas: 8455) L2CrossDomainMessenger_Test:test_L2MessengerMessageVersion() (gas: 8455)
...@@ -71,8 +71,8 @@ L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageFirstStuckSecondSucceeds ...@@ -71,8 +71,8 @@ L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageFirstStuckSecondSucceeds
L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageSucceeds() (gas: 57311) L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageSucceeds() (gas: 57311)
L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageToSystemContract() (gas: 36151) L2CrossDomainMessenger_Test:test_L2MessengerRelayMessageToSystemContract() (gas: 36151)
L2CrossDomainMessenger_Test:test_L2MessengerRelayShouldRevertIfPaused() (gas: 41578) L2CrossDomainMessenger_Test:test_L2MessengerRelayShouldRevertIfPaused() (gas: 41578)
L2CrossDomainMessenger_Test:test_L2MessengerSendMessage() (gas: 120536) L2CrossDomainMessenger_Test:test_L2MessengerSendMessage() (gas: 120160)
L2CrossDomainMessenger_Test:test_L2MessengerTwiceSendMessage() (gas: 133720) L2CrossDomainMessenger_Test:test_L2MessengerTwiceSendMessage() (gas: 133388)
L2CrossDomainMessenger_Test:test_L2MessengerXDomainSenderReverts() (gas: 10590) L2CrossDomainMessenger_Test:test_L2MessengerXDomainSenderReverts() (gas: 10590)
L2CrossDomainMessenger_Test:test_L2MessengerxDomainMessageSenderResets() (gas: 54798) L2CrossDomainMessenger_Test:test_L2MessengerxDomainMessageSenderResets() (gas: 54798)
L2OutputOracleTest:testCannot_ProposeWithUnmatchedBlockhash() (gas: 26786) L2OutputOracleTest:testCannot_ProposeWithUnmatchedBlockhash() (gas: 26786)
...@@ -98,15 +98,15 @@ L2OutputOracleUpgradeable_Test:test_cannotInitImpl() (gas: 19451) ...@@ -98,15 +98,15 @@ L2OutputOracleUpgradeable_Test:test_cannotInitImpl() (gas: 19451)
L2OutputOracleUpgradeable_Test:test_cannotInitProxy() (gas: 24450) 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: 133477) L2StandardBridge_Test:test_ERC20BridgeFailed_whenLocalTokenIsBridge() (gas: 133268)
L2StandardBridge_Test:test_cannotWithdrawEthWithoutSendingIt() (gas: 21689) L2StandardBridge_Test:test_cannotWithdrawEthWithoutSendingIt() (gas: 21689)
L2StandardBridge_Test:test_finalizeBridgeERC20FailSendBack() (gas: 499057) L2StandardBridge_Test:test_finalizeBridgeERC20FailSendBack() (gas: 498890)
L2StandardBridge_Test:test_finalizeDeposit() (gas: 93203) L2StandardBridge_Test:test_finalizeDeposit() (gas: 93203)
L2StandardBridge_Test:test_finalizeDeposit_failsToCompleteOutboundTransfer() (gas: 140492) L2StandardBridge_Test:test_finalizeDeposit_failsToCompleteOutboundTransfer() (gas: 140283)
L2StandardBridge_Test:test_initialize() (gas: 14802) L2StandardBridge_Test:test_initialize() (gas: 14802)
L2StandardBridge_Test:test_receive() (gas: 136864) L2StandardBridge_Test:test_receive() (gas: 136667)
L2StandardBridge_Test:test_withdraw() (gas: 353022) L2StandardBridge_Test:test_withdraw() (gas: 352855)
L2StandardBridge_Test:test_withdrawTo() (gas: 353706) L2StandardBridge_Test:test_withdrawTo() (gas: 353539)
L2StandardBridge_Test:test_withdraw_onlyEOA() (gas: 252032) L2StandardBridge_Test:test_withdraw_onlyEOA() (gas: 252032)
L2ToL1MessagePasserTest:test_burn() (gas: 112037) L2ToL1MessagePasserTest:test_burn() (gas: 112037)
L2ToL1MessagePasserTest:test_initiateWithdrawal_fromContract() (gas: 67892) L2ToL1MessagePasserTest:test_initiateWithdrawal_fromContract() (gas: 67892)
...@@ -276,4 +276,4 @@ SequencerFeeVault_Test:test_constructor() (gas: 7656) ...@@ -276,4 +276,4 @@ SequencerFeeVault_Test:test_constructor() (gas: 7656)
SequencerFeeVault_Test:test_minWithdrawalAmount() (gas: 5407) SequencerFeeVault_Test:test_minWithdrawalAmount() (gas: 5407)
SequencerFeeVault_Test:test_receive() (gas: 17338) SequencerFeeVault_Test:test_receive() (gas: 17338)
SequencerFeeVault_Test:test_revertWithdraw() (gas: 9332) SequencerFeeVault_Test:test_revertWithdraw() (gas: 9332)
SequencerFeeVault_Test:test_withdraw() (gas: 147588) SequencerFeeVault_Test:test_withdraw() (gas: 147391)
...@@ -264,7 +264,7 @@ contract L1StandardBridge is StandardBridge, Semver { ...@@ -264,7 +264,7 @@ contract L1StandardBridge is StandardBridge, Semver {
address _from, address _from,
address _to, address _to,
uint32 _minGasLimit, uint32 _minGasLimit,
bytes memory _extraData bytes calldata _extraData
) internal { ) internal {
emit ETHDepositInitiated(_from, _to, msg.value, _extraData); emit ETHDepositInitiated(_from, _to, msg.value, _extraData);
_initiateBridgeETH(_from, _to, msg.value, _minGasLimit, _extraData); _initiateBridgeETH(_from, _to, msg.value, _minGasLimit, _extraData);
......
...@@ -199,7 +199,7 @@ abstract contract CrossDomainMessenger is ...@@ -199,7 +199,7 @@ abstract contract CrossDomainMessenger is
* *
* @return Amount of gas required to guarantee message receipt. * @return Amount of gas required to guarantee message receipt.
*/ */
function baseGas(bytes memory _message, uint32 _minGasLimit) public pure returns (uint32) { function baseGas(bytes calldata _message, uint32 _minGasLimit) public pure returns (uint32) {
return return
// Dynamic overhead // Dynamic overhead
((_minGasLimit * MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR) / ((_minGasLimit * MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR) /
......
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