diff --git a/Cargo.lock b/Cargo.lock index c3785f124d..27fb02c49d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2435,7 +2435,7 @@ dependencies = [ "anyhow", "async-trait", "cainome-cairo-serde 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.11)", - "cainome-cairo-serde-derive", + "cainome-cairo-serde-derive 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.11)", "cainome-parser 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.11)", "cainome-rs 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.11)", "cainome-rs-macro 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.11)", @@ -2453,6 +2453,32 @@ dependencies = [ "url", ] +[[package]] +name = "cainome" +version = "0.4.11" +source = "git+https://github.com/cartridge-gg/cainome?tag=v0.4.12#d83de9302e77a5eb1bad3c827bf91b96614d0ebe" +dependencies = [ + "anyhow", + "async-trait", + "cainome-cairo-serde 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", + "cainome-cairo-serde-derive 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", + "cainome-parser 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", + "cainome-rs 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", + "cainome-rs-macro 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", + "camino", + "clap", + "clap_complete", + "convert_case 0.6.0", + "serde", + "serde_json", + "starknet", + "starknet-types-core", + "thiserror 1.0.63", + "tracing", + "tracing-subscriber", + "url", +] + [[package]] name = "cainome-cairo-serde" version = "0.1.0" @@ -2465,6 +2491,18 @@ dependencies = [ "thiserror 1.0.63", ] +[[package]] +name = "cainome-cairo-serde" +version = "0.1.0" +source = "git+https://github.com/cartridge-gg/cainome?tag=v0.4.12#d83de9302e77a5eb1bad3c827bf91b96614d0ebe" +dependencies = [ + "num-bigint", + "serde", + "serde_with", + "starknet", + "thiserror 1.0.63", +] + [[package]] name = "cainome-cairo-serde" version = "0.1.0" @@ -2486,6 +2524,17 @@ dependencies = [ "unzip-n", ] +[[package]] +name = "cainome-cairo-serde-derive" +version = "0.1.0" +source = "git+https://github.com/cartridge-gg/cainome?tag=v0.4.12#d83de9302e77a5eb1bad3c827bf91b96614d0ebe" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", + "unzip-n", +] + [[package]] name = "cainome-parser" version = "0.1.0" @@ -2499,6 +2548,19 @@ dependencies = [ "thiserror 1.0.63", ] +[[package]] +name = "cainome-parser" +version = "0.1.0" +source = "git+https://github.com/cartridge-gg/cainome?tag=v0.4.12#d83de9302e77a5eb1bad3c827bf91b96614d0ebe" +dependencies = [ + "convert_case 0.6.0", + "quote", + "serde_json", + "starknet", + "syn 2.0.90", + "thiserror 1.0.63", +] + [[package]] name = "cainome-parser" version = "0.1.0" @@ -2530,6 +2592,24 @@ dependencies = [ "thiserror 1.0.63", ] +[[package]] +name = "cainome-rs" +version = "0.1.0" +source = "git+https://github.com/cartridge-gg/cainome?tag=v0.4.12#d83de9302e77a5eb1bad3c827bf91b96614d0ebe" +dependencies = [ + "anyhow", + "cainome-cairo-serde 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", + "cainome-parser 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", + "camino", + "prettyplease", + "proc-macro2", + "quote", + "serde_json", + "starknet", + "syn 2.0.90", + "thiserror 1.0.63", +] + [[package]] name = "cainome-rs" version = "0.1.0" @@ -2566,6 +2646,24 @@ dependencies = [ "thiserror 1.0.63", ] +[[package]] +name = "cainome-rs-macro" +version = "0.1.0" +source = "git+https://github.com/cartridge-gg/cainome?tag=v0.4.12#d83de9302e77a5eb1bad3c827bf91b96614d0ebe" +dependencies = [ + "anyhow", + "cainome-cairo-serde 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", + "cainome-parser 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", + "cainome-rs 0.1.0 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", + "proc-macro-error", + "proc-macro2", + "quote", + "serde_json", + "starknet", + "syn 2.0.90", + "thiserror 1.0.63", +] + [[package]] name = "cainome-rs-macro" version = "0.1.0" @@ -4506,7 +4604,7 @@ dependencies = [ "anyhow", "assert_matches", "async-trait", - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "camino", "chrono", "convert_case 0.6.0", @@ -4628,7 +4726,7 @@ version = "1.1.1" source = "git+https://github.com/dojoengine/dojo?rev=17cda07a333e8c157c38dc455ad27472bbd75740#17cda07a333e8c157c38dc455ad27472bbd75740" dependencies = [ "anyhow", - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.11)", "crypto-bigint", "hex", "indexmap 2.5.0", @@ -4649,7 +4747,7 @@ name = "dojo-types" version = "1.1.2" dependencies = [ "anyhow", - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "crypto-bigint", "hex", "indexmap 2.5.0", @@ -4689,7 +4787,7 @@ version = "1.1.2" dependencies = [ "anyhow", "async-trait", - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "cairo-lang-starknet-classes", "dojo-types 1.1.2", "futures", @@ -4715,7 +4813,7 @@ name = "dojo-world-abigen" version = "1.1.2" dependencies = [ "anyhow", - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "cairo-lang-starknet", "cairo-lang-starknet-classes", "camino", @@ -7913,7 +8011,7 @@ dependencies = [ "anyhow", "assert_matches", "byte-unit", - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "clap", "clap_complete", "comfy-table", @@ -8304,7 +8402,7 @@ dependencies = [ "alloy-primitives", "anyhow", "assert_matches", - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "dojo-metrics", "dojo-test-utils", "dojo-utils", @@ -13253,7 +13351,7 @@ version = "1.1.2" dependencies = [ "anyhow", "async-trait", - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "cairo-lang-sierra", "cairo-lang-test-plugin", "cairo-lang-test-runner", @@ -13300,7 +13398,7 @@ dependencies = [ "anyhow", "assert_fs", "async-trait", - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "colored", "colored_json", "dojo-test-utils", @@ -14856,7 +14954,7 @@ dependencies = [ name = "torii-grpc" version = "1.1.2" dependencies = [ - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "camino", "crypto-bigint", "dojo-test-utils", @@ -14908,7 +15006,7 @@ dependencies = [ "async-trait", "base64 0.21.7", "bitflags 2.6.0", - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "chrono", "crypto-bigint", "data-url", @@ -15064,7 +15162,7 @@ dependencies = [ "async-trait", "base64 0.21.7", "bitflags 2.6.0", - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "chrono", "crypto-bigint", "data-url", @@ -15099,7 +15197,7 @@ dependencies = [ name = "torii-typed-data" version = "1.1.2" dependencies = [ - "cainome 0.4.11", + "cainome 0.4.11 (git+https://github.com/cartridge-gg/cainome?tag=v0.4.12)", "crypto-bigint", "dojo-types 1.1.2", "indexmap 2.5.0", diff --git a/Cargo.toml b/Cargo.toml index 1d108a61f2..297f22755e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ debug = true inherits = "release" [workspace.dependencies] -cainome = { git = "https://github.com/cartridge-gg/cainome", tag = "v0.4.11", features = [ "abigen-rs" ] } +cainome = { git = "https://github.com/cartridge-gg/cainome", tag = "v0.4.12", features = [ "abigen-rs" ] } cainome-cairo-serde = { git = "https://github.com/cartridge-gg/cainome", tag = "v0.4.11" } dojo-utils = { path = "crates/dojo/utils" } diff --git a/bin/katana/src/cli/config.rs b/bin/katana/src/cli/config.rs new file mode 100644 index 0000000000..2bd493bdc0 --- /dev/null +++ b/bin/katana/src/cli/config.rs @@ -0,0 +1,21 @@ +use anyhow::Result; +use clap::Args; +use katana_chain_spec::rollup::file::ChainConfigDir; +use katana_primitives::chain::ChainId; + +#[derive(Debug, Args)] +pub struct ConfigArgs { + /// The chain id. + #[arg(value_parser = ChainId::parse)] + chain: ChainId, +} + +impl ConfigArgs { + pub fn execute(self) -> Result<()> { + let cs = ChainConfigDir::open(&self.chain)?; + let path = cs.config_path(); + let config = std::fs::read_to_string(&path)?; + println!("File: {}\n\n{config}", path.display()); + Ok(()) + } +} diff --git a/bin/katana/src/cli/init/deployment.rs b/bin/katana/src/cli/init/deployment.rs index d85057c86e..895198a8cd 100644 --- a/bin/katana/src/cli/init/deployment.rs +++ b/bin/katana/src/cli/init/deployment.rs @@ -29,16 +29,58 @@ type InitializerAccount = SingleOwnerAccount; #[rustfmt::skip] abigen!( AppchainContract, - "[{\"type\":\"function\",\"name\":\"set_program_info\",\"inputs\":[{\"name\":\"\ - program_hash\",\"type\":\"core::Felt\"},{\"name\":\"config_hash\",\"type\":\"\ - core::Felt\"}],\"outputs\":[],\"state_mutability\":\"external\"},{\"type\":\"\ - function\",\"name\":\"set_facts_registry\",\"inputs\":[{\"name\":\"address\",\"type\"\ - :\"core::starknet::contract_address::ContractAddress\"}],\"outputs\":[],\"\ - state_mutability\":\"external\"},{\"type\":\"function\",\"name\":\"\ - get_facts_registry\",\"inputs\":[],\"outputs\":[{\"type\":\"\ - core::starknet::contract_address::ContractAddress\"}],\"state_mutability\":\"view\"},\ - {\"type\":\"function\",\"name\":\"get_program_info\",\"inputs\":[],\"outputs\":[{\"\ - type\":\"(core::Felt, core::Felt)\"}],\"state_mutability\":\"view\"}]" + [ + { + "type": "function", + "name": "set_program_info", + "inputs": [ + { + "name": "program_hash", + "type": "core::Felt" + }, + { + "name": "config_hash", + "type": "core::Felt" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_facts_registry", + "inputs": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_facts_registry", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "get_program_info", + "inputs": [], + "outputs": [ + { + "type": "(core::Felt, core::Felt)" + } + ], + "state_mutability": "view" + } + ] ); const PROGRAM_HASH: Felt = diff --git a/bin/katana/src/cli/mod.rs b/bin/katana/src/cli/mod.rs index 892236a0ec..0ea7192695 100644 --- a/bin/katana/src/cli/mod.rs +++ b/bin/katana/src/cli/mod.rs @@ -4,6 +4,7 @@ use clap_complete::Shell; use katana_cli::NodeArgs; use katana_node::version::VERSION; +mod config; mod db; mod init; @@ -24,6 +25,7 @@ impl Cli { Commands::Completions(args) => args.execute(), Commands::Db(args) => args.execute(), Commands::Init(args) => args.execute(), + Commands::Config(args) => args.execute(), }; } @@ -33,9 +35,12 @@ impl Cli { #[derive(Subcommand)] enum Commands { - #[command(about = "Initialize chain", hide = true)] + #[command(about = "Initialize chain")] Init(init::InitArgs), + #[command(about = "Chain configuration utilities")] + Config(config::ConfigArgs), + #[command(about = "Database utilities")] Db(db::DbArgs), diff --git a/bin/sozo/tests/test_data/invalid_cairo_version/Scarb.toml b/bin/sozo/tests/test_data/invalid_cairo_version/Scarb.toml index fc2cac6111..fcbbb53e3c 100644 --- a/bin/sozo/tests/test_data/invalid_cairo_version/Scarb.toml +++ b/bin/sozo/tests/test_data/invalid_cairo_version/Scarb.toml @@ -2,3 +2,4 @@ cairo-version = "1.2.0" name = "sozo_test" version = "0.3.1-rc7" +edition = "2023_01" diff --git a/crates/benches/contracts/Scarb.toml b/crates/benches/contracts/Scarb.toml index 0aebfff1e8..63e8e3afbe 100644 --- a/crates/benches/contracts/Scarb.toml +++ b/crates/benches/contracts/Scarb.toml @@ -2,6 +2,7 @@ cairo-version = "=2.9.1" name = "benches" version = "1.0.0-rc.0" +edition = "2023_01" [[target.starknet-contract]] build-external-contracts = ["dojo::world::world_contract::world"] diff --git a/crates/katana/contracts/messaging/cairo/Scarb.toml b/crates/katana/contracts/messaging/cairo/Scarb.toml index 0a698c11ea..9f6811d1f8 100644 --- a/crates/katana/contracts/messaging/cairo/Scarb.toml +++ b/crates/katana/contracts/messaging/cairo/Scarb.toml @@ -1,6 +1,7 @@ [package] name = "katana_messaging" version.workspace = true +edition = "2023_01" [dependencies] starknet.workspace = true diff --git a/crates/katana/contracts/messaging/cairo/src/appchain_messaging.cairo b/crates/katana/contracts/messaging/cairo/src/appchain_messaging.cairo index 41bd5651a4..00f77fc254 100644 --- a/crates/katana/contracts/messaging/cairo/src/appchain_messaging.cairo +++ b/crates/katana/contracts/messaging/cairo/src/appchain_messaging.cairo @@ -238,10 +238,11 @@ mod appchain_messaging { selector: felt252, payload: Span ) -> (felt252, felt252) { + let from_address = starknet::get_caller_address(); let nonce = self.sn_to_appc_nonce.read() + 1; self.sn_to_appc_nonce.write(nonce); - let msg_hash = compute_hash_sn_to_appc(nonce, to_address, selector, payload); + let msg_hash = compute_hash_sn_to_appc(from_address, to_address, selector, payload, nonce); self .emit(