Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
30c02c32
Unverified
Commit
30c02c32
authored
Nov 30, 2022
by
Maurelian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ctb: Fix OptimismPortal test function names
parent
dd3abe26
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
46 additions
and
46 deletions
+46
-46
.gas-snapshot
packages/contracts-bedrock/.gas-snapshot
+29
-29
OptimismPortal.t.sol
...ges/contracts-bedrock/contracts/test/OptimismPortal.t.sol
+17
-17
No files found.
packages/contracts-bedrock/.gas-snapshot
View file @
30c02c32
...
@@ -147,40 +147,40 @@ OptimismMintableTokenFactory_Test:test_bridge() (gas: 7577)
...
@@ -147,40 +147,40 @@ OptimismMintableTokenFactory_Test:test_bridge() (gas: 7577)
OptimismMintableTokenFactory_Test:test_createStandardL2Token() (gas: 1095274)
OptimismMintableTokenFactory_Test:test_createStandardL2Token() (gas: 1095274)
OptimismMintableTokenFactory_Test:test_createStandardL2TokenSameTwice() (gas: 2176691)
OptimismMintableTokenFactory_Test:test_createStandardL2TokenSameTwice() (gas: 2176691)
OptimismMintableTokenFactory_Test:test_createStandardL2TokenShouldRevertIfRemoteIsZero() (gas: 9413)
OptimismMintableTokenFactory_Test:test_createStandardL2TokenShouldRevertIfRemoteIsZero() (gas: 9413)
OptimismPortalUpgradeable_Test:test_initialize_cannotInitImpl_reverts() (gas: 10
813
)
OptimismPortalUpgradeable_Test:test_initialize_cannotInitImpl_reverts() (gas: 10
791
)
OptimismPortalUpgradeable_Test:test_initialize_cannotInitProxy_reverts() (gas: 15
789
)
OptimismPortalUpgradeable_Test:test_initialize_cannotInitProxy_reverts() (gas: 15
833
)
OptimismPortalUpgradeable_Test:test_params_initValuesOnProxy_succe
ss() (gas: 16033
)
OptimismPortalUpgradeable_Test:test_params_initValuesOnProxy_succe
eds() (gas: 16011
)
OptimismPortalUpgradeable_Test:test_upgradeToAndCall_upgrading_succe
ss() (gas: 180435
)
OptimismPortalUpgradeable_Test:test_upgradeToAndCall_upgrading_succe
eds() (gas: 180457
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputRootChanges_reverts() (gas: 1997
06
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputRootChanges_reverts() (gas: 1997
28
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputTimestampIsNotFinalized_reverts() (gas: 2020
03
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_ifOutputTimestampIsNotFinalized_reverts() (gas: 2020
25
)
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: 197092)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onInsufficientGas_reverts() (gas: 197814)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onInsufficientGas_reverts() (gas: 197814)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onRecentWithdrawal_reverts() (gas: 1778
51
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onRecentWithdrawal_reverts() (gas: 1778
06
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReentrancy_reverts() (gas: 236
156
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReentrancy_reverts() (gas: 236
200
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReplay_reverts() (gas: 237
807
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_onReplay_reverts() (gas: 237
764
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_provenWithdrawalHash_succe
ss() (gas: 229466
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_provenWithdrawalHash_succe
eds() (gas: 229467
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_targetFails_fails() (gas: 3321
26
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_targetFails_fails() (gas: 3321
48
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_timestampLessThanL2OracleStart_reverts() (gas: 193
794
)
OptimismPortal_FinalizeWithdrawal_Test:test_finalizeWithdrawalTransaction_timestampLessThanL2OracleStart_reverts() (gas: 193
816
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onInvalidOutputRootProof_reverts() (gas: 83
498
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_onInvalidOutputRootProof_reverts() (gas: 83
542
)
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_oninvalidWithdrawalProof_reverts() (gas: 136758)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProveChangedOutputRoot_succe
ss() (gas: 277056
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProveChangedOutputRoot_succe
eds() (gas: 277079
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProve_reverts() (gas: 189
117
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_replayProve_reverts() (gas: 189
072
)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_validWithdrawalProof_succe
s
s() (gas: 179324)
OptimismPortal_FinalizeWithdrawal_Test:test_proveWithdrawalTransaction_validWithdrawalProof_succe
ed
s() (gas: 179324)
OptimismPortal_Test:test_
OptimismPortalConstructor() (gas: 17276
)
OptimismPortal_Test:test_
constructor_succeeds() (gas: 17277
)
OptimismPortal_Test:test_
OptimismPortalReceiveEth_success() (gas: 127480
)
OptimismPortal_Test:test_
depositTransaction_contractCreation_reverts() (gas: 14267
)
OptimismPortal_Test:test_depositTransaction_
NoValueContract_success() (gas: 76681
)
OptimismPortal_Test:test_depositTransaction_
createWithZeroValueForContract_succeeds() (gas: 76662
)
OptimismPortal_Test:test_depositTransaction_
NoValueEOA_success() (gas: 77153
)
OptimismPortal_Test:test_depositTransaction_
createWithZeroValueForEOA_succeeds() (gas: 77029
)
OptimismPortal_Test:test_depositTransaction_
contractCreation_reverts() (gas: 14245
)
OptimismPortal_Test:test_depositTransaction_
noValueContract_succeeds() (gas: 76681
)
OptimismPortal_Test:test_depositTransaction_
createWithZeroValueForContract_success() (gas: 76707
)
OptimismPortal_Test:test_depositTransaction_
noValueEOA_succeeds() (gas: 77198
)
OptimismPortal_Test:test_depositTransaction_
createWithZeroValueForEOA_success() (gas: 77029
)
OptimismPortal_Test:test_depositTransaction_
withEthValueAndContractContractCreation_succeeds() (gas: 83664
)
OptimismPortal_Test:test_depositTransaction_withEthValueAnd
ContractContractCreation_success() (gas: 83709
)
OptimismPortal_Test:test_depositTransaction_withEthValueAnd
EOAContractCreation_succeeds() (gas: 75862
)
OptimismPortal_Test:test_depositTransaction_withEthValue
AndEOAContractCreation_success() (gas: 75872
)
OptimismPortal_Test:test_depositTransaction_withEthValue
FromContract_succeeds() (gas: 83389
)
OptimismPortal_Test:test_depositTransaction_withEthValueFrom
Contract_success() (gas: 83411
)
OptimismPortal_Test:test_depositTransaction_withEthValueFrom
EOA_succeeds() (gas: 84133
)
OptimismPortal_Test:test_
depositTransaction_withEthValueFromEOA_success() (gas: 84111
)
OptimismPortal_Test:test_
isOutputFinalized_succeeds() (gas: 119474
)
OptimismPortal_Test:test_
isOutputFinalized_success() (gas: 119473
)
OptimismPortal_Test:test_
receive_succeeds() (gas: 127522
)
OptimismPortal_Test:test_simple_isOutputFinalized_succe
ss() (gas: 24209
)
OptimismPortal_Test:test_simple_isOutputFinalized_succe
eds() (gas: 24165
)
Proxy_Test:test_clashingFunctionSignatures() (gas: 101347)
Proxy_Test:test_clashingFunctionSignatures() (gas: 101347)
Proxy_Test:test_implementationKey() (gas: 20887)
Proxy_Test:test_implementationKey() (gas: 20887)
Proxy_Test:test_implementationProxyCallIfNotAdmin() (gas: 29963)
Proxy_Test:test_implementationProxyCallIfNotAdmin() (gas: 29963)
...
...
packages/contracts-bedrock/contracts/test/OptimismPortal.t.sol
View file @
30c02c32
...
@@ -11,13 +11,13 @@ import { Hashing } from "../libraries/Hashing.sol";
...
@@ -11,13 +11,13 @@ import { Hashing } from "../libraries/Hashing.sol";
import { Proxy } from "../universal/Proxy.sol";
import { Proxy } from "../universal/Proxy.sol";
contract OptimismPortal_Test is Portal_Initializer {
contract OptimismPortal_Test is Portal_Initializer {
function test_
OptimismPortalConstructor
() external {
function test_
constructor_succeeds
() external {
assertEq(op.FINALIZATION_PERIOD_SECONDS(), 7 days);
assertEq(op.FINALIZATION_PERIOD_SECONDS(), 7 days);
assertEq(address(op.L2_ORACLE()), address(oracle));
assertEq(address(op.L2_ORACLE()), address(oracle));
assertEq(op.l2Sender(), 0x000000000000000000000000000000000000dEaD);
assertEq(op.l2Sender(), 0x000000000000000000000000000000000000dEaD);
}
}
function test_
OptimismPortalReceiveEth_succes
s() external {
function test_
receive_succeed
s() external {
vm.expectEmit(true, true, false, true);
vm.expectEmit(true, true, false, true);
emitTransactionDeposited(alice, alice, 100, 100, 100_000, false, hex"");
emitTransactionDeposited(alice, alice, 100, 100, 100_000, false, hex"");
...
@@ -38,7 +38,7 @@ contract OptimismPortal_Test is Portal_Initializer {
...
@@ -38,7 +38,7 @@ contract OptimismPortal_Test is Portal_Initializer {
}
}
// Test: depositTransaction should emit the correct log when an EOA deposits a tx with 0 value
// Test: depositTransaction should emit the correct log when an EOA deposits a tx with 0 value
function test_depositTransaction_
NoValueEOA_succes
s() external {
function test_depositTransaction_
noValueEOA_succeed
s() external {
// EOA emulation
// EOA emulation
vm.prank(address(this), address(this));
vm.prank(address(this), address(this));
vm.expectEmit(true, true, false, true);
vm.expectEmit(true, true, false, true);
...
@@ -62,7 +62,7 @@ contract OptimismPortal_Test is Portal_Initializer {
...
@@ -62,7 +62,7 @@ contract OptimismPortal_Test is Portal_Initializer {
}
}
// Test: depositTransaction should emit the correct log when a contract deposits a tx with 0 value
// Test: depositTransaction should emit the correct log when a contract deposits a tx with 0 value
function test_depositTransaction_
NoValueContract_succes
s() external {
function test_depositTransaction_
noValueContract_succeed
s() external {
vm.expectEmit(true, true, false, true);
vm.expectEmit(true, true, false, true);
emitTransactionDeposited(
emitTransactionDeposited(
AddressAliasHelper.applyL1ToL2Alias(address(this)),
AddressAliasHelper.applyL1ToL2Alias(address(this)),
...
@@ -84,7 +84,7 @@ contract OptimismPortal_Test is Portal_Initializer {
...
@@ -84,7 +84,7 @@ contract OptimismPortal_Test is Portal_Initializer {
}
}
// Test: depositTransaction should emit the correct log when an EOA deposits a contract creation with 0 value
// Test: depositTransaction should emit the correct log when an EOA deposits a contract creation with 0 value
function test_depositTransaction_createWithZeroValueForEOA_succe
s
s() external {
function test_depositTransaction_createWithZeroValueForEOA_succe
ed
s() external {
// EOA emulation
// EOA emulation
vm.prank(address(this), address(this));
vm.prank(address(this), address(this));
...
@@ -103,7 +103,7 @@ contract OptimismPortal_Test is Portal_Initializer {
...
@@ -103,7 +103,7 @@ contract OptimismPortal_Test is Portal_Initializer {
}
}
// Test: depositTransaction should emit the correct log when a contract deposits a contract creation with 0 value
// Test: depositTransaction should emit the correct log when a contract deposits a contract creation with 0 value
function test_depositTransaction_createWithZeroValueForContract_succe
s
s() external {
function test_depositTransaction_createWithZeroValueForContract_succe
ed
s() external {
vm.expectEmit(true, true, false, true);
vm.expectEmit(true, true, false, true);
emitTransactionDeposited(
emitTransactionDeposited(
AddressAliasHelper.applyL1ToL2Alias(address(this)),
AddressAliasHelper.applyL1ToL2Alias(address(this)),
...
@@ -119,7 +119,7 @@ contract OptimismPortal_Test is Portal_Initializer {
...
@@ -119,7 +119,7 @@ contract OptimismPortal_Test is Portal_Initializer {
}
}
// Test: depositTransaction should increase its eth balance when an EOA deposits a transaction with ETH
// Test: depositTransaction should increase its eth balance when an EOA deposits a transaction with ETH
function test_depositTransaction_withEthValueFromEOA_succe
s
s() external {
function test_depositTransaction_withEthValueFromEOA_succe
ed
s() external {
// EOA emulation
// EOA emulation
vm.prank(address(this), address(this));
vm.prank(address(this), address(this));
...
@@ -145,7 +145,7 @@ contract OptimismPortal_Test is Portal_Initializer {
...
@@ -145,7 +145,7 @@ contract OptimismPortal_Test is Portal_Initializer {
}
}
// Test: depositTransaction should increase its eth balance when a contract deposits a transaction with ETH
// Test: depositTransaction should increase its eth balance when a contract deposits a transaction with ETH
function test_depositTransaction_withEthValueFromContract_succe
s
s() external {
function test_depositTransaction_withEthValueFromContract_succe
ed
s() external {
vm.expectEmit(true, true, false, true);
vm.expectEmit(true, true, false, true);
emitTransactionDeposited(
emitTransactionDeposited(
AddressAliasHelper.applyL1ToL2Alias(address(this)),
AddressAliasHelper.applyL1ToL2Alias(address(this)),
...
@@ -167,7 +167,7 @@ contract OptimismPortal_Test is Portal_Initializer {
...
@@ -167,7 +167,7 @@ contract OptimismPortal_Test is Portal_Initializer {
}
}
// Test: depositTransaction should increase its eth balance when an EOA deposits a contract creation with ETH
// Test: depositTransaction should increase its eth balance when an EOA deposits a contract creation with ETH
function test_depositTransaction_withEthValueAndEOAContractCreation_succe
s
s() external {
function test_depositTransaction_withEthValueAndEOAContractCreation_succe
ed
s() external {
// EOA emulation
// EOA emulation
vm.prank(address(this), address(this));
vm.prank(address(this), address(this));
...
@@ -193,7 +193,7 @@ contract OptimismPortal_Test is Portal_Initializer {
...
@@ -193,7 +193,7 @@ contract OptimismPortal_Test is Portal_Initializer {
}
}
// Test: depositTransaction should increase its eth balance when a contract deposits a contract creation with ETH
// Test: depositTransaction should increase its eth balance when a contract deposits a contract creation with ETH
function test_depositTransaction_withEthValueAndContractContractCreation_succe
s
s() external {
function test_depositTransaction_withEthValueAndContractContractCreation_succe
ed
s() external {
vm.expectEmit(true, true, false, true);
vm.expectEmit(true, true, false, true);
emitTransactionDeposited(
emitTransactionDeposited(
AddressAliasHelper.applyL1ToL2Alias(address(this)),
AddressAliasHelper.applyL1ToL2Alias(address(this)),
...
@@ -215,7 +215,7 @@ contract OptimismPortal_Test is Portal_Initializer {
...
@@ -215,7 +215,7 @@ contract OptimismPortal_Test is Portal_Initializer {
assertEq(address(op).balance, NON_ZERO_VALUE);
assertEq(address(op).balance, NON_ZERO_VALUE);
}
}
function test_simple_isOutputFinalized_succe
s
s() external {
function test_simple_isOutputFinalized_succe
ed
s() external {
uint256 ts = block.timestamp;
uint256 ts = block.timestamp;
vm.mockCall(
vm.mockCall(
address(op.L2_ORACLE()),
address(op.L2_ORACLE()),
...
@@ -234,7 +234,7 @@ contract OptimismPortal_Test is Portal_Initializer {
...
@@ -234,7 +234,7 @@ contract OptimismPortal_Test is Portal_Initializer {
assertEq(op.isOutputFinalized(0), true);
assertEq(op.isOutputFinalized(0), true);
}
}
function test_isOutputFinalized_succe
s
s() external {
function test_isOutputFinalized_succe
ed
s() external {
uint256 checkpoint = oracle.nextBlockNumber();
uint256 checkpoint = oracle.nextBlockNumber();
uint256 nextOutputIndex = oracle.nextOutputIndex();
uint256 nextOutputIndex = oracle.nextOutputIndex();
vm.roll(checkpoint);
vm.roll(checkpoint);
...
@@ -397,7 +397,7 @@ contract OptimismPortal_FinalizeWithdrawal_Test is Portal_Initializer {
...
@@ -397,7 +397,7 @@ contract OptimismPortal_FinalizeWithdrawal_Test is Portal_Initializer {
// Test: proveWithdrawalTransaction succeeds if the passed transaction's withdrawalHash has
// Test: proveWithdrawalTransaction succeeds if the passed transaction's withdrawalHash has
// already been proven AND the output root has changed AND the l2BlockNumber stays the same.
// already been proven AND the output root has changed AND the l2BlockNumber stays the same.
function test_proveWithdrawalTransaction_replayProveChangedOutputRoot_succe
s
s() external {
function test_proveWithdrawalTransaction_replayProveChangedOutputRoot_succe
ed
s() external {
vm.expectEmit(true, true, true, true);
vm.expectEmit(true, true, true, true);
emit WithdrawalProven(_withdrawalHash, alice, bob);
emit WithdrawalProven(_withdrawalHash, alice, bob);
op.proveWithdrawalTransaction(
op.proveWithdrawalTransaction(
...
@@ -440,7 +440,7 @@ contract OptimismPortal_FinalizeWithdrawal_Test is Portal_Initializer {
...
@@ -440,7 +440,7 @@ contract OptimismPortal_FinalizeWithdrawal_Test is Portal_Initializer {
}
}
// Test: proveWithdrawalTransaction succeeds and emits the WithdrawalProven event.
// Test: proveWithdrawalTransaction succeeds and emits the WithdrawalProven event.
function test_proveWithdrawalTransaction_validWithdrawalProof_succe
s
s() external {
function test_proveWithdrawalTransaction_validWithdrawalProof_succe
ed
s() external {
vm.expectEmit(true, true, true, true);
vm.expectEmit(true, true, true, true);
emit WithdrawalProven(_withdrawalHash, alice, bob);
emit WithdrawalProven(_withdrawalHash, alice, bob);
op.proveWithdrawalTransaction(
op.proveWithdrawalTransaction(
...
@@ -452,7 +452,7 @@ contract OptimismPortal_FinalizeWithdrawal_Test is Portal_Initializer {
...
@@ -452,7 +452,7 @@ contract OptimismPortal_FinalizeWithdrawal_Test is Portal_Initializer {
}
}
// Test: finalizeWithdrawalTransaction succeeds and emits the WithdrawalFinalized event.
// Test: finalizeWithdrawalTransaction succeeds and emits the WithdrawalFinalized event.
function test_finalizeWithdrawalTransaction_provenWithdrawalHash_succe
s
s() external {
function test_finalizeWithdrawalTransaction_provenWithdrawalHash_succe
ed
s() external {
uint256 bobBalanceBefore = address(bob).balance;
uint256 bobBalanceBefore = address(bob).balance;
vm.expectEmit(true, true, true, true);
vm.expectEmit(true, true, true, true);
...
@@ -878,7 +878,7 @@ contract OptimismPortalUpgradeable_Test is Portal_Initializer {
...
@@ -878,7 +878,7 @@ contract OptimismPortalUpgradeable_Test is Portal_Initializer {
proxy = Proxy(payable(address(op)));
proxy = Proxy(payable(address(op)));
}
}
function test_params_initValuesOnProxy_succe
s
s() external {
function test_params_initValuesOnProxy_succe
ed
s() external {
(uint128 prevBaseFee, uint64 prevBoughtGas, uint64 prevBlockNum) = OptimismPortal(
(uint128 prevBaseFee, uint64 prevBoughtGas, uint64 prevBlockNum) = OptimismPortal(
payable(address(proxy))
payable(address(proxy))
).params();
).params();
...
@@ -897,7 +897,7 @@ contract OptimismPortalUpgradeable_Test is Portal_Initializer {
...
@@ -897,7 +897,7 @@ contract OptimismPortalUpgradeable_Test is Portal_Initializer {
OptimismPortal(opImpl).initialize();
OptimismPortal(opImpl).initialize();
}
}
function test_upgradeToAndCall_upgrading_succe
s
s() external {
function test_upgradeToAndCall_upgrading_succe
ed
s() external {
// Check an unused slot before upgrading.
// Check an unused slot before upgrading.
bytes32 slot21Before = vm.load(address(op), bytes32(uint256(21)));
bytes32 slot21Before = vm.load(address(op), bytes32(uint256(21)));
assertEq(bytes32(0), slot21Before);
assertEq(bytes32(0), slot21Before);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment