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

feat: Kl/interop support #2419

Draft
wants to merge 971 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
971 commits
Select commit Hold shift + click to select a range
4d9ef77
remove unused import
dimazhornyk Dec 10, 2024
c9cc675
use new index for proto
dimazhornyk Dec 10, 2024
c1304be
rename field
dimazhornyk Dec 10, 2024
c2a6ad1
resolve conflicts
perekopskiy Dec 10, 2024
9c6860e
fmt
perekopskiy Dec 10, 2024
cd81894
remove debug stuff
perekopskiy Dec 10, 2024
70bd91d
rename Validium to NoDA
dimazhornyk Dec 10, 2024
1d30a8a
clean up
perekopskiy Dec 11, 2024
cb37d1b
contracts
perekopskiy Dec 11, 2024
d8f61ff
update genesis
perekopskiy Dec 11, 2024
dbe91ef
update autocompletion
perekopskiy Dec 11, 2024
bd9b736
use u256 instead of string to define the DA Validator type
dimazhornyk Dec 11, 2024
7d72eed
upd contracts
dimazhornyk Dec 11, 2024
ef51d06
fmt
dimazhornyk Dec 11, 2024
6f3da17
try fix
perekopskiy Dec 11, 2024
c7f42b0
rename validium_type to da_validator_type
dimazhornyk Dec 11, 2024
481772e
update sdk
perekopskiy Dec 12, 2024
0d11d27
update tests
perekopskiy Dec 12, 2024
05bf9c1
fix gw ctm owner
perekopskiy Dec 12, 2024
f0ab48f
fmt
perekopskiy Dec 12, 2024
86992cb
Merge pull request #29 from matter-labs/mp-upgrade-script
perekopskiy Dec 12, 2024
6c9e85c
merge main
perekopskiy Dec 12, 2024
60d054a
rework sl_chain_config config
perekopskiy Dec 13, 2024
44155cf
rename settlement_layer -> gateway_chain_id, remove field from contra…
perekopskiy Dec 13, 2024
94e686c
fix tests
perekopskiy Dec 13, 2024
08a7eb4
fix test
perekopskiy Dec 13, 2024
2dc3f99
resolve conflicts
dimazhornyk Dec 13, 2024
0429d5d
fmt
dimazhornyk Dec 13, 2024
ad6c07b
remove method
perekopskiy Dec 13, 2024
22613fd
fix conflicts
dimazhornyk Dec 13, 2024
d4ee77e
Merge pull request #31 from matter-labs/rework-sl-chain-id-config
perekopskiy Dec 13, 2024
962a6b2
Merge pull request #25 from matter-labs/dz-support-validiums-in-zkstack
dimazhornyk Dec 13, 2024
fa4d517
remove settlement_layer_url from api config; remove get_l1_processing…
perekopskiy Dec 13, 2024
44ac0ba
Merge pull request #32 from matter-labs/remove-get_l1_processing_details
perekopskiy Dec 13, 2024
40c42ba
feat: Merge gateway release candidate 2 + enable loadtest (#33)
StanislavBreadless Dec 17, 2024
d8e205e
sync main with sls
StanislavBreadless Dec 17, 2024
c489c9f
fix protobuf
StanislavBreadless Dec 17, 2024
6253a7c
first round of cleanup
StanislavBreadless Dec 18, 2024
168faff
more clenaup
StanislavBreadless Dec 18, 2024
3da4f79
return old config name
StanislavBreadless Dec 18, 2024
fa83edd
remove unused function
StanislavBreadless Dec 18, 2024
4f09340
same contracts as in sls
StanislavBreadless Dec 18, 2024
af17e9b
feat: Migrate back to public repo (#34)
StanislavBreadless Dec 18, 2024
e8b245e
Merge branch 'sb-sync-main-sls' into sb-additional-server-cleanup
StanislavBreadless Dec 18, 2024
3f4e4a7
Merge pull request #3402 from matter-labs/sync-layer-stable-dev
StanislavBreadless Dec 19, 2024
9f65dbd
Merge branch 'sync-layer-stable' into sb-sync-main-sls
StanislavBreadless Dec 19, 2024
05ad8a0
fix lint/tests
StanislavBreadless Dec 19, 2024
8f25cc6
Merge branch 'sb-sync-main-sls' into sb-additional-server-cleanup
StanislavBreadless Dec 19, 2024
69ea2c6
Merge pull request #3404 from matter-labs/sb-sync-main-sls
StanislavBreadless Dec 19, 2024
e2ce995
use old admin
StanislavBreadless Dec 19, 2024
c8f4371
upd contracts
StanislavBreadless Dec 19, 2024
a59e48e
fix using old admin
StanislavBreadless Dec 19, 2024
227beac
fmt
StanislavBreadless Dec 19, 2024
9052bed
fix ci
StanislavBreadless Dec 19, 2024
16a3ddd
remove public inner field for l2chainid
StanislavBreadless Dec 19, 2024
4fc96db
correct setting token setter
StanislavBreadless Dec 19, 2024
dd4e254
upd contracts
StanislavBreadless Dec 19, 2024
78f8edd
Merge branch 'sync-layer-stable' into sb-additional-server-cleanup
StanislavBreadless Dec 19, 2024
7fb08cf
fmt
StanislavBreadless Dec 19, 2024
3f3436a
more cleanup
StanislavBreadless Dec 20, 2024
cf3dc83
upd contracts
StanislavBreadless Dec 20, 2024
133709a
fix zkstack
StanislavBreadless Dec 20, 2024
8b568b8
maybe fix ci
StanislavBreadless Dec 20, 2024
7c1b816
latest contracts
StanislavBreadless Dec 20, 2024
553f5b6
sync with main + fix aggregator
StanislavBreadless Dec 20, 2024
87e2b51
fix commitment
StanislavBreadless Dec 20, 2024
7036882
fix ci 2
StanislavBreadless Dec 20, 2024
1b5d362
fix env unit test
StanislavBreadless Dec 20, 2024
068dfe6
try fix ci 3
StanislavBreadless Dec 20, 2024
757ef37
remove contracts unit tests
StanislavBreadless Dec 20, 2024
4ce1496
Merge branch 'sb-additional-server-cleanup' into sb-sync-sls-main
StanislavBreadless Dec 20, 2024
2d4068d
fix custom token tests
StanislavBreadless Dec 30, 2024
b81ecae
fix zkstack compile
StanislavBreadless Dec 30, 2024
8ae5f0e
fix lint
StanislavBreadless Dec 30, 2024
3c1214c
upd genesis version
StanislavBreadless Dec 30, 2024
2571efc
Merge branch 'sb-additional-server-cleanup' into sb-sync-sls-main
StanislavBreadless Dec 30, 2024
1a3ded0
partial fix lint
StanislavBreadless Dec 30, 2024
0d33633
chore: Additional gateway server cleanup (#3405)
StanislavBreadless Dec 30, 2024
92ec539
sync with base
StanislavBreadless Dec 30, 2024
f0719ec
Merge branch 'main' into sb-sync-sls-main
StanislavBreadless Dec 30, 2024
eaa2e1c
upd contracts
StanislavBreadless Dec 30, 2024
bda79c9
reduce diff with main
StanislavBreadless Dec 30, 2024
abbbec0
rename contract
StanislavBreadless Dec 30, 2024
9c5135f
return back the change
StanislavBreadless Dec 30, 2024
e0ad669
correct initialization of the legacy bridge
StanislavBreadless Dec 30, 2024
7994924
lint fix
StanislavBreadless Dec 30, 2024
a47ba46
fix genesis params
StanislavBreadless Dec 30, 2024
a9b65be
Merge pull request #3408 from matter-labs/sb-sync-sls-main
StanislavBreadless Dec 31, 2024
ed83709
chore: Remove some of the wrong changes (#3417)
StanislavBreadless Jan 2, 2025
eef8498
message root changes
kelemeno Jan 2, 2025
dbb468e
Merge branch 'sync-layer-stable' of ssh://github.com/matter-labs/zksy…
kelemeno Jan 3, 2025
e35b823
Merge branch 'sync-layer-stable' of github.com:matter-labs/zksync-era…
kelemeno Jan 3, 2025
66fe82d
sync with main
StanislavBreadless Jan 5, 2025
13e8d76
make int tests pass
StanislavBreadless Jan 5, 2025
54e8e8a
fix lint
StanislavBreadless Jan 5, 2025
672f56b
fmt
StanislavBreadless Jan 5, 2025
08fe149
artifacts path
kelemeno Jan 5, 2025
1a42a6d
lint
kelemeno Jan 6, 2025
c04251b
fix lint
StanislavBreadless Jan 6, 2025
52a44fe
Merge pull request #3423 from matter-labs/sb-sync-sls-main-2
StanislavBreadless Jan 6, 2025
c5f63bb
small fixes
kelemeno Jan 6, 2025
b3cfbcb
Merge branch 'sync-layer-stable' of ssh://github.com/matter-labs/zksy…
kelemeno Jan 6, 2025
adef4cd
small fixes
kelemeno Jan 6, 2025
2343882
contracts bump
kelemeno Jan 6, 2025
7583174
feat: sync with main (#3430)
perekopskiy Jan 6, 2025
3399e57
Merge branch 'main' into sync-layer-stable
perekopskiy Jan 7, 2025
c16ace5
chore: sync layer stable clean up (#3431)
perekopskiy Jan 7, 2025
6660569
small changes
kelemeno Jan 7, 2025
c69dac8
feat: sync with main (#3438)
perekopskiy Jan 8, 2025
3ada827
Merge branch 'main' into sync-layer-stable
perekopskiy Jan 8, 2025
4faceb9
fix
perekopskiy Jan 8, 2025
ecf5e24
fix
perekopskiy Jan 8, 2025
664d9c8
remove unused dep
perekopskiy Jan 8, 2025
7305879
upd prover version
perekopskiy Jan 8, 2025
de5bf7c
feat: Added tx hashes to upgrade yaml, disabled no_governance_prepare…
mm-zk Jan 9, 2025
2d5dcd0
sync with upstream
StanislavBreadless Jan 10, 2025
c1b1282
rustfmt
StanislavBreadless Jan 10, 2025
fd42554
fix avail da
StanislavBreadless Jan 10, 2025
ec6a219
fix validium creation
StanislavBreadless Jan 10, 2025
e957f88
autocompletion lint
StanislavBreadless Jan 10, 2025
1f1cbf0
Merge pull request #3450 from matter-labs/sb-sync-main-sls-2
StanislavBreadless Jan 10, 2025
9445a68
feat: Additional gateway upgrade testing (#3449)
StanislavBreadless Jan 10, 2025
9aa8412
chore: Optional gateway via feature flag (#3455)
StanislavBreadless Jan 10, 2025
dca7c1b
added new protocol version
kelemeno Jan 13, 2025
aaa7f03
ci: finalize ci for sync layer stable (#3451)
StanislavBreadless Jan 13, 2025
4a67c91
resolve conflict
perekopskiy Jan 13, 2025
79d04ee
remove ci on push
perekopskiy Jan 13, 2025
abe67fe
try fix vm perf job
perekopskiy Jan 13, 2025
4131537
tmp: add -v
perekopskiy Jan 13, 2025
4ab3202
debug
perekopskiy Jan 13, 2025
821d822
linting
kelemeno Jan 14, 2025
947fa76
feat(contracts): Bump contracts to use new compiler version (#3467)
koloz193 Jan 14, 2025
0c0eb65
try type 2 tx
perekopskiy Jan 14, 2025
0b5f532
revert changelog
perekopskiy Jan 14, 2025
e0927aa
update mutlivm bootloaders commit
perekopskiy Jan 14, 2025
033e054
fix contracts commit
perekopskiy Jan 14, 2025
0cffae9
more type 2
perekopskiy Jan 14, 2025
3334235
more type 2
perekopskiy Jan 14, 2025
d691f7e
fix contracts; run_on_all_chains fee test
perekopskiy Jan 14, 2025
6a11687
try fix
perekopskiy Jan 14, 2025
0a45dcb
fix
perekopskiy Jan 14, 2025
e782fa6
debug
perekopskiy Jan 14, 2025
ece5850
new fflonk commitments
StanislavBreadless Jan 14, 2025
7306ae0
remove debug
perekopskiy Jan 14, 2025
ee14cb4
change folder for the local gateway upgrade testing
StanislavBreadless Jan 14, 2025
6024492
some fixes
kelemeno Jan 17, 2025
ae8ac01
make bytes_to_words pub
kelemeno Jan 17, 2025
bdf3e89
make utils:bytecode pub
kelemeno Jan 17, 2025
8503a7c
dynamic incremental merkle
kelemeno Jan 23, 2025
fd0127b
small changes
kelemeno Jan 29, 2025
46fc1e8
small changes
kelemeno Jan 29, 2025
478451c
selectors
kelemeno Jan 29, 2025
5c1bd4f
Merge branch 'main' of ssh://github.com/matter-labs/zksync-era into k…
kelemeno Jan 29, 2025
1752e4c
fmt
kelemeno Jan 29, 2025
026ab52
lint
kelemeno Jan 29, 2025
415b366
Merge branch 'sync-layer-stable' of ssh://github.com/matter-labs/zksy…
kelemeno Jan 29, 2025
fe74dcc
remove second chains from git
kelemeno Jan 29, 2025
3f2bb14
fix merge issues
kelemeno Jan 29, 2025
cfe912e
load message root into db
kelemeno Jan 30, 2025
9974c5c
import message root and set in bootloader
kelemeno Feb 3, 2025
8a4bd04
fmt
kelemeno Feb 3, 2025
e8acf0f
message root settlement
kelemeno Feb 6, 2025
fe66fb6
linting
kelemeno Feb 6, 2025
c585d1a
move docs from contracts, reorg them
kelemeno Feb 7, 2025
0418eca
linting
kelemeno Feb 7, 2025
c2b27c6
firewall and precommit interop docs
kelemeno Feb 7, 2025
d0a7466
correct terminology
kelemeno Feb 7, 2025
69d3ff3
push fixed interop tests
kelemeno Feb 10, 2025
a6c5aca
printing genesis
kelemeno Feb 10, 2025
127d528
docs
kelemeno Feb 11, 2025
565335b
config, linting
kelemeno Feb 11, 2025
282d3ef
Merge branch 'main' of ssh://github.com/matter-labs/zksync-era into k…
kelemeno Feb 11, 2025
9d0cd44
fmt
kelemeno Feb 11, 2025
8cd0491
Fixes for supporting the modern foundry (#3596)
Deniallugo Feb 11, 2025
12a4a37
message root as vec
kelemeno Feb 11, 2025
3646641
fmt cargo lock
kelemeno Feb 11, 2025
1b97507
some linting and cleanup
kelemeno Feb 11, 2025
5625959
fmt
kelemeno Feb 11, 2025
5f3cf90
merkle tree building
kelemeno Feb 11, 2025
370cd63
debugging ci
kelemeno Feb 12, 2025
ff689fc
logging in ci, redoing interop script
kelemeno Feb 12, 2025
7fab769
undo
kelemeno Feb 12, 2025
11b8ab9
bump contracts
kelemeno Feb 12, 2025
bff96fd
docs
kelemeno Feb 12, 2025
1683770
more doc changes
kelemeno Feb 12, 2025
d071126
move things around
kelemeno Feb 12, 2025
e84c0d8
separate out two more examples
kelemeno Feb 12, 2025
0030540
ci(interop): Fix ci for interop (#3605)
Deniallugo Feb 13, 2025
41482e5
remove old images
kelemeno Feb 12, 2025
33fcd46
deleting extra pictures
kelemeno Feb 13, 2025
01ce9ab
another small restructuring
kelemeno Feb 13, 2025
d436a3c
interop center doc
kelemeno Feb 13, 2025
9e71590
split two bridges in two
kelemeno Feb 13, 2025
f3b6665
glossary terms
kelemeno Feb 13, 2025
fec704f
update assettracker
kelemeno Feb 13, 2025
45a7080
links to executor batches
kelemeno Feb 13, 2025
d9d43fa
fixing links ( not all)
kelemeno Feb 15, 2025
9ea5df0
small fixes
kelemeno Feb 15, 2025
6e00d97
links and readme s
kelemeno Feb 15, 2025
e3b22fb
creating main contract readme
kelemeno Feb 15, 2025
005d6e4
rewrote interop overview
kelemeno Feb 18, 2025
e4e487f
small typo
kelemeno Feb 18, 2025
a7f9786
small fixes to interop trigger doc
kelemeno Feb 18, 2025
0431078
some further small fixes
kelemeno Feb 18, 2025
3e009fb
small asset tracker doc changes
kelemeno Feb 26, 2025
e9d4cb3
message root as vec in db
kelemeno Feb 13, 2025
3406413
dependency message root importing
kelemeno Feb 20, 2025
4481331
interop fixes, l2 standard trigger
kelemeno Feb 20, 2025
061c350
bump contract
kelemeno Feb 20, 2025
614a814
cut the encoding version when decoding
kelemeno Feb 25, 2025
d75f41d
add asset tracker support
kelemeno Feb 26, 2025
5330414
lint
kelemeno Feb 26, 2025
adac266
Merge branch 'main' of ssh://github.com/matter-labs/zksync-era into k…
kelemeno Feb 27, 2025
e54bef1
small merge issue
kelemeno Feb 27, 2025
184453e
generate genesis in config for speed
kelemeno Feb 27, 2025
f3da76a
fix dev generate genesis
kelemeno Feb 27, 2025
b285da3
generate genesis fix 2
kelemeno Feb 27, 2025
63a0ce2
print path
kelemeno Feb 27, 2025
eca8af2
next generate genesis attempt
kelemeno Feb 27, 2025
6c50951
generate genesis in CI 5
kelemeno Feb 27, 2025
f8004fe
6
kelemeno Feb 27, 2025
444ff7c
7, its a parsing issue
kelemeno Feb 27, 2025
29f263b
extra space
kelemeno Feb 27, 2025
c1c3bc0
try removing more spaces
kelemeno Feb 27, 2025
1f05414
formatting
kelemeno Feb 27, 2025
47fa09f
add back spaces
kelemeno Feb 27, 2025
1b1259e
remove tabs
kelemeno Feb 27, 2025
b502600
no new lines
kelemeno Feb 27, 2025
a45da2a
different sections
kelemeno Feb 27, 2025
1f29a2f
ecosystem only
kelemeno Feb 27, 2025
3924d81
extra true
kelemeno Feb 27, 2025
74f5dc1
pipe
kelemeno Feb 27, 2025
ead5302
continue on error
kelemeno Feb 27, 2025
7bd6b79
single dev
kelemeno Feb 27, 2025
ed3bb31
delete config
kelemeno Feb 28, 2025
1d57956
add file name
kelemeno Feb 28, 2025
9a06265
Merge branch 'main' of ssh://github.com/matter-labs/zksync-era into k…
kelemeno Feb 28, 2025
8f8c0ba
Merge branch 'main' of ssh://github.com/matter-labs/zksync-era into k…
kelemeno Mar 5, 2025
5e623de
add gw chain folder
kelemeno Mar 5, 2025
901ca0e
lint
kelemeno Mar 5, 2025
80fc415
protocol version
kelemeno Mar 5, 2025
45c210a
skip some tests, only initialize ecosystem
kelemeno Mar 5, 2025
e3ba165
lint
kelemeno Mar 5, 2025
f459778
gw chain is part of ecosystem, en build issue
kelemeno Mar 5, 2025
6f5c5db
remove asset tracker balance check for now
kelemeno Mar 5, 2025
206b664
lint
kelemeno Mar 5, 2025
e04da6b
fix interop on GW issue locally
kelemeno Mar 6, 2025
0127052
bump contracts
kelemeno Mar 6, 2025
dbbf797
disable attester committe
kelemeno Mar 6, 2025
864153f
some cleanup
kelemeno Mar 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 26 additions & 0 deletions .github/scripts/interop.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/bash
# to use this properly comment out the section that fails the node if the bootloader has is wrong in genesis/src/lib.rs


zkstack dev clean containers && zkstack up -o false
zkstack dev contracts

zkstack dev generate-genesis

zkstack ecosystem init --dev --observability=false \
--update-submodules false

zkstack chain convert-to-gateway --chain gateway --ignore-prerequisites
zkstack server --ignore-prerequisites --chain gateway &> ./gateway.log &

zkstack server wait --ignore-prerequisites --verbose --chain gateway
zkstack chain migrate-to-gateway --chain era --gateway-chain-name gateway
zkstack chain migrate-to-gateway --chain second --gateway-chain-name gateway

zkstack server --ignore-prerequisites --chain era &> ./rollup.log &

zkstack server --ignore-prerequisites --chain second &> ./second.log &

# sleep 20

# zkstack dev test integration -t "Interop" --no-deps --ignore-prerequisites --chain era
363 changes: 176 additions & 187 deletions .github/workflows/ci-core-reusable.yml

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,8 @@ prover/data/keys/plonk_setup_snark_data.bin

# ZK Stack CLI
chains/era/configs/*
chains/gateway/*
chains/second/configs/*
chains/gateway/configs/*
chains/avail/*
configs/*
era-observability/
Expand Down
15 changes: 15 additions & 0 deletions chains/gateway/ZkStack.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
id: 1
name: gateway
chain_id: 506
prover_version: NoProofs
configs: ./chains/gateway/configs/
rocks_db_path: ./chains/gateway/db/
external_node_config_path: null
artifacts_path: ./chains/gateway/artifacts/
l1_batch_commit_data_generator_mode: Rollup
base_token:
address: '0x0000000000000000000000000000000000000001'
nominator: 1
denominator: 1
wallet_creation: Localhost
evm_emulator: false
Empty file added chains/gateway/configs/.gitkeep
Empty file.
15 changes: 15 additions & 0 deletions chains/second/ZkStack.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
id: 2
name: second
chain_id: 505
prover_version: NoProofs
configs: ./chains/second/configs/
rocks_db_path: ./chains/second/db/
external_node_config_path: null
artifacts_path: ./chains/second/artifacts/
l1_batch_commit_data_generator_mode: Rollup
base_token:
address: '0x0000000000000000000000000000000000000001'
nominator: 1
denominator: 1
wallet_creation: Localhost
evm_emulator: false
Empty file added chains/second/configs/.gitkeep
Empty file.
2 changes: 1 addition & 1 deletion contracts
Submodule contracts updated 597 files
1 change: 1 addition & 0 deletions core/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions core/bin/external_node/src/config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ pub(crate) struct RemoteENConfig {
pub l2_testnet_paymaster_addr: Option<Address>,
pub l2_timestamp_asserter_addr: Option<Address>,
pub l1_wrapped_base_token_store: Option<Address>,
pub l1_message_root_proxy_addr: Option<Address>,
pub base_token_addr: Address,
pub l1_batch_commit_data_generator_mode: L1BatchCommitmentMode,
pub dummy_verifier: bool,
Expand Down Expand Up @@ -219,6 +220,10 @@ impl RemoteENConfig {
.map(|a| a.dummy_verifier)
.unwrap_or_default(),
l2_timestamp_asserter_addr: timestamp_asserter_address,
l1_message_root_proxy_addr: ecosystem_contracts
.as_ref()
.map(|a| a.message_root_proxy_addr)
.flatten(),
})
}

Expand All @@ -243,6 +248,7 @@ impl RemoteENConfig {
l1_wrapped_base_token_store: None,
dummy_verifier: true,
l2_timestamp_asserter_addr: None,
l1_message_root_proxy_addr: None,
}
}
}
Expand Down Expand Up @@ -1497,6 +1503,7 @@ impl From<&ExternalNodeConfig> for InternalApiConfig {
l1_bytecodes_supplier_addr: config.remote.l1_bytecodes_supplier_addr,
l1_wrapped_base_token_store: config.remote.l1_wrapped_base_token_store,
l1_bridgehub_proxy_addr: config.remote.l1_bridgehub_proxy_addr,
message_root_proxy_addr: config.remote.l1_message_root_proxy_addr,
l1_state_transition_proxy_addr: config.remote.l1_state_transition_proxy_addr,
l1_transparent_proxy_admin_addr: config.remote.l1_transparent_proxy_admin_addr,
l1_diamond_proxy_addr: config.l1_diamond_proxy_address(),
Expand Down
2 changes: 2 additions & 0 deletions core/bin/external_node/src/node_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,8 @@ impl ExternalNodeBuilder {
self.config.required.eth_client_url.clone(),
self.config.required.gateway_chain_id,
self.config.optional.gateway_url.clone(),
None,
None, // kl todo add dependency chains here
);
self.node.add_layer(query_eth_client_layer);
Ok(self)
Expand Down
2 changes: 1 addition & 1 deletion core/bin/genesis_generator/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ use zksync_types::{
protocol_version::ProtocolSemanticVersion, url::SensitiveUrl, ProtocolVersionId,
};

const DEFAULT_GENESIS_FILE_PATH: &str = "./etc/env/file_based/genesis.yaml";
const DEFAULT_GENESIS_FILE_PATH: &str = "../etc/env/file_based/genesis.yaml";

#[derive(Debug, Parser)]
#[command(author = "Matter Labs", version, about = "Genesis config generator", long_about = None)]
Expand Down
2 changes: 2 additions & 0 deletions core/bin/zksync_server/src/node_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,8 @@ impl MainNodeBuilder {
.as_ref()
.map(|c| c.gateway_chain_id),
eth_config.gateway_rpc_url,
eth_config.dependency_chain_id,
eth_config.dependency_chain_rpc_url,
);
self.node.add_layer(query_eth_client_layer);
Ok(self)
Expand Down
15 changes: 13 additions & 2 deletions core/lib/basic_types/src/protocol_version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,17 @@ pub enum ProtocolVersionId {
Version25,
Version26,
Version27,
Version28,
Version29,
}

impl ProtocolVersionId {
pub const fn latest() -> Self {
Self::Version26
Self::Version28
}

pub const fn next() -> Self {
Self::Version27
Self::Version29
}

pub fn try_from_packed_semver(packed_semver: U256) -> Result<Self, String> {
Expand Down Expand Up @@ -124,6 +126,8 @@ impl ProtocolVersionId {
ProtocolVersionId::Version25 => VmVersion::Vm1_5_0IncreasedBootloaderMemory,
ProtocolVersionId::Version26 => VmVersion::VmGateway,
ProtocolVersionId::Version27 => VmVersion::VmGateway,
ProtocolVersionId::Version28 => VmVersion::VmInterop,
ProtocolVersionId::Version29 => VmVersion::VmInterop,
}
}

Expand Down Expand Up @@ -153,6 +157,11 @@ impl ProtocolVersionId {
self < &Self::Version27
}

pub fn is_pre_interop(&self) -> bool {
// note fflonk version has not been merged yet
self < &Self::Version27
}

pub fn is_1_4_0(&self) -> bool {
self >= &ProtocolVersionId::Version18 && self < &ProtocolVersionId::Version20
}
Expand Down Expand Up @@ -298,6 +307,8 @@ impl From<ProtocolVersionId> for VmVersion {
ProtocolVersionId::Version25 => VmVersion::Vm1_5_0IncreasedBootloaderMemory,
ProtocolVersionId::Version26 => VmVersion::VmGateway,
ProtocolVersionId::Version27 => VmVersion::VmGateway,
ProtocolVersionId::Version28 => VmVersion::VmInterop,
ProtocolVersionId::Version29 => VmVersion::VmInterop,
}
}
}
Expand Down
1 change: 1 addition & 0 deletions core/lib/basic_types/src/vm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ pub enum VmVersion {
Vm1_5_0SmallBootloaderMemory,
Vm1_5_0IncreasedBootloaderMemory,
VmGateway,
VmInterop,
}

impl VmVersion {
Expand Down
2 changes: 2 additions & 0 deletions core/lib/config/src/configs/contracts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ pub struct EcosystemContracts {
// while on the server side for consistency with the conventions, where the prefix denotes
// the location of the contracts we call it `l1_wrapped_base_token_store`
pub l1_wrapped_base_token_store: Option<Address>,
pub message_root_proxy_addr: Option<Address>,
}

impl EcosystemContracts {
Expand All @@ -23,6 +24,7 @@ impl EcosystemContracts {
transparent_proxy_admin_addr: Address::repeat_byte(0x15),
l1_bytecodes_supplier_addr: Some(Address::repeat_byte(0x16)),
l1_wrapped_base_token_store: Some(Address::repeat_byte(0x17)),
message_root_proxy_addr: Some(Address::repeat_byte(0x18)),
}
}
}
Expand Down
4 changes: 3 additions & 1 deletion core/lib/config/src/configs/secrets.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use anyhow::Context;
use zksync_basic_types::{secrets::APIKey, url::SensitiveUrl};
use zksync_basic_types::{secrets::APIKey, url::SensitiveUrl, SLChainId};

use crate::configs::{
consensus::ConsensusSecrets,
Expand All @@ -17,6 +17,8 @@ pub struct DatabaseSecrets {
pub struct L1Secrets {
pub l1_rpc_url: SensitiveUrl,
pub gateway_rpc_url: Option<SensitiveUrl>,
pub dependency_chain_rpc_url: Option<SensitiveUrl>,
pub dependency_chain_id: Option<SLChainId>,
}

#[derive(Debug, Clone, PartialEq)]
Expand Down
5 changes: 5 additions & 0 deletions core/lib/config/src/testonly.rs
Original file line number Diff line number Diff line change
Expand Up @@ -763,6 +763,7 @@ impl Distribution<configs::EcosystemContracts> for EncodeDist {
transparent_proxy_admin_addr: rng.gen(),
l1_bytecodes_supplier_addr: rng.gen(),
l1_wrapped_base_token_store: rng.gen(),
message_root_proxy_addr: rng.gen(),
}
}
}
Expand Down Expand Up @@ -860,6 +861,10 @@ impl Distribution<configs::secrets::L1Secrets> for EncodeDist {
L1Secrets {
l1_rpc_url: format!("localhost:{}", rng.gen::<u16>()).parse().unwrap(),
gateway_rpc_url: Some(format!("localhost:{}", rng.gen::<u16>()).parse().unwrap()),
dependency_chain_rpc_url: Some(
format!("localhost:{}", rng.gen::<u16>()).parse().unwrap(),
),
dependency_chain_id: Some(SLChainId(rng.gen())),
}
}
}
Expand Down
34 changes: 34 additions & 0 deletions core/lib/constants/src/contracts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,40 @@ pub const L2_WRAPPED_BASE_TOKEN_IMPL: Address = H160([
0x00, 0x01, 0x00, 0x07,
]);

pub const L2_INTEROP_CENTER_ADDRESS: Address = H160([
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x08,
]);
pub const L2_INTEROP_HANDLER_ADDRESS: Address = H160([
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x09,
]);

pub const INTEROP_ACCOUNT_ADDRESS: Address = H160([
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x0a,
]);

pub const L2_MESSAGE_ROOT_STORAGE_ADDRESS: Address = H160([
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x0b,
]);

pub const L2_MESSAGE_VERIFICATION_ADDRESS: Address = H160([
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x0c,
]);

pub const L2_STANDARD_TRIGGER_ACCOUNT_ADDRESS: Address = H160([
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x0d,
]);

pub const L2_ASSET_TRACKER_ADDRESS: Address = H160([
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x0e,
]);

pub const ERC20_TRANSFER_TOPIC: H256 = H256([
221, 242, 82, 173, 27, 226, 200, 155, 105, 194, 176, 104, 252, 55, 141, 170, 149, 43, 167, 241,
99, 196, 161, 22, 40, 245, 90, 77, 245, 35, 179, 239,
Expand Down
25 changes: 23 additions & 2 deletions core/lib/contracts/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ pub fn read_bytecode_from_path(
}

pub fn read_sys_contract_bytecode(directory: &str, name: &str, lang: ContractLanguage) -> Vec<u8> {
DEFAULT_SYSTEM_CONTRACTS_REPO.read_sys_contract_bytecode(directory, name, lang)
DEFAULT_SYSTEM_CONTRACTS_REPO.read_sys_contract_bytecode(directory, name, None, lang)
}

static DEFAULT_SYSTEM_CONTRACTS_REPO: Lazy<SystemContractsRepo> =
Expand Down Expand Up @@ -313,6 +313,7 @@ impl SystemContractsRepo {
&self,
directory: &str,
name: &str,
object_name: Option<&str>,
lang: ContractLanguage,
) -> Vec<u8> {
match lang {
Expand All @@ -337,13 +338,17 @@ impl SystemContractsRepo {
// easily get rid of the old lookup, because old foundry-zksync is compiled into `zk_environment`
// image. Once `foundry-zksync` is updated to at least 0.0.4, we can remove folder names from the
// `SYSTEM_CONTRACT_LIST` for yul contracts and merge two lookups below.
// in foundry-zksync starting from 0.0.8 json file name corresponds to the object inside the yul component
let object_name = object_name.unwrap_or(name);
let possible_paths = [
self.root.join(format!("zkout/{0}.yul/{0}.json", name)),
self.root
.join(format!("zkout/{0}{1}.yul/{1}.json", directory, name)),
self.root.join(format!(
"zkout/{name}.yul/contracts-preprocessed/{directory}/{name}.yul.json",
)),
self.root
.join(format!("zkout/{name}.yul/{object_name}.json",)),
];

for path in &possible_paths {
Expand Down Expand Up @@ -384,7 +389,12 @@ impl SystemContractsRepo {
}

pub fn read_bootloader_code(bootloader_type: &str) -> Vec<u8> {
read_sys_contract_bytecode("bootloader", bootloader_type, ContractLanguage::Yul)
DEFAULT_SYSTEM_CONTRACTS_REPO.read_sys_contract_bytecode(
"bootloader",
bootloader_type,
Some("Bootloader"),
ContractLanguage::Yul,
)
}

/// Reads zbin bytecode from a given path, relative to workspace location.
Expand Down Expand Up @@ -553,6 +563,12 @@ impl BaseSystemContracts {
BaseSystemContracts::load_with_bootloader(bootloader_bytecode)
}

pub fn playground_interop() -> Self {
let bootloader_bytecode: Vec<u8> = read_bootloader_code("playground_batch");
// kl todo once contracts are stabilized move to etc/multivm
BaseSystemContracts::load_with_bootloader(bootloader_bytecode)
}

pub fn estimate_gas_pre_virtual_blocks() -> Self {
let bootloader_bytecode = read_zbin_bytecode(
"etc/multivm_bootloaders/vm_1_3_2/fee_estimate.yul/fee_estimate.yul.zbin",
Expand Down Expand Up @@ -630,6 +646,11 @@ impl BaseSystemContracts {
BaseSystemContracts::load_with_bootloader(bootloader_bytecode)
}

pub fn estimate_gas_interop() -> Self {
let bootloader_bytecode = read_bootloader_code("fee_estimate");
BaseSystemContracts::load_with_bootloader(bootloader_bytecode)
}

pub fn hashes(&self) -> BaseSystemContractsHashes {
BaseSystemContractsHashes {
bootloader: self.bootloader.hash,
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading