From 57c9b7c37ecfe3b1c8e4d5c43960498be90463db Mon Sep 17 00:00:00 2001 From: antiyro Date: Thu, 28 Sep 2023 13:31:33 +0200 Subject: [PATCH] implemented mp-chain-id crate --- Cargo.lock | 14 ++++++++++++ Cargo.toml | 2 ++ crates/pallets/starknet/Cargo.toml | 1 + .../starknet/src/tests/mock/setup_mock.rs | 10 +-------- crates/primitives/chain-id/Cargo.toml | 22 +++++++++++++++++++ crates/primitives/chain-id/src/lib.rs | 20 +++++++++++++++++ crates/runtime/Cargo.toml | 1 + crates/runtime/src/pallets.rs | 17 +------------- 8 files changed, 62 insertions(+), 25 deletions(-) create mode 100644 crates/primitives/chain-id/Cargo.toml create mode 100644 crates/primitives/chain-id/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 4c6314afa2..5d547464a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6150,6 +6150,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", + "mp-chain-id", "mp-felt", "mp-hashers", "mp-transactions", @@ -6610,6 +6611,18 @@ dependencies = [ "starknet_api", ] +[[package]] +name = "mp-chain-id" +version = "0.3.0" +dependencies = [ + "blockifier", + "mp-felt", + "mp-hashers", + "mp-transactions", + "starknet-ff", + "starknet_api", +] + [[package]] name = "mp-commitments" version = "0.3.0" @@ -7595,6 +7608,7 @@ dependencies = [ "lazy_static", "log", "mp-block", + "mp-chain-id", "mp-commitments", "mp-digest-log", "mp-fee", diff --git a/Cargo.toml b/Cargo.toml index 765ba6a4d6..caf667d3f9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,7 @@ members = [ "crates/primitives/sequencer-address", "crates/primitives/storage", "crates/primitives/commitments", + "crates/primitives/chain-id", "crates/client/block-proposer", "crates/client/db", "crates/client/rpc-core", @@ -130,6 +131,7 @@ mp-state = { path = "crates/primitives/state", default-features = false } mp-storage = { path = "crates/primitives/storage", default-features = false } mp-transactions = { path = "crates/primitives/transactions", default-features = false } mp-commitments = { path = "crates/primitives/commitments", default-features = false } +mp-chain-id = { path = "crates/primitives/chain-id", default-features = false } # Madara client mc-mapping-sync = { path = "crates/client/mapping-sync" } diff --git a/crates/pallets/starknet/Cargo.toml b/crates/pallets/starknet/Cargo.toml index 216cd0a652..d9997c35d4 100644 --- a/crates/pallets/starknet/Cargo.toml +++ b/crates/pallets/starknet/Cargo.toml @@ -25,6 +25,7 @@ mp-sequencer-address = { workspace = true, features = ["parity-scale-codec"] } mp-state = { workspace = true } mp-storage = { workspace = true, features = ["parity-scale-codec"] } mp-transactions = { workspace = true, features = ["scale-info"] } +mp-chain-id = { workspace = true } blockifier = { workspace = true, features = [ "testing", diff --git a/crates/pallets/starknet/src/tests/mock/setup_mock.rs b/crates/pallets/starknet/src/tests/mock/setup_mock.rs index 23148b535e..4631422ba8 100644 --- a/crates/pallets/starknet/src/tests/mock/setup_mock.rs +++ b/crates/pallets/starknet/src/tests/mock/setup_mock.rs @@ -4,14 +4,6 @@ use mp_felt::Felt252Wrapper; use crate::genesis_loader::GenesisLoader; use crate::{Config, GenesisConfig}; -/// ChainId for Starknet Goerli testnet -pub const SN_GOERLI_CHAIN_ID: Felt252Wrapper = Felt252Wrapper(starknet_ff::FieldElement::from_mont([ - 3753493103916128178, - 18446744073709548950, - 18446744073709551615, - 398700013197595345, -])); - // Configure a mock runtime to test the pallet. macro_rules! mock_runtime { ($mock_runtime:ident, $disable_transaction_fee:expr, $disable_nonce_validation: expr) => { @@ -87,7 +79,7 @@ macro_rules! mock_runtime { pub const DisableTransactionFee: bool = $disable_transaction_fee; pub const DisableNonceValidation: bool = $disable_nonce_validation; pub const ProtocolVersion: u8 = 0; - pub const ChainId: Felt252Wrapper = crate::tests::mock::SN_GOERLI_CHAIN_ID; + pub const ChainId: Felt252Wrapper = mp_chain_id::SN_GOERLI_CHAIN_ID; pub const MaxRecursionDepth: u32 = 50; } diff --git a/crates/primitives/chain-id/Cargo.toml b/crates/primitives/chain-id/Cargo.toml new file mode 100644 index 0000000000..556752ba3f --- /dev/null +++ b/crates/primitives/chain-id/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "mp-chain-id" +version.workspace = true +edition.workspace = true +license = "MIT" +description = "Primitives for Madara digest logs" +authors = { workspace = true } +repository = { workspace = true } + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] + +[dependencies] + +# Madara Primitives +mp-felt = { workspace = true } +mp-hashers = { workspace = true } +mp-transactions = { workspace = true } +# Starknet dependencies +blockifier = { workspace = true } +starknet-ff = { workspace = true } +starknet_api = { workspace = true } \ No newline at end of file diff --git a/crates/primitives/chain-id/src/lib.rs b/crates/primitives/chain-id/src/lib.rs new file mode 100644 index 0000000000..58db7c2811 --- /dev/null +++ b/crates/primitives/chain-id/src/lib.rs @@ -0,0 +1,20 @@ +//! Traits for chain ids. +#![cfg_attr(not(feature = "std"), no_std)] + +use mp_felt::Felt252Wrapper; + +/// ChainId for Starknet Goerli testnet +pub const SN_GOERLI_CHAIN_ID: Felt252Wrapper = Felt252Wrapper(starknet_ff::FieldElement::from_mont([ + 3753493103916128178, + 18446744073709548950, + 18446744073709551615, + 398700013197595345, +])); + +/// ChainId for Starknet Mainnet +pub const SN_MAIN_CHAIN_ID: Felt252Wrapper = Felt252Wrapper(starknet_ff::FieldElement::from_mont([ + 17696389056366564951, + 18446744073709551615, + 18446744073709551615, + 502562008147966918, +])); \ No newline at end of file diff --git a/crates/runtime/Cargo.toml b/crates/runtime/Cargo.toml index 4debe3151f..3ecd5768f6 100644 --- a/crates/runtime/Cargo.toml +++ b/crates/runtime/Cargo.toml @@ -54,6 +54,7 @@ pallet-starknet = { workspace = true } mp-felt = { workspace = true } mp-hashers = { workspace = true } mp-transactions = { workspace = true } +mp-chain-id = { workspace = true } # Starknet dependencies blockifier = { workspace = true } starknet-ff = { workspace = true } diff --git a/crates/runtime/src/pallets.rs b/crates/runtime/src/pallets.rs index df9e40981a..9a5d2699a3 100644 --- a/crates/runtime/src/pallets.rs +++ b/crates/runtime/src/pallets.rs @@ -10,6 +10,7 @@ pub use frame_support::weights::constants::{ pub use frame_support::weights::{IdentityFee, Weight}; pub use frame_support::{construct_runtime, parameter_types, StorageValue}; pub use frame_system::Call as SystemCall; +pub use mp_chain_id::SN_GOERLI_CHAIN_ID; /// Import the StarkNet pallet. pub use pallet_starknet; pub use pallet_timestamp::Call as TimestampCall; @@ -23,22 +24,6 @@ use sp_std::marker::PhantomData; use crate::*; -/// ChainId for Starknet Goerli testnet -pub const SN_GOERLI_CHAIN_ID: Felt252Wrapper = Felt252Wrapper(starknet_ff::FieldElement::from_mont([ - 3753493103916128178, - 18446744073709548950, - 18446744073709551615, - 398700013197595345, -])); - -/// ChainId for Starknet Mainnet -pub const SN_MAIN_CHAIN_ID: Felt252Wrapper = Felt252Wrapper(starknet_ff::FieldElement::from_mont([ - 17696389056366564951, - 18446744073709551615, - 18446744073709551615, - 502562008147966918, -])); - // Configure FRAME pallets to include in runtime. // --------------------------------------