Commit ebf57eda authored by mergify[bot]'s avatar mergify[bot] Committed by GitHub

Merge pull request #4239 from ethereum-optimism/sc/ctb-mini-trie-refactor

feat(ctb): mini trie refactor for legibility
parents 329c4df2 4d13f0af
---
'@eth-optimism/contracts-bedrock': minor
---
Refactors the MerkleTrie get function to throw explicitly instead of returning an existence boolean
This diff is collapsed.
This diff is collapsed.
...@@ -132,6 +132,27 @@ LegacyERC20ETH_Test:test_mint_doesNotExist_reverts() (gas: 10649) ...@@ -132,6 +132,27 @@ LegacyERC20ETH_Test:test_mint_doesNotExist_reverts() (gas: 10649)
LegacyERC20ETH_Test:test_transferFrom_doesNotExist_reverts() (gas: 12887) LegacyERC20ETH_Test:test_transferFrom_doesNotExist_reverts() (gas: 12887)
LegacyERC20ETH_Test:test_transfer_doesNotExist_reverts() (gas: 10733) LegacyERC20ETH_Test:test_transfer_doesNotExist_reverts() (gas: 10733)
LegacyMessagePasser_Test:test_passMessageToL1_succeeds() (gas: 34518) LegacyMessagePasser_Test:test_passMessageToL1_succeeds() (gas: 34518)
MerkleTrie_Test:test_get_reverts_corruptedProof() (gas: 5686)
MerkleTrie_Test:test_get_reverts_extraProofElements() (gas: 60560)
MerkleTrie_Test:test_get_reverts_invalidDataRemainder() (gas: 35827)
MerkleTrie_Test:test_get_reverts_invalidInternalNodeHash() (gas: 50763)
MerkleTrie_Test:test_get_reverts_nonexistentKey1() (gas: 59624)
MerkleTrie_Test:test_get_reverts_nonexistentKey2() (gas: 23359)
MerkleTrie_Test:test_get_reverts_smallerPathThanKey1() (gas: 53476)
MerkleTrie_Test:test_get_reverts_smallerPathThanKey2() (gas: 54913)
MerkleTrie_Test:test_get_reverts_wrongKeyProof() (gas: 53844)
MerkleTrie_Test:test_get_reverts_zeroBranchValueLength() (gas: 43222)
MerkleTrie_Test:test_get_reverts_zeroLengthKey() (gas: 15886)
MerkleTrie_Test:test_get_validProofSucceeds1() (gas: 61619)
MerkleTrie_Test:test_get_validProofSucceeds10() (gas: 50546)
MerkleTrie_Test:test_get_validProofSucceeds2() (gas: 71531)
MerkleTrie_Test:test_get_validProofSucceeds3() (gas: 32779)
MerkleTrie_Test:test_get_validProofSucceeds4() (gas: 23553)
MerkleTrie_Test:test_get_validProofSucceeds5() (gas: 84215)
MerkleTrie_Test:test_get_validProofSucceeds6() (gas: 72991)
MerkleTrie_Test:test_get_validProofSucceeds7() (gas: 79670)
MerkleTrie_Test:test_get_validProofSucceeds8() (gas: 50546)
MerkleTrie_Test:test_get_validProofSucceeds9() (gas: 50501)
OptimismMintableERC20_Test:test_bridge_succeeds() (gas: 7643) OptimismMintableERC20_Test:test_bridge_succeeds() (gas: 7643)
OptimismMintableERC20_Test:test_burn_notBridge_reverts() (gas: 11165) OptimismMintableERC20_Test:test_burn_notBridge_reverts() (gas: 11165)
OptimismMintableERC20_Test:test_burn_succeeds() (gas: 51013) OptimismMintableERC20_Test:test_burn_succeeds() (gas: 51013)
...@@ -150,23 +171,23 @@ OptimismPortalUpgradeable_Test:test_initialize_cannotInitImpl_reverts() (gas: 10 ...@@ -150,23 +171,23 @@ OptimismPortalUpgradeable_Test:test_initialize_cannotInitImpl_reverts() (gas: 10
OptimismPortalUpgradeable_Test:test_initialize_cannotInitProxy_reverts() (gas: 15833) OptimismPortalUpgradeable_Test:test_initialize_cannotInitProxy_reverts() (gas: 15833)
OptimismPortalUpgradeable_Test:test_params_initValuesOnProxy_succeeds() (gas: 16011) OptimismPortalUpgradeable_Test:test_params_initValuesOnProxy_succeeds() (gas: 16011)
OptimismPortalUpgradeable_Test:test_upgradeToAndCall_upgrading_succeeds() (gas: 180457) OptimismPortalUpgradeable_Test:test_upgradeToAndCall_upgrading_succeeds() (gas: 180457)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputRootChanges_reverts() (gas: 199728) OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputRootChanges_reverts() (gas: 198791)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputTimestampIsNotFinalized_reverts() (gas: 202025) OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputTimestampIsNotFinalized_reverts() (gas: 201110)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifWithdrawalNotProven_reverts() (gas: 39656) OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifWithdrawalNotProven_reverts() (gas: 39656)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifWithdrawalProofNotOldEnough_reverts() (gas: 197092) OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifWithdrawalProofNotOldEnough_reverts() (gas: 196155)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onInsufficientGas_reverts() (gas: 197814) OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onInsufficientGas_reverts() (gas: 196877)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onRecentWithdrawal_reverts() (gas: 177806) OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onRecentWithdrawal_reverts() (gas: 176869)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReentrancy_reverts() (gas: 236200) OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReentrancy_reverts() (gas: 235239)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReplay_reverts() (gas: 237764) OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReplay_reverts() (gas: 236849)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_provenWithdrawalHash_succeeds() (gas: 229467) OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_provenWithdrawalHash_succeeds() (gas: 228530)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_targetFails_fails() (gas: 332148) OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_targetFails_fails() (gas: 331166)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_timestampLessThanL2OracleStart_reverts() (gas: 193816) OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_timestampLessThanL2OracleStart_reverts() (gas: 192879)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onInvalidOutputRootProof_reverts() (gas: 83542) OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onInvalidOutputRootProof_reverts() (gas: 83498)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onInvalidWithdrawalProof_reverts() (gas: 135228)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onSelfCall_reverts() (gas: 50732) OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onSelfCall_reverts() (gas: 50732)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_oninvalidWithdrawalProof_reverts() (gas: 136758) OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProveChangedOutputRoot_succeeds() (gas: 275227)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProveChangedOutputRoot_succeeds() (gas: 277079) OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProve_reverts() (gas: 188157)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProve_reverts() (gas: 189072) OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_validWithdrawalProof_succeeds() (gas: 178344)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_validWithdrawalProof_succeeds() (gas: 179324)
OptimismPortal_Test:test_constructor_succeeds() (gas: 17277) OptimismPortal_Test:test_constructor_succeeds() (gas: 17277)
OptimismPortal_Test:test_depositTransaction_contractCreation_reverts() (gas: 14267) OptimismPortal_Test:test_depositTransaction_contractCreation_reverts() (gas: 14267)
OptimismPortal_Test:test_depositTransaction_createWithZeroValueForContract_succeeds() (gas: 76662) OptimismPortal_Test:test_depositTransaction_createWithZeroValueForContract_succeeds() (gas: 76662)
......
...@@ -40,14 +40,13 @@ library SecureMerkleTrie { ...@@ -40,14 +40,13 @@ library SecureMerkleTrie {
* @param _proof Merkle trie inclusion proof for the key. * @param _proof Merkle trie inclusion proof for the key.
* @param _root Known root of the Merkle trie. * @param _root Known root of the Merkle trie.
* *
* @return Whether or not the key exists.
* @return Value of the key if it exists. * @return Value of the key if it exists.
*/ */
function get( function get(
bytes memory _key, bytes memory _key,
bytes[] memory _proof, bytes[] memory _proof,
bytes32 _root bytes32 _root
) internal pure returns (bool, bytes memory) { ) internal pure returns (bytes memory) {
bytes memory key = _getSecureKey(_key); bytes memory key = _getSecureKey(_key);
return MerkleTrie.get(key, _proof, _root); return MerkleTrie.get(key, _proof, _root);
} }
......
This diff is collapsed.
...@@ -362,10 +362,10 @@ contract OptimismPortal_FinalizeWithdrawal_Test is Portal_Initializer { ...@@ -362,10 +362,10 @@ contract OptimismPortal_FinalizeWithdrawal_Test is Portal_Initializer {
// Test: proveWithdrawalTransaction reverts if the proof is invalid due to non-existence of // Test: proveWithdrawalTransaction reverts if the proof is invalid due to non-existence of
// the withdrawal. // the withdrawal.
function test_proveWithdrawalTransaction_oninvalidWithdrawalProof_reverts() external { function test_proveWithdrawalTransaction_onInvalidWithdrawalProof_reverts() external {
// modify the default test values to invalidate the proof. // modify the default test values to invalidate the proof.
_defaultTx.data = hex"abcd"; _defaultTx.data = hex"abcd";
vm.expectRevert("OptimismPortal: invalid withdrawal inclusion proof"); vm.expectRevert("MerkleTrie: path remainder must share all nibbles with key");
op.proveWithdrawalTransaction( op.proveWithdrawalTransaction(
_defaultTx, _defaultTx,
_proposedOutputIndex, _proposedOutputIndex,
......
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