Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Foundry unit test coverage for token bridge factory #64

Merged
merged 119 commits into from
Dec 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
ca71072
Draft implementation of constructor bytecode getter
gvladika Nov 17, 2023
db2face
Add function for getting the constructor bytecode
gvladika Nov 17, 2023
f60ec86
Check constructor size and throw error if unexpected one
gvladika Nov 17, 2023
3d4a34e
Add constructor check rationale
gvladika Nov 17, 2023
efce336
Refactor
gvladika Nov 17, 2023
2de56b5
Add to CI
gvladika Nov 17, 2023
6389b4a
Check CI will fail if constructor is modified
gvladika Nov 17, 2023
6e14a45
Revert "Check CI will fail if constructor is modified"
gvladika Nov 17, 2023
879c9b5
Clean up
gvladika Nov 17, 2023
778ee85
Merge branch 'constructor-check' into constructor-bytecode
gvladika Nov 22, 2023
9907fa2
Change _creationCodeFor so that it uses the same constructor as the o…
gvladika Nov 22, 2023
7f07b3b
Init logic contract
gvladika Nov 23, 2023
a2da1b3
Make deployment test more complete
gvladika Nov 23, 2023
d0bf7fd
Remove comment
gvladika Nov 23, 2023
865a1a7
Add deployment script
gvladika Nov 23, 2023
76231f5
Calculate properly canonical address of L1 router
gvladika Nov 27, 2023
dda5bd1
Merge pull request #12 from OffchainLabs/address-calc-update
gzeoneth Nov 27, 2023
506509f
Merge pull request #11 from OffchainLabs/exec-init
gzeoneth Nov 27, 2023
b2e62e1
feat: remove canonicalL2FactoryAddress dependency
gzeoneth Nov 27, 2023
63b44da
docs: explain
gzeoneth Nov 27, 2023
a9a932a
format: fix
gzeoneth Nov 27, 2023
7674d4e
Merge pull request #15 from OffchainLabs/constructor-bytecode
gzeoneth Nov 28, 2023
2a0fde8
Extract code creation function to lib
gvladika Nov 28, 2023
d29f80c
Merge remote-tracking branch 'private/private' into minimal-fix
gzeoneth Nov 28, 2023
14b13df
fix: remove create1 import
gzeoneth Nov 28, 2023
f141c11
fix: fmt
gzeoneth Nov 28, 2023
e94ee86
feat: add create1 util
gzeoneth Nov 28, 2023
3cc138f
feat: remove logic salt
gzeoneth Nov 28, 2023
af0b2ab
fix: interface name
gzeoneth Nov 28, 2023
0b543c6
Verify creation code generation
gvladika Nov 28, 2023
a405376
feat: cache and store deployment
gzeoneth Nov 28, 2023
7b66e28
refactor: lower contract size
gzeoneth Nov 28, 2023
4511b7b
feat: getTokenBridgeDeployment
gzeoneth Nov 28, 2023
bde2b4a
Use chai test format
gvladika Nov 28, 2023
55d6f07
Add aeWETH/UpgradeExecutor constructor size check
gvladika Nov 28, 2023
fb6f99c
feat: add e2e tests to CI (#18)
gvladika Nov 28, 2023
7abf8c3
Update comment
gvladika Nov 28, 2023
607d631
Remove intermediary function
gvladika Nov 28, 2023
d527518
Merge pull request #17 from OffchainLabs/creation-code
gzeoneth Nov 28, 2023
c93197b
Update out-of-date comments
gvladika Nov 28, 2023
a96b658
feat: disable template update
gzeoneth Nov 28, 2023
8bcbf6e
chore: rename error
gzeoneth Nov 28, 2023
11a3f66
ci: wait-for-l3
gzeoneth Nov 28, 2023
43640cb
ci: switch back to main
gzeoneth Nov 28, 2023
b975cbb
Merge pull request #19 from OffchainLabs/disable-update
gzeoneth Nov 28, 2023
01cf841
Test canonical address for multicall, beacon proxy and proxy admin ar…
gvladika Nov 28, 2023
ed24e1e
Merge pull request #20 from OffchainLabs/test-addresses
gzeoneth Nov 28, 2023
b2c8e4c
refactor: _deployProxyWithSalt
gzeoneth Nov 30, 2023
a33258f
fix: remove Create1 lib and use empty salt instead
gzeoneth Nov 30, 2023
c28aebf
fix: beacon deploy
gzeoneth Nov 30, 2023
7f46c61
Update local deployment scripts
gvladika Nov 30, 2023
d36902a
Add test info
gvladika Nov 30, 2023
bcb00d5
Refactor test to support latest contract changes
gvladika Nov 30, 2023
e9ff618
Fetch rollup owner from logs
gvladika Nov 30, 2023
9d92b55
Update prod deployment script
gvladika Nov 30, 2023
1d11a54
Merge remote-tracking branch 'private/private' into add-registry
gzeoneth Nov 30, 2023
0a87b57
Merge branch 'add-registry' into update-scripts
gvladika Nov 30, 2023
f7bdc1d
Remove unnecessary structs
gvladika Nov 30, 2023
0f36d7a
refactor: inline internal methods
gzeoneth Nov 30, 2023
b49be0d
refactor: flatten more
gzeoneth Nov 30, 2023
a2276ef
refactor: _computeAddressAtNonce0
gzeoneth Nov 30, 2023
0b9968b
Merge branch 'add-registry' into update-scripts
gzeoneth Nov 30, 2023
b164913
refactor: remove return val
gzeoneth Nov 30, 2023
84a190d
refactor: separate l1 l2 deployment
gzeoneth Nov 30, 2023
1e512e5
feat: add deployment setter
gzeoneth Nov 30, 2023
8868ddc
fix: l2 multicall template
gzeoneth Nov 30, 2023
b17231b
Bring deployment and test scripts up to date
gvladika Nov 30, 2023
c596691
docs: sendRetryable
gzeoneth Dec 1, 2023
5325170
fix: remove some redundent logic
gzeoneth Dec 1, 2023
a168fa6
Run e2e tests on chain that uses fee token
gvladika Dec 1, 2023
a524b74
Change action name
gvladika Dec 1, 2023
0c14a31
fix: remove getCanonicalL1RouterAddress
gzeoneth Dec 1, 2023
541d549
fix: do not set weth when isUsingFeeToken
gzeoneth Dec 1, 2023
742c9a8
docs: add more comments
gzeoneth Dec 1, 2023
cb00c5e
docs: _computeAddressAtNonce0
gzeoneth Dec 1, 2023
192d983
refactor: trycatch
gzeoneth Dec 1, 2023
d12bd6c
rename: event OrbitTokenBridgeDeploymentSet
gzeoneth Dec 1, 2023
bcac012
feat: L1AtomicTokenBridgeCreator_AlreadyCreated
gzeoneth Dec 1, 2023
ca76b16
Merge branch 'add-registry' into e2e-fee-token
gvladika Dec 1, 2023
ca4a2dc
Merge pull request #23 from OffchainLabs/e2e-fee-token
gzeoneth Dec 1, 2023
f3922cf
Remove unused error
gvladika Dec 1, 2023
652b943
Add L1AtomicTokenBridgeCreator init tests
gvladika Dec 1, 2023
9138364
Test setTemplates
gvladika Dec 1, 2023
e2537f1
refactor: calc salt in deploySeedProxy
gzeoneth Dec 4, 2023
3c90260
refactor: inline oneline methods
gzeoneth Dec 4, 2023
c8e3759
Add L1AtomicTokenBridgeCreator init tests
gvladika Dec 1, 2023
734b152
Test setTemplates
gvladika Dec 1, 2023
ed3d817
Merge branch 'add-registry' into creator-unit-tests
gvladika Dec 4, 2023
321e982
Update nitro-contracts ref for testing
gvladika Dec 4, 2023
6937f8f
Add createTokenBridge tests
gvladika Dec 4, 2023
afe7c3b
Add more L1 creator tests
gvladika Dec 4, 2023
540902f
Test ERC20 chain
gvladika Dec 4, 2023
5f21244
Add skeleton for L2AtomicTokenBridgeFactory tests
gvladika Dec 5, 2023
882fd94
Add more checks for L2 factory
gvladika Dec 11, 2023
b6f67bf
fix: unsalted deployment
gzeoneth Dec 12, 2023
83751fd
Complete L2 factory tests
gvladika Dec 12, 2023
1d0bc46
Add init check for StandardArbERC20 logic
gvladika Dec 12, 2023
bde8041
Fix L2 multicall address prediction
gvladika Dec 12, 2023
95faf65
test: AtomicTokenBridgeCreator in foundry
gzeoneth Dec 12, 2023
fa36997
test: deployment fail case
gzeoneth Dec 12, 2023
08f4c50
feat: allow retry
gzeoneth Dec 12, 2023
96fb990
fix: typo
gzeoneth Dec 12, 2023
0ff8288
Merge branch 'fix-2' into fix-audit
gzeoneth Dec 12, 2023
e831aa8
test: fix new test
gzeoneth Dec 12, 2023
97138a1
Merge branch 'fix-audit' into feat-retry
gzeoneth Dec 12, 2023
7ad4ad6
docs: more comments
gzeoneth Dec 12, 2023
6549657
docs: explain more
gzeoneth Dec 12, 2023
ad122d3
refactor: rename to resend
gzeoneth Dec 12, 2023
7a20b4c
If rollupOwner is a contract, alias its address when sending to L2
gvladika Dec 12, 2023
e0b7e52
Move aliasing rollupOwner to L1 creator
gvladika Dec 12, 2023
ba8f5d2
Add more L1 factory tests
gvladika Dec 12, 2023
9f72fc8
Add missing L1 factory tests
gvladika Dec 12, 2023
d702e7b
refactor: scope chainId to reduce stack size
gzeoneth Dec 13, 2023
7d1dbf1
Merge branch 'fix-2' into fix-audit
gzeoneth Dec 13, 2023
adda8e6
Merge branch 'fix-audit' into feat-retry
gzeoneth Dec 13, 2023
875c48b
Merge branch 'feat-retry' into creator-unit-tests
gvladika Dec 19, 2023
7ca2343
Stack too deep fix
gvladika Dec 19, 2023
9ebe8b2
Adapt tests
gvladika Dec 19, 2023
cc1f8f5
Merge branch 'feat-registry' into creator-unit-tests
gvladika Dec 19, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
[submodule "lib/nitro-contracts"]
path = lib/nitro-contracts
url = git@github.com:OffchainLabs/nitro-contracts.git
branch = feature-orbit-bridge
branch = v1.1.0
2 changes: 1 addition & 1 deletion lib/nitro-contracts
Submodule nitro-contracts updated 56 files
+1 −1 .github/workflows/contract-tests.yml
+2 −0 .prettierignore
+1 −1 deploy/SequencerInbox.js
+1 −1 deploy/SequencerInboxStubCreator.js
+16 −0 hardhat.config.ts
+9 −8 package.json
+4 −0 scripts/config.ts.example
+3 −6 scripts/createERC20Rollup.ts
+65 −36 scripts/deployment.ts
+39 −5 scripts/rollupCreation.ts
+11 −9 scripts/testSetup.ts
+7 −1 src/bridge/AbsBridge.sol
+27 −6 src/bridge/AbsInbox.sol
+32 −1 src/bridge/AbsOutbox.sol
+20 −5 src/bridge/ERC20Bridge.sol
+2 −0 src/bridge/ERC20Inbox.sol
+255 −0 src/bridge/GasRefunder.sol
+4 −0 src/bridge/IBridge.sol
+5 −3 src/bridge/IERC20Bridge.sol
+5 −0 src/bridge/IInboxBase.sol
+10 −0 src/bridge/IOutbox.sol
+4 −0 src/bridge/ISequencerInbox.sol
+2 −1 src/bridge/Inbox.sol
+19 −5 src/bridge/SequencerInbox.sol
+0 −3 src/libraries/Constants.sol
+10 −1 src/libraries/Error.sol
+4 −0 src/mocks/BridgeStub.sol
+9 −0 src/mocks/InboxStub.sol
+3 −2 src/mocks/SequencerInboxStub.sol
+2 −1 src/mocks/Simple.sol
+82 −0 src/mocks/UpgradeExecutorMock.sol
+16 −0 src/node-interface/NodeInterface.sol
+6 −0 src/precompiles/ArbOwner.sol
+3 −0 src/precompiles/ArbOwnerPublic.sol
+10 −1 src/rollup/AbsRollupEventInbox.sol
+51 −159 src/rollup/BridgeCreator.sol
+149 −0 src/rollup/DeployHelper.sol
+0 −64 src/rollup/IBridgeCreator.sol
+2 −0 src/rollup/IRollupEventInbox.sol
+143 −45 src/rollup/RollupCreator.sol
+26 −4 src/rollup/RollupUserLogic.sol
+4 −0 src/test-helpers/BridgeTester.sol
+6 −0 src/test-helpers/OutboxWithoutOptTester.sol
+16 −0 src/test-helpers/TestToken.sol
+265 −63 test/contract/arbRollup.spec.ts
+2 −2 test/contract/sequencerInboxForceInclude.spec.ts
+22 −34 test/foundry/AbsInbox.t.sol
+118 −77 test/foundry/BridgeCreator.t.sol
+57 −21 test/foundry/ERC20Bridge.t.sol
+5 −6 test/foundry/ERC20Inbox.t.sol
+5 −5 test/foundry/Inbox.t.sol
+272 −16 test/foundry/RollupCreator.t.sol
+3 −3 test/storage/Bridge.dot
+6 −3 test/storage/Inbox.dot
+5 −2 test/storage/Outbox.dot
+765 −822 yarn.lock
Loading