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
b080a7ba
Commit
b080a7ba
authored
Jun 29, 2023
by
Mark Tyneway
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
contracts-bedrock: import multicall3
parent
fa54967b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
73 additions
and
2 deletions
+73
-2
.gas-snapshot
packages/contracts-bedrock/.gas-snapshot
+66
-0
Optimist.t.sol
packages/contracts-bedrock/contracts/test/Optimist.t.sol
+7
-2
No files found.
packages/contracts-bedrock/.gas-snapshot
View file @
b080a7ba
AdminFaucetAuthModuleTest:test_adminProof_verify_returnsTrue() (gas: 57577)
AdminFaucetAuthModuleTest:test_nonAdminProof_verify_returnsFalse() (gas: 59125)
AdminFaucetAuthModuleTest:test_proofWithWrongId_verify_returnsFalse() (gas: 60662)
AssetReceiverTest:testFail_withdrawERC20() (gas: 196806)
AssetReceiverTest:testFail_withdrawERC20() (gas: 196806)
AssetReceiverTest:testFail_withdrawERC20withAmount() (gas: 196820)
AssetReceiverTest:testFail_withdrawERC20withAmount() (gas: 196820)
AssetReceiverTest:testFail_withdrawERC721() (gas: 55506)
AssetReceiverTest:testFail_withdrawERC721() (gas: 55506)
...
@@ -10,6 +13,9 @@ AssetReceiverTest:test_withdrawERC20withAmount() (gas: 182514)
...
@@ -10,6 +13,9 @@ AssetReceiverTest:test_withdrawERC20withAmount() (gas: 182514)
AssetReceiverTest:test_withdrawERC721() (gas: 50773)
AssetReceiverTest:test_withdrawERC721() (gas: 50773)
AssetReceiverTest:test_withdrawETH() (gas: 28300)
AssetReceiverTest:test_withdrawETH() (gas: 28300)
AssetReceiverTest:test_withdrawETHwithAmount() (gas: 28263)
AssetReceiverTest:test_withdrawETHwithAmount() (gas: 28263)
AttestationStationTest:test_attest_bulk() (gas: 703684)
AttestationStationTest:test_attest_individual() (gas: 632086)
AttestationStationTest:test_attest_single() (gas: 651370)
Bytes_slice_Test:test_slice_acrossMultipleWords_works() (gas: 9413)
Bytes_slice_Test:test_slice_acrossMultipleWords_works() (gas: 9413)
Bytes_slice_Test:test_slice_acrossWords_works() (gas: 1430)
Bytes_slice_Test:test_slice_acrossWords_works() (gas: 1430)
Bytes_slice_Test:test_slice_fromNonZeroIdx_works() (gas: 17240)
Bytes_slice_Test:test_slice_fromNonZeroIdx_works() (gas: 17240)
...
@@ -64,6 +70,19 @@ Drippie_Test:test_status_unauthorized_fails() (gas: 167366)
...
@@ -64,6 +70,19 @@ Drippie_Test:test_status_unauthorized_fails() (gas: 167366)
Drippie_Test:test_trigger_one_function() (gas: 338111)
Drippie_Test:test_trigger_one_function() (gas: 338111)
Drippie_Test:test_trigger_two_functions() (gas: 491838)
Drippie_Test:test_trigger_two_functions() (gas: 491838)
Drippie_Test:test_twice_in_one_interval_fails() (gas: 303746)
Drippie_Test:test_twice_in_one_interval_fails() (gas: 303746)
FaucetTest:test_authAdmin_drip_succeeds() (gas: 366068)
FaucetTest:test_drip_afterTimeout_succeeds() (gas: 447899)
FaucetTest:test_drip_beforeTimeout_reverts() (gas: 378888)
FaucetTest:test_drip_disabledModule_reverts() (gas: 352372)
FaucetTest:test_drip_emitsEvent() (gas: 369165)
FaucetTest:test_drip_github_sendsCorrectAmount() (gas: 366589)
FaucetTest:test_drip_optimistNft_sendsCorrectAmount() (gas: 366578)
FaucetTest:test_drip_preventsReplayAttacks() (gas: 369250)
FaucetTest:test_initialize() (gas: 7625)
FaucetTest:test_nonAdmin_drip_fails() (gas: 262520)
FaucetTest:test_receive_succeeds() (gas: 17401)
FaucetTest:test_withdraw_nonAdmin_fails() (gas: 13123)
FaucetTest:test_withdraw_succeeds() (gas: 78359)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot1:test_resolvesCorrectly_succeeds() (gas: 491839)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot1:test_resolvesCorrectly_succeeds() (gas: 491839)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot2:test_resolvesCorrectly_succeeds() (gas: 495751)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot2:test_resolvesCorrectly_succeeds() (gas: 495751)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot3:test_resolvesCorrectly_succeeds() (gas: 495049)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot3:test_resolvesCorrectly_succeeds() (gas: 495049)
...
@@ -363,6 +382,53 @@ OptimismPortal_Test:test_receive_succeeds() (gas: 127513)
...
@@ -363,6 +382,53 @@ OptimismPortal_Test:test_receive_succeeds() (gas: 127513)
OptimismPortal_Test:test_simple_isOutputFinalized_succeeds() (gas: 32971)
OptimismPortal_Test:test_simple_isOutputFinalized_succeeds() (gas: 32971)
OptimismPortal_Test:test_unpause_onlyGuardian_reverts() (gas: 46098)
OptimismPortal_Test:test_unpause_onlyGuardian_reverts() (gas: 46098)
OptimismPortal_Test:test_unpause_succeeds() (gas: 31756)
OptimismPortal_Test:test_unpause_succeeds() (gas: 31756)
OptimistAllowlistTest:test_constructor_succeeds() (gas: 20476)
OptimistAllowlistTest:test_isAllowedToMint_fromAllowlistAttestorWithFalsyValue_fails() (gas: 49842)
OptimistAllowlistTest:test_isAllowedToMint_fromAllowlistAttestor_succeeds() (gas: 49304)
OptimistAllowlistTest:test_isAllowedToMint_fromCoinbaseQuestAttestorWithFalsyValue_fails() (gas: 49544)
OptimistAllowlistTest:test_isAllowedToMint_fromCoinbaseQuestAttestor_succeeds() (gas: 53534)
OptimistAllowlistTest:test_isAllowedToMint_fromInvite_succeeds() (gas: 235508)
OptimistAllowlistTest:test_isAllowedToMint_fromWrongAllowlistAttestor_fails() (gas: 58311)
OptimistAllowlistTest:test_isAllowedToMint_fromWrongCoinbaseQuestAttestor_fails() (gas: 58268)
OptimistAllowlistTest:test_isAllowedToMint_fromWrongOptimistInviter_fails() (gas: 57601)
OptimistAllowlistTest:test_isAllowedToMint_withMultipleAttestations_succeeds() (gas: 324909)
OptimistAllowlistTest:test_isAllowedToMint_withoutAnyAttestations_fails() (gas: 23210)
OptimistInviterTest:test_claimInvite_claimBeforeMinCommitmentPeriod_reverts() (gas: 142819)
OptimistInviterTest:test_claimInvite_claimForSomeoneElse_succeeds() (gas: 245467)
OptimistInviterTest:test_claimInvite_replayingUsedNonce_reverts() (gas: 288415)
OptimistInviterTest:test_claimInvite_succeeds() (gas: 241374)
OptimistInviterTest:test_claimInvite_usingERC1271Wallet_succeeds() (gas: 245742)
OptimistInviterTest:test_claimInvite_usingSignatureIssuedForDifferentChain_reverts() (gas: 156565)
OptimistInviterTest:test_claimInvite_usingSignatureIssuedForDifferentContract_reverts() (gas: 156478)
OptimistInviterTest:test_claimInvite_usingSignatureIssuedForDifferentVersion_reverts() (gas: 155102)
OptimistInviterTest:test_claimInvite_whenIssuerHasNoInvitesLeft_reverts() (gas: 562110)
OptimistInviterTest:test_claimInvite_whenIssuerNeverReceivedInvites_reverts() (gas: 110711)
OptimistInviterTest:test_claimInvite_withIncorrectSignature_reverts() (gas: 253095)
OptimistInviterTest:test_claimInvite_withoutCommittingHash_reverts() (gas: 119188)
OptimistInviterTest:test_commitInvite_committingForSomeoneElse_succeeds() (gas: 140649)
OptimistInviterTest:test_commitInvite_committingForYourself_succeeds() (gas: 138628)
OptimistInviterTest:test_commitInvite_committingSameHashTwice_reverts() (gas: 142034)
OptimistInviterTest:test_grantInvites_adminAddingInvites_succeeds() (gas: 190802)
OptimistInviterTest:test_grantInvites_nonAdminAddingInvites_reverts() (gas: 14004)
OptimistInviterTest:test_initialize() (gas: 14702)
OptimistTest:test_approve_reverts() (gas: 70443)
OptimistTest:test_baseURI_returnsCorrectBaseURI_succeeds() (gas: 124568)
OptimistTest:test_burn_byNonOwner_reverts() (gas: 73131)
OptimistTest:test_burn_byOwner_succeeds() (gas: 54504)
OptimistTest:test_initialize_success() (gas: 25042)
OptimistTest:test_mint_afterAllowlistAttestation_succeeds() (gas: 121420)
OptimistTest:test_mint_afterCoinbaseQuestAttestation_succeeds() (gas: 130362)
OptimistTest:test_mint_afterInviteClaimed_succeeds() (gas: 311331)
OptimistTest:test_mint_afterMultipleAttestations_succeeds() (gas: 377762)
OptimistTest:test_mint_forAlreadyMintedClaimer_reverts() (gas: 118034)
OptimistTest:test_mint_forNonAllowlistedClaimer_reverts() (gas: 29897)
OptimistTest:test_mint_secondaryMinter_succeeds() (gas: 72711)
OptimistTest:test_multicall_batchingClaimAndMint_succeeds() (gas: 308421)
OptimistTest:test_setApprovalForAll_reverts() (gas: 74216)
OptimistTest:test_supportsInterface_returnsCorrectInterfaceForERC721_succeeds() (gas: 5805)
OptimistTest:test_tokenIdOfAddress_returnsOwnerID_succeeds() (gas: 63730)
OptimistTest:test_tokenURI_returnsCorrectTokenURI_succeeds() (gas: 195930)
OptimistTest:test_transferFrom_reverts() (gas: 75492)
PreimageOracle_Test:test_computePreimageKey_succeeds() (gas: 6267)
PreimageOracle_Test:test_computePreimageKey_succeeds() (gas: 6267)
PreimageOracle_Test:test_loadKeccak256PreimagePart_outOfBoundsOffset_reverts() (gas: 9025)
PreimageOracle_Test:test_loadKeccak256PreimagePart_outOfBoundsOffset_reverts() (gas: 9025)
PreimageOracle_Test:test_loadKeccak256PreimagePart_succeeds() (gas: 77552)
PreimageOracle_Test:test_loadKeccak256PreimagePart_succeeds() (gas: 77552)
...
...
packages/contracts-bedrock/contracts/test/Optimist.t.sol
View file @
b080a7ba
...
@@ -29,6 +29,11 @@ interface IMulticall3 {
...
@@ -29,6 +29,11 @@ interface IMulticall3 {
returns (Result[] memory returnData);
returns (Result[] memory returnData);
}
}
library Multicall {
bytes constant internal code = hex"6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea2646970667358221220bb2b5c71a328032f97c676ae39a1ec2148d3e5d6f73d95e9b17910152d61f16264736f6c634300080c0033";
address constant internal addr = 0xcA11bde05977b3631167028862bE2a173976CA11;
}
contract Optimist_Initializer is Test {
contract Optimist_Initializer is Test {
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Initialized(uint8);
event Initialized(uint8);
...
@@ -233,8 +238,8 @@ contract Optimist_Initializer is Test {
...
@@ -233,8 +238,8 @@ contract Optimist_Initializer is Test {
_optimistAllowlist: optimistAllowlist
_optimistAllowlist: optimistAllowlist
});
});
// address test = deployCode("Multicall3.sol"
);
multicall3 = IMulticall3(Multicall.addr
);
multicall3 = IMulticall3(deployCode("Multicall3.sol")
);
vm.etch(Multicall.addr, Multicall.code
);
}
}
}
}
...
...
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