Skip to content
This repository has been archived by the owner on Aug 2, 2024. It is now read-only.

✨ v0.11 calldata parsing #1287

Merged
merged 34 commits into from
Dec 26, 2023
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
be1ea84
✨ v0.11 calldata parsing
EvolveArt Nov 27, 2023
057cb6a
fix: add std to deps
EvolveArt Nov 30, 2023
46b15f7
fix: num addrs accessed
EvolveArt Dec 2, 2023
ee54cec
prettier
EvolveArt Dec 3, 2023
5576391
taplo
EvolveArt Dec 3, 2023
95f4f78
✨ check if contract exists
EvolveArt Dec 4, 2023
ed58f71
taplo
EvolveArt Dec 4, 2023
c7723cc
fix: read data from commitment-state-diff
EvolveArt Dec 5, 2023
1853e31
fix: use starknet block hash in da db
EvolveArt Dec 5, 2023
74ebcd8
fix: use thin state diff
EvolveArt Dec 6, 2023
f080913
Merge remote-tracking branch 'upstream/main' into feat/da-fixes
EvolveArt Dec 6, 2023
77bd840
taplo
EvolveArt Dec 6, 2023
31d0c09
fix: cli requires
EvolveArt Dec 7, 2023
9946dd9
fix: typo
EvolveArt Dec 7, 2023
a218ee7
wip: da tests
EvolveArt Dec 7, 2023
45c9697
fix: ethereum conf
EvolveArt Dec 7, 2023
fcb02c7
feat: zaun submodule
EvolveArt Dec 8, 2023
1738ffd
ci: start/stop da_devnet
EvolveArt Dec 8, 2023
7bec4ae
fix: script
EvolveArt Dec 8, 2023
eea0fbf
fix: panick
EvolveArt Dec 8, 2023
7cd4dbd
fix: format
EvolveArt Dec 8, 2023
0decab2
feat: da layer test
EvolveArt Dec 12, 2023
3ab3042
feat: da_client fixture + docs
EvolveArt Dec 13, 2023
ea8372f
fix: build
EvolveArt Dec 13, 2023
6b723f1
fix: BlockDAData struct
EvolveArt Dec 13, 2023
37ca3e7
fix: taplo + clean
EvolveArt Dec 13, 2023
0f46902
fix: dependencies
EvolveArt Dec 13, 2023
e1b1766
fix: confs paths
EvolveArt Dec 13, 2023
de77779
fix: build + test
EvolveArt Dec 13, 2023
dc7e87a
fix: review
EvolveArt Dec 14, 2023
d16cdbc
Merge branch 'main' into feat/da-fixes
EvolveArt Dec 14, 2023
72f9033
fix: taplo
EvolveArt Dec 14, 2023
aadec6d
Merge remote-tracking branch 'upstream/main' into feat/da-fixes
EvolveArt Dec 18, 2023
c52621a
Merge branch 'main' into feat/da-fixes
EvolveArt 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
5 changes: 0 additions & 5 deletions Cargo.lock

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

104 changes: 54 additions & 50 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,54 +1,54 @@
[workspace]
resolver = "2"
members = [
"crates/node",
"crates/runtime",
"crates/pallets/starknet/runtime_api/",
"crates/pallets/starknet",
"crates/primitives/digest-log",
"crates/primitives/transactions",
"crates/primitives/felt",
"crates/primitives/hashers",
"crates/primitives/fee",
"crates/primitives/state",
"crates/primitives/block",
"crates/primitives/sequencer-address",
"crates/primitives/storage",
"crates/primitives/commitments",
"crates/primitives/chain-id",
"crates/client/db",
"crates/client/rpc-core",
"crates/client/rpc",
"crates/client/mapping-sync",
"crates/client/storage",
"crates/client/commitment-state-diff",
"starknet-rpc-test",
"da-test",
"crates/node",
"crates/runtime",
"crates/pallets/starknet/runtime_api/",
"crates/pallets/starknet",
"crates/primitives/digest-log",
"crates/primitives/transactions",
"crates/primitives/felt",
"crates/primitives/hashers",
"crates/primitives/fee",
"crates/primitives/state",
"crates/primitives/block",
"crates/primitives/sequencer-address",
"crates/primitives/storage",
"crates/primitives/commitments",
"crates/primitives/chain-id",
"crates/client/db",
"crates/client/rpc-core",
"crates/client/rpc",
"crates/client/mapping-sync",
"crates/client/storage",
"crates/client/commitment-state-diff",
"starknet-rpc-test",
"da-test",
]
# All previous except for `starknet-rpc-test`
# We don't want `cargo test` to trigger its tests
EvolveArt marked this conversation as resolved.
Show resolved Hide resolved
default-members = [
"crates/node",
"crates/runtime",
"crates/pallets/starknet/runtime_api/",
"crates/pallets/starknet",
"crates/primitives/digest-log",
"crates/primitives/transactions",
"crates/primitives/felt",
"crates/primitives/hashers",
"crates/primitives/fee",
"crates/primitives/state",
"crates/primitives/block",
"crates/primitives/sequencer-address",
"crates/primitives/storage",
"crates/primitives/commitments",
"crates/primitives/chain-id",
"crates/client/db",
"crates/client/rpc-core",
"crates/client/rpc",
"crates/client/mapping-sync",
"crates/client/storage",
"crates/client/commitment-state-diff",
"crates/node",
"crates/runtime",
"crates/pallets/starknet/runtime_api/",
"crates/pallets/starknet",
"crates/primitives/digest-log",
"crates/primitives/transactions",
"crates/primitives/felt",
"crates/primitives/hashers",
"crates/primitives/fee",
"crates/primitives/state",
"crates/primitives/block",
"crates/primitives/sequencer-address",
"crates/primitives/storage",
"crates/primitives/commitments",
"crates/primitives/chain-id",
"crates/client/db",
"crates/client/rpc-core",
"crates/client/rpc",
"crates/client/mapping-sync",
"crates/client/storage",
"crates/client/commitment-state-diff",
]

[profile.release]
Expand Down Expand Up @@ -110,7 +110,7 @@ sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "rel

# Substrate client dependencies
sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.3.0", features = [
"rocksdb",
"rocksdb",
] }
sc-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.3.0" }
sc-network-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.3.0" }
Expand Down Expand Up @@ -179,8 +179,8 @@ madara-runtime = { path = "crates/runtime" }
# Starknet dependencies
# Cairo Virtual Machine
cairo-vm = { git = "https://github.com/keep-starknet-strange/cairo-rs", branch = "no_std-support-21eff70", default-features = false, features = [
"cairo-1-hints",
"parity-scale-codec",
"cairo-1-hints",
"parity-scale-codec",
] }
starknet-crypto = { git = "https://github.com/xJonathanLEI/starknet-rs.git", rev = "a35ce22", default-features = false }
starknet-core = { git = "https://github.com/xJonathanLEI/starknet-rs.git", rev = "a35ce22", default-features = false }
Expand All @@ -191,11 +191,11 @@ starknet-accounts = { git = "https://github.com/xJonathanLEI/starknet-rs.git", r
starknet-contract = { git = "https://github.com/xJonathanLEI/starknet-rs.git", rev = "a35ce22", default-features = false }

blockifier = { git = "https://github.com/keep-starknet-strange/blockifier", branch = "no_std-support-7578442", default-features = false, features = [
"parity-scale-codec",
"parity-scale-codec",
] }
starknet_api = { git = "https://github.com/keep-starknet-strange/starknet-api", branch = "no_std-support-dc83f05", features = [
"testing",
"parity-scale-codec",
"testing",
"parity-scale-codec",
], default-features = false }

# Cairo lang
Expand Down Expand Up @@ -240,6 +240,10 @@ url = "2.4.1"
hashbrown = "0.14.2"
tokio = "1.34.0"
openssl = { version = "0.10", features = ["vendored"] }
ethers = "2.0.7"
subxt = "0.29"
assert_matches = "1.5.0"
async-lock = "3.1.0"

[patch."https://github.com/w3f/ring-vrf"]
bandersnatch_vrfs = { git = "https://github.com/w3f/ring-vrf?rev=3ddc20", version = "0.0.4", rev = "3ddc20" }
2 changes: 1 addition & 1 deletion crates/client/commitment-state-diff/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ sp-runtime = { workspace = true, default-features = true }
mp-digest-log = { workspace = true, default-features = true }
mp-hashers = { workspace = true, default-features = true }
mp-storage = { workspace = true, default-features = true }
pallet-starknet = { workspace = true }
pallet-starknet = { workspace = true, default-features = true }
pallet-starknet-runtime-api = { workspace = true, default-features = true }

# Starknet
Expand Down
24 changes: 14 additions & 10 deletions crates/client/data-availability/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,21 @@ targets = ["x86_64-unknown-linux-gnu"]
[dependencies]
anyhow = { workspace = true }
async-trait = { workspace = true }
clap = { workspace = true, features = ["derive"] }
clap = { workspace = true, features = ["derive"], optional = true }
futures = "0.3.21"
indexmap = { workspace = true }
jsonrpsee = { version = "0.20.0", features = [
"http-client",
"ws-client",
"macros",
"http-client",
"ws-client",
"macros",
] }
log = "0.4.19"
reqwest = { version = "0.11.18", features = ["blocking", "json"] }
serde = { workspace = true }
serde_json = { workspace = true }
serde = { workspace = true, default-features = true }
serde_json = { workspace = true, default-features = true }
thiserror = { workspace = true }
tokio = { version = "1", features = ["full"] }
url = "2.4.0"
url = { workspace = true }
uuid = { version = "1.4.0", features = ["v4", "serde"] }

# Substrate
Expand All @@ -43,16 +43,16 @@ sp-runtime = { workspace = true, features = ["std"] }
blockifier = { workspace = true, default-features = true }
mc-commitment-state-diff = { workspace = true, default-features = true }
mc-db = { workspace = true, default-features = true }
pallet-starknet-runtime-api = { workspace = true }
pallet-starknet-runtime-api = { workspace = true, features = ["std"] }
starknet_api = { workspace = true, default-features = true }

# Ethereum
ethers = "2.0.7"
ethers = { workspace = true }

# Avail subxt dependency
avail-subxt = { git = "https://github.com/availproject/avail", version = "0.4.0", tag = "v1.8.0.0" }
sp-keyring = { workspace = true }
subxt = "0.29"
subxt = { workspace = true }

# Celestia
celestia-rpc = { git = "https://github.com/eigerco/celestia-node-rs", rev = "bd6394b66b11065c543ab3f19fd66000a72b6236" }
Expand All @@ -62,3 +62,7 @@ celestia-types = { git = "https://github.com/eigerco/celestia-node-rs", rev = "b
mp-digest-log = { workspace = true, default-features = true }
mp-hashers = { workspace = true, default-features = true }
mp-storage = { workspace = true, default-features = true }

[features]
default = []
clap = ["dep:clap"]
11 changes: 10 additions & 1 deletion crates/client/data-availability/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,16 @@ use utils::state_diff_to_calldata;
pub struct DataAvailabilityWorker<B, C, H>(PhantomData<(B, C, H)>);
pub struct DataAvailabilityWorkerProving<B>(PhantomData<B>);

#[derive(Debug, Copy, Clone, PartialEq, clap::ValueEnum)]
#[cfg(feature = "clap")]
#[derive(clap::ValueEnum, Debug, Copy, Clone, PartialEq)]
EvolveArt marked this conversation as resolved.
Show resolved Hide resolved
pub enum DaLayer {
Celestia,
Ethereum,
Avail,
}

#[cfg(not(feature = "clap"))]
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum DaLayer {
Celestia,
Ethereum,
Expand Down
8 changes: 4 additions & 4 deletions crates/client/db/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ version.workspace = true
edition.workspace = true
description = "Starknet database backend"
authors = [
"Timothée Delabrouille <https://github.com/tdelabro>",
"Substrate DevHub <https://github.com/substrate-developer-hub>",
"Timothée Delabrouille <https://github.com/tdelabro>",
"Substrate DevHub <https://github.com/substrate-developer-hub>",
]
homepage = "https://github.com/keep-starknet-strange/madara"
license = "MIT"
Expand All @@ -16,13 +16,13 @@ repository = "https://github.com/keep-starknet-strange/madara"
targets = ["x86_64-unknown-linux-gnu"]

[dependencies]
ethers = "2.0.10"
ethers = { workspace = true }
kvdb-rocksdb = { version = "0.19.0", optional = true }
log = { workspace = true, default-features = true }
parity-db = { version = "0.4.12", optional = true }
sc-client-db = { workspace = true, default-features = true }
scale-codec = { workspace = true, default-features = true, features = [
"derive",
"derive",
] }
sp-core = { workspace = true, default-features = true }
sp-database = { workspace = true, default-features = true }
Expand Down
12 changes: 6 additions & 6 deletions crates/node/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ version.workspace = true
edition.workspace = true
description = "Madara node."
authors = [
"Abdelhamid Bakhta <@keep-starknet-strange>",
"Substrate DevHub <https://github.com/substrate-developer-hub>",
"Abdelhamid Bakhta <@keep-starknet-strange>",
"Substrate DevHub <https://github.com/substrate-developer-hub>",
]
homepage = "https://github.com/keep-starknet-strange/madara"
license = "MIT"
Expand Down Expand Up @@ -80,7 +80,7 @@ blockifier = { workspace = true }
hex = { workspace = true }
madara-runtime = { workspace = true }
mc-commitment-state-diff = { workspace = true }
mc-data-availability = { workspace = true }
mc-data-availability = { workspace = true, features = ["clap"] }
mc-db = { workspace = true }
mc-mapping-sync = { workspace = true }
mc-rpc = { workspace = true }
Expand Down Expand Up @@ -109,9 +109,9 @@ substrate-build-script-utils = { workspace = true }
default = []
# Dependencies that are only required if runtime benchmarking should be build.
runtime-benchmarks = [
"madara-runtime/runtime-benchmarks",
"frame-benchmarking/runtime-benchmarks",
"frame-benchmarking-cli/runtime-benchmarks",
"madara-runtime/runtime-benchmarks",
"frame-benchmarking/runtime-benchmarks",
"frame-benchmarking-cli/runtime-benchmarks",
]
# Enable features that allow the runtime to be tried and debugged. Name might be subject to change
# in the near future.
Expand Down
37 changes: 16 additions & 21 deletions da-test/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,26 @@ edition = "2021"

[dependencies]
tdelabro marked this conversation as resolved.
Show resolved Hide resolved

anyhow = "1.0.72"
assert_matches = "1.5.0"
async-lock = "3.1.0"
clap = { workspace = true, features = ["derive"] }
ethers = "2.0.7"
flate2 = { workspace = true }
lazy_static = "1.4.0"
reqwest = "0.11.18"
rstest = "0.18.1"
serde = { version = "1.0.192", features = ["derive"] }
serde_json = "1.0.108"
starknet-accounts = { workspace = true }
starknet-contract = { workspace = true }
starknet-core = { workspace = true }
starknet-crypto = { workspace = true }
starknet-ff = { workspace = true }
starknet-providers = { workspace = true }
anyhow = { workspace = true, default-features = true }
assert_matches = { workspace = true, default-features = true }
async-lock = { workspace = true, default-features = true }
clap = { workspace = true, features = ["std", "derive"] }
ethers = { workspace = true, default-features = true }
flate2 = { workspace = true, default-features = true }
lazy_static = { workspace = true, default-features = true }
reqwest = { workspace = true, default-features = true }
rstest = { workspace = true, default-features = true }
serde = { workspace = true, default-features = true }
serde_json = { workspace = true, default-features = true }
starknet-ff = { workspace = true, default-features = true }
starknet-providers = { workspace = true, default-features = true }
starknet-rpc-test = { path = "../starknet-rpc-test" }
starknet-signers = { workspace = true }
thiserror = { workspace = true }
tokio = { version = "1.34.0", features = ["rt", "macros", "parking_lot"] }
url = "2.4.1"
tokio = { workspace = true, features = ["rt", "macros", "parking_lot"] }
url = { workspace = true }

# madara
mc-data-availability = { workspace = true }
mc-data-availability = { workspace = true, features = ["clap"] }

[[test]]
name = "da_state_diffs"
Expand Down
6 changes: 3 additions & 3 deletions da-test/src/constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::path::PathBuf;
use lazy_static::lazy_static;

lazy_static! {
pub static ref ETHEREUM_DA_CONFIG: PathBuf = PathBuf::from("examples/da-confs/ethereum.json");
pub static ref CELESTIA_DA_CONFIG: PathBuf = PathBuf::from("examples/da-confs/celestia.json");
pub static ref AVAIL_DA_CONFIG: PathBuf = PathBuf::from("examples/da-confs/avail.json");
pub static ref ETHEREUM_DA_CONFIG: PathBuf = PathBuf::from("../examples/da-confs/ethereum.json");
pub static ref CELESTIA_DA_CONFIG: PathBuf = PathBuf::from("../examples/da-confs/celestia.json");
pub static ref AVAIL_DA_CONFIG: PathBuf = PathBuf::from("../examples/da-confs/avail.json");
}
EvolveArt marked this conversation as resolved.
Show resolved Hide resolved
4 changes: 2 additions & 2 deletions da-test/state_diffs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use mc_data_availability::DaClient;
use rstest::rstest;
use starknet_ff::FieldElement;
use starknet_providers::Provider;
use starknet_rpc_test::constants::ARGENT_CONTRACT_ADDRESS;
use starknet_rpc_test::constants::{ARGENT_CONTRACT_ADDRESS, SIGNER_PRIVATE};
use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient};
use starknet_rpc_test::utils::{build_single_owner_account, AccountActions};
use starknet_rpc_test::Transaction;
Expand All @@ -24,7 +24,7 @@ async fn publish_to_da_layer(
let (txs, block_number) = {
let mut madara_write_lock = madara.write().await;
// using incorrect private key to generate the wrong signature
let account = build_single_owner_account(&rpc, "0x1234", ARGENT_CONTRACT_ADDRESS, true);
let account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true);

let txs = madara_write_lock
.create_block_with_txs(vec![Transaction::Execution(account.transfer_tokens(
Expand Down