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 zkSync Era [don't merge] [duplicates fork] #62

Draft
wants to merge 189 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
189 commits
Select commit Hold shift + click to select a range
3b9c05b
ZkSync bridge folder structure
Jun 7, 2023
e8f2f18
Add L1ERC20Bridge & req interfaces and libs
ljankovic-txfusion Jun 7, 2023
e299032
Initial l2 bridge implementation
Jun 7, 2023
5e26dce
Add custom bridge l1 interface
ljankovic-txfusion Jun 7, 2023
188191c
Add revert messages & remove unused code
ljankovic-txfusion Jun 8, 2023
07e42e5
Add whenWithdrawalsEnabled modifier to L1 bridge
ljankovic-txfusion Jun 8, 2023
b5a97fc
remove formatting
ljankovic-txfusion Jun 8, 2023
489df90
remove comment from .eslintrc.js
ljankovic-txfusion Jun 8, 2023
07db917
remove line from eslint
ljankovic-txfusion Jun 8, 2023
122bf9a
remove tabs from eslint file
ljankovic-txfusion Jun 8, 2023
f04e687
remove sljson file
ljankovic-txfusion Jun 8, 2023
86cd8af
again fix tabs in eslint
ljankovic-txfusion Jun 8, 2023
6563c83
Upgradable l2 bridge implementation
Jun 11, 2023
4de56a6
Merge pull request #1 from txfusion/ljankovic-txfusion-l1-bridge
mpavlovic-txfusion Jun 12, 2023
727eb42
Resolve conflict
Jun 12, 2023
f05852c
Change folder structure and update sol versions
Jun 13, 2023
142f09f
Add AAVE cross-chain governance contracts
Jun 16, 2023
6a69c72
changed contracts & solidity version
ljankovic-txfusion Jun 16, 2023
9243961
add Ossifiable Proxy Contract
ljankovic-txfusion Jun 16, 2023
1c2492e
Merge pull request #2 from txfusion/mpavlovic-txfusion-l2-bridge
ljankovic-txfusion Jun 16, 2023
cb554b1
add L1 Lido Bridge deployment scripts
ljankovic-txfusion Jun 19, 2023
50f2a9e
Deploy governance bridge to zkSync
Jun 19, 2023
4a46bcd
Add AragonAgentMock contract
Jun 19, 2023
cdbca2b
working on deploy and initialize bridges script
ljankovic-txfusion Jun 20, 2023
d9b441a
add __BridgeableTokens_init to L1 Bridge
ljankovic-txfusion Jun 21, 2023
30fbc87
working on bridge initialization
ljankovic-txfusion Jun 21, 2023
6295579
Change token implementation
Jun 21, 2023
df5d0af
Merge branch 'ljankovic-txfusion-l1-bridge' of github.com:txfusion/li…
Jun 21, 2023
c12a435
Merge pull request #4 from txfusion/ljankovic-txfusion-l1-bridge
mpavlovic-txfusion Jun 21, 2023
0f4f784
Merge pull request #3 from txfusion/mpavlovic-txfusion-deploy-governance
ljankovic-txfusion Jun 21, 2023
d416c5c
add governor agent init scripts
ljankovic-txfusion Jun 22, 2023
87270af
Deploy wstETH to zkSync
Jun 22, 2023
ffedbbe
add enable-bridges script
ljankovic-txfusion Jun 22, 2023
6b12b18
wait for bridges to be enabled
ljankovic-txfusion Jun 22, 2023
89c533f
Merge pull request #5 from txfusion/ljankovic-txfusion-l1-governance
mpavlovic-txfusion Jun 22, 2023
a561f2e
Merge pull request #6 from txfusion/mpavlovic-txfusion-deploy-l2-token
ljankovic-txfusion Jun 22, 2023
55e04f0
Test wstETH deposit
Jun 23, 2023
2fdb8ea
Test wstETH withdrawal
Jun 23, 2023
dd987e9
Add L1 Executor contract with scripts
ljankovic-txfusion Jun 23, 2023
e2a24b1
Test governance
Jun 26, 2023
f113a3b
bridging L1 to L2 action set
ljankovic-txfusion Jun 26, 2023
0b407a8
Update .env.example files
Jun 27, 2023
e21f5d3
fixing initialize-bridge-roles script
ljankovic-txfusion Jun 28, 2023
3c943b6
added scripts for disabling & enabling deposits
ljankovic-txfusion Jun 28, 2023
43ecb5a
Merge pull request #7 from txfusion/mpavlovic-txfusion-test-deposit-w…
ljankovic-txfusion Jun 28, 2023
fa99bbe
minor folder restructuring
ljankovic-txfusion Jun 28, 2023
b5a5ba1
tidying up
ljankovic-txfusion Jun 28, 2023
92e7499
deploy L1Executor behind OssifiableProxy
ljankovic-txfusion Jun 29, 2023
b966b6c
minor changes in scripts
ljankovic-txfusion Jun 29, 2023
d4ebc51
Merge branch 'main' into ljankovic-txfusion-l1-governance
ljankovic-txfusion Jun 29, 2023
3148f38
Merge pull request #8 from txfusion/ljankovic-txfusion-l1-governance
ljankovic-txfusion Jun 29, 2023
47e7bba
Initial unit tests
Jun 29, 2023
85a1db2
Merge main
Jun 29, 2023
eb4c5bf
testing L2 ERC20 Bridge
ljankovic-txfusion Jun 29, 2023
a724a74
L1 bridge initialization and deposit unit tests
Jun 30, 2023
5e40346
L1 bridge finalizeWithdrawal unit tests
Jun 30, 2023
18f12dd
Rename BridgingManager Initialized event
Jun 30, 2023
aa00e72
testing unit L2ERC20Bridge
ljankovic-txfusion Jul 3, 2023
4484a5e
add unit test for withdraw() :: works as expected
ljankovic-txfusion Jul 4, 2023
7d3b6dc
fixing L2ERC20Bridge unit tests
ljankovic-txfusion Jul 4, 2023
371904d
restore unit.ts files
ljankovic-txfusion Jul 4, 2023
5daf151
restore L2ERC20TokensGateway arbitrum test
ljankovic-txfusion Jul 4, 2023
9ca3305
restore l1 package json
ljankovic-txfusion Jul 4, 2023
2d54006
Merge pull request #9 from txfusion/ljankovic-txfusion-tests
ljankovic-txfusion Jul 4, 2023
abdcc76
Add unit tests for claimFailedDeposit
Jul 4, 2023
8399a2d
add e2e testing script for the bridge
ljankovic-txfusion Jul 5, 2023
1e66cbe
add test cases to enable/disable deposit/withdraw
ljankovic-txfusion Jul 6, 2023
c8e0993
import testing vars from env
ljankovic-txfusion Jul 6, 2023
7f0d4fe
Resolve conflicts
Jul 6, 2023
fe12ae3
Small test updates
Jul 6, 2023
120fb8d
resolved conflicts
ljankovic-txfusion Jul 6, 2023
6138545
made L1Executor OwnableUpgradeable
ljankovic-txfusion Jul 6, 2023
3afd334
add revoke role to initialize-bridge-roles script
ljankovic-txfusion Jul 7, 2023
9204f15
Adjusting deployment plan
Jul 7, 2023
e9ba069
formatting zkSync folder
ljankovic-txfusion Jul 7, 2023
e74ad81
Ignore delegatecall validation
Jul 7, 2023
5ec863b
Add security risk comments
Jul 7, 2023
3ece77c
Upgrade wstETH proxy
ljankovic-txfusion Jul 7, 2023
218d974
Improvements
Jul 7, 2023
5315a53
Merge pull request #10 from txfusion/mpavlovic-txfusion-tests
ljankovic-txfusion Jul 7, 2023
1a9e448
Small improvment before PR
Jul 7, 2023
376914c
single .env file for l1 and l2
ljankovic-txfusion Jul 11, 2023
85015bd
fixing test deposit/withdraw scripts
ljankovic-txfusion Jul 11, 2023
6d40324
renaming path vars
ljankovic-txfusion Jul 11, 2023
789d79d
changing chai matchers
ljankovic-txfusion Jul 12, 2023
8d3b616
non-upgradable ZkSyncBridgeExecutor
ljankovic-txfusion Jul 12, 2023
1967e8e
minor changes
ljankovic-txfusion Jul 13, 2023
b6faba1
changed var names in bridge e2e test
ljankovic-txfusion Jul 13, 2023
c4b2a17
Support ERC-2612 and ERC-1271
Jul 14, 2023
5cf64b6
Merge pull request #12 from txfusion/mpavlovic-txfusion-improvements
ljankovic-txfusion Jul 14, 2023
f8e75d8
deleted commented code
ljankovic-txfusion Jul 14, 2023
080d742
Merge pull request #11 from txfusion/ljankovic-txfusion-scripts
mpavlovic-txfusion Jul 14, 2023
f28242e
Small fixes
Jul 14, 2023
dd3ac6f
Fix deploy wstETH script
Jul 14, 2023
1cfa5d6
minor changes
ljankovic-txfusion Jul 14, 2023
3283453
Update zkSync README.md
mpavlovic-txfusion Jul 19, 2023
60c13e8
Remove code duplication & change license
vladbochok Jul 30, 2023
6c025c7
New line
vladbochok Jul 30, 2023
9512c07
Cleanup for audit
Jul 31, 2023
7098c05
Merge branch 'main' into vb-small-refactoring
vladbochok Jul 31, 2023
a4d5c58
Merge pull request #13 from vladbochok/vb-small-refactoring
mpavlovic-txfusion Jul 31, 2023
ea9abdb
Small refactoring
Jul 31, 2023
28dca55
add script for deploying & compiling contracts
ljankovic-txfusion Aug 1, 2023
2687bc6
fix typo in deploy bash script
ljankovic-txfusion Aug 1, 2023
f15e709
add support for OSX in deploy.sh
ljankovic-txfusion Aug 1, 2023
8af93de
remove setGovernance from L2BridgeExecutor.sol
ljankovic-txfusion Aug 4, 2023
6f8f117
_ethereumGovernanceExecutor supports EOA
ljankovic-txfusion Aug 22, 2023
1799333
add manual storage slots w/ unknown preimage
ljankovic-txfusion Aug 22, 2023
d8ba7c8
added address validation on L2BridgeExecutor
ljankovic-txfusion Aug 22, 2023
96d74e3
refundRecipient emitted in DepositInitiated event
ljankovic-txfusion Aug 22, 2023
b3c8804
_l2Receiver zero address validation
ljankovic-txfusion Aug 22, 2023
cba43db
using IL1Messenger instead of IL2Messenger
ljankovic-txfusion Aug 23, 2023
f50f445
resolved variable shadowing
ljankovic-txfusion Aug 23, 2023
d97217a
Too many targets when queuing action set reverts
ljankovic-txfusion Aug 23, 2023
071c67b
_getERC20Getters function removed
ljankovic-txfusion Aug 23, 2023
251bda5
add expireTime property to action set
ljankovic-txfusion Aug 23, 2023
16367e2
made L1Executor to be Initializable
ljankovic-txfusion Aug 23, 2023
dc2c8c8
comment ethereumGovernanceExecutor EOA or Alias
ljankovic-txfusion Aug 30, 2023
e29a1e9
align interfaces on L1 & L2 and add comments
ljankovic-txfusion Aug 30, 2023
2bb9685
Remove fixed l1 token address from mapping
Aug 30, 2023
5f96782
add _disableInitializers() to L1ERC20Bridge
ljankovic-txfusion Aug 30, 2023
6053e2f
comment: guardian is a trusted party
ljankovic-txfusion Aug 30, 2023
4f9fa1c
Upper bound on maximum delay
mpavlovic-txfusion Aug 30, 2023
67b8ec7
Merge changes
mpavlovic-txfusion Aug 30, 2023
3d21e51
remove delegate call from L2BridgeExecutor
ljankovic-txfusion Aug 30, 2023
003d24c
Update zksync readme
mpavlovic-txfusion Aug 30, 2023
ae54bc4
Update docs
mpavlovic-txfusion Aug 30, 2023
a6dab8d
Merge pull request #14 from txfusion/audit-fixes
mpavlovic-txfusion Aug 30, 2023
63b2568
limit action set queuing to 3 actions
ljankovic-txfusion Aug 31, 2023
8d36633
add comment for aliasing governance executor
ljankovic-txfusion Aug 31, 2023
fb78015
add comments to L1Executor deploy script
ljankovic-txfusion Aug 31, 2023
6961fcf
fix prefix on input args in L1ERC20Bridge
ljankovic-txfusion Aug 31, 2023
9e01f99
Add 2 step governance executor update
mpavlovic-txfusion Sep 1, 2023
115d636
Merge branch 'main' into audit-fixes
mpavlovic-txfusion Sep 1, 2023
fc546a4
Governance on L2 is upgradable
ljankovic-txfusion Sep 1, 2023
724f291
Update @openzeppelin/contracts-upgradeable
mpavlovic-txfusion Sep 1, 2023
0e99e26
add upgradable for BridgingManager contract
ljankovic-txfusion Sep 4, 2023
1bc5595
update scripts to reflect recent changes
ljankovic-txfusion Sep 4, 2023
7395085
Removed zkSync from L1ERC20Bridge constructor
ljankovic-txfusion Sep 4, 2023
5de83ea
Add Ownable2StepUpgradeable
mpavlovic-txfusion Sep 4, 2023
6f6244d
Merge pull request #15 from txfusion/audit-fixes
ljankovic-txfusion Sep 4, 2023
fdc1b33
load hardhat rpc urls from enviroment variables
mshojaei-txfusion Sep 13, 2023
4aded34
add deploy script for create2 factory
mshojaei-txfusion Sep 13, 2023
88fcacc
read network id from .env on scripts
mshojaei-txfusion Sep 14, 2023
0c24a3f
minor changes
ljankovic-txfusion Sep 14, 2023
98f2f32
fix installation problems
mshojaei-txfusion Sep 14, 2023
2d3141c
load chain id from constants no l1 tests
mshojaei-txfusion Sep 14, 2023
80e05ca
setup contract verification requirements on l1
mshojaei-txfusion Sep 17, 2023
64f1570
setup l2 contract verification requirements
mshojaei-txfusion Sep 18, 2023
57e9475
implement contract verification script for l1 and use it for bridge c…
mshojaei-txfusion Sep 19, 2023
e84d82d
verification for l1executer contracts
mshojaei-txfusion Sep 19, 2023
f648862
add verification on deploy script for L2 contracts
mshojaei-txfusion Sep 19, 2023
d3ce20f
add script for l2 bridge verification(it is deployed by L1bridge init…
mshojaei-txfusion Sep 19, 2023
2b222e5
check for is production before accept transfer ownership of L1executo…
mshojaei-txfusion Sep 20, 2023
b2741c7
add audit report
ljankovic-txfusion Sep 21, 2023
9a3f044
cleanup
ljankovic-txfusion Sep 21, 2023
029d01c
check is local before verify on L2
mshojaei-txfusion Sep 21, 2023
89be71e
minor fixes
ljankovic-txfusion Sep 21, 2023
bfa2c8a
remove comments
ljankovic-txfusion Sep 21, 2023
8c5c8a0
minor changes
ljankovic-txfusion Sep 22, 2023
8e7361b
Remove 2 step ownership
mpavlovic-txfusion Sep 22, 2023
f711c96
cleanup
ljankovic-txfusion Sep 22, 2023
67e7cc0
add conditional defaultNetwork field on l1 hardhat.config.ts (verific…
mshojaei-txfusion Sep 25, 2023
aab8cfe
delete redundant verify
mshojaei-txfusion Sep 25, 2023
e5d3ff5
minor changes
ljankovic-txfusion Sep 25, 2023
15665ee
Remove 2 step for l2 executor
mpavlovic-txfusion Sep 25, 2023
b5ca4f2
add comments
ljankovic-txfusion Sep 25, 2023
fe49d7d
Fix l1 unit tests
mpavlovic-txfusion Sep 25, 2023
f467243
fix l2 bridge unit test
ljankovic-txfusion Sep 25, 2023
2e14f62
Merge branch 'mshojaei-txfusion-deploy-on-testnet' of github.com:txfu…
ljankovic-txfusion Sep 25, 2023
2e8bcba
removed unused console logs
ljankovic-txfusion Sep 25, 2023
de0aadc
Merge pull request #16 from txfusion/mshojaei-txfusion-deploy-on-testnet
mpavlovic-txfusion Sep 25, 2023
58fe118
minor cleanup
ljankovic-txfusion Sep 26, 2023
ab92cd1
Improve natspec and avoid var shadowing
mpavlovic-txfusion Oct 3, 2023
42c9446
Prevent compiler warnings
mpavlovic-txfusion Oct 3, 2023
a01cfe3
Use disableInitializers in constructor
mpavlovic-txfusion Oct 3, 2023
fa6a77e
Merge pull request #17 from txfusion/mpavlovic-txfusion-info-notes-fixes
mpavlovic-txfusion Oct 3, 2023
28d8f75
minor changes
ljankovic-txfusion Oct 11, 2023
14b913f
zkSync deployment acceptance testing
ljankovic-txfusion Oct 19, 2023
861fcc4
updating docs
ljankovic-txfusion Oct 20, 2023
2a21afb
minor changes in readme
ljankovic-txfusion Oct 20, 2023
76a83d8
minor changes
ljankovic-txfusion Oct 20, 2023
e210629
remove L1 Bridge Impl address logging
ljankovic-txfusion Oct 20, 2023
867ef69
Update README.md
mpavlovic-txfusion Oct 20, 2023
7f4fda7
Small README.md update
mpavlovic-txfusion Oct 20, 2023
d34062e
mainnet deployment changes
ljankovic-txfusion Oct 23, 2023
3bb90ce
changed L2 governance licenses
ljankovic-txfusion Nov 8, 2023
a574aee
Revert "changed L2 governance licenses"
ljankovic-txfusion Nov 8, 2023
0c6214d
AAVE contract licensing
ljankovic-txfusion Nov 8, 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
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,17 @@ coverage.json
typechain
out

addresses.local.json

#Hardhat files
cache
/artifacts
artifacts
cache-zk
artifacts-zk


# hardhat-zksync-upgradable plugin manifest file for contracts deployed on zkSync's local-setup
**/.upgradable/zkSync-local-setup.json

.DS_Store
.vscode
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# Lido L2

This project contains the implementations of the L2 ERC20 token bridges for Arbitrum and Optimism chains. The current solution allows transferring ERC20 tokens between L1 and L2 chains.
This project contains the implementations of the L2 ERC20 token bridges for Arbitrum, Optimism and zkSync Era chains. The current solution allows transferring ERC20 tokens between L1 and L2 chains.

To retrieve more detailed info about the bridging process, see the specifications for certain chains:

- [Lido's Arbitrum Gateway](https://github.com/lidofinance/lido-l2/blob/main/contracts/arbitrum/README.md).
- [Lido's Optimism Bridge](https://github.com/lidofinance/lido-l2/blob/main/contracts/optimism/README.md).
- [Lido's zkSync Era Bridge](https://github.com/txfusion/lido-l2/blob/main/zksync/README.md).

## Project setup

Expand Down
Loading