From c18d2da441603c4313a9da276fe08b928532ca4e Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Thu, 17 Oct 2024 13:18:58 -0400 Subject: [PATCH 1/3] init and update all pallets tests benchmarks --- pallets/dmail/src/benchmarking.rs | 7 ++++--- pallets/dmail/src/lib.rs | 2 +- pallets/dmail/src/tests.rs | 7 ++++--- pallets/networks/src/benchmarking.rs | 7 ++++--- pallets/networks/src/lib.rs | 2 +- pallets/networks/src/tests.rs | 7 ++++--- pallets/shards/src/benchmarking.rs | 10 +++++----- pallets/shards/src/lib.rs | 12 ++++++------ pallets/shards/src/tests.rs | 8 ++++---- pallets/tasks/src/benchmarking.rs | 7 ++++--- pallets/tasks/src/lib.rs | 4 ++-- pallets/tasks/src/tests.rs | 11 ++++++----- primitives/src/dmail.rs | 6 ++++-- primitives/src/network.rs | 6 ++++-- primitives/src/shard.rs | 3 ++- primitives/src/task.rs | 8 ++++++-- 16 files changed, 61 insertions(+), 46 deletions(-) diff --git a/pallets/dmail/src/benchmarking.rs b/pallets/dmail/src/benchmarking.rs index 0167ec77c..c140e07a1 100644 --- a/pallets/dmail/src/benchmarking.rs +++ b/pallets/dmail/src/benchmarking.rs @@ -5,8 +5,9 @@ use scale_info::prelude::string::String; use frame_system::RawOrigin; use polkadot_sdk::frame_benchmarking::benchmarks; -use polkadot_sdk::frame_system; +use polkadot_sdk::{frame_system, sp_runtime}; use scale_codec::Encode; +use sp_runtime::BoundedVec; use time_primitives::{DmailPath, DmailTo, DMAIL_PATH_LEN, DMAIL_TO_LEN}; benchmarks! { @@ -22,8 +23,8 @@ benchmarks! { for _ in 0..b { path.push('b'); } - let to = DmailTo::truncate_from(to.as_str().encode()); - let path = DmailPath::truncate_from(path.as_str().encode()); + let to = DmailTo(BoundedVec::truncate_from(to.as_str().encode())); + let path = DmailPath(BoundedVec::truncate_from(path.as_str().encode())); }: _(RawOrigin::Signed([0u8; 32].into()), to, path) verify {} diff --git a/pallets/dmail/src/lib.rs b/pallets/dmail/src/lib.rs index 2ff7a93cf..edde1b530 100644 --- a/pallets/dmail/src/lib.rs +++ b/pallets/dmail/src/lib.rs @@ -49,7 +49,7 @@ pub mod pallet { #[pallet::call] impl Pallet { #[pallet::call_index(0)] - #[pallet::weight(T::WeightInfo::send_email(to.len() as u32, path.len() as u32))] + #[pallet::weight(T::WeightInfo::send_email(to.0.len() as u32, path.0.len() as u32))] pub fn send_email(origin: OriginFor, to: DmailTo, path: DmailPath) -> DispatchResult { let owner = ensure_signed(origin)?; let message = DmailMessage { owner, to, path }; diff --git a/pallets/dmail/src/tests.rs b/pallets/dmail/src/tests.rs index 7718790be..1d7c98764 100644 --- a/pallets/dmail/src/tests.rs +++ b/pallets/dmail/src/tests.rs @@ -1,17 +1,18 @@ use crate::mock::*; use crate::Event; -use polkadot_sdk::{frame_support, frame_system}; +use polkadot_sdk::{frame_support, frame_system, sp_runtime}; use frame_support::assert_ok; use frame_system::RawOrigin; use scale_codec::Encode; +use sp_runtime::BoundedVec; use time_primitives::{DmailMessage, DmailPath, DmailTo}; #[test] fn test_dmail_event() { - let to: DmailTo = DmailTo::truncate_from("Self".encode()); - let path: DmailPath = DmailPath::truncate_from("//self".encode()); + let to: DmailTo = DmailTo(BoundedVec::truncate_from("Self".encode())); + let path: DmailPath = DmailPath(BoundedVec::truncate_from("//self".encode())); let sender: AccountId = [1; 32].into(); let event = DmailMessage { owner: sender.clone(), diff --git a/pallets/networks/src/benchmarking.rs b/pallets/networks/src/benchmarking.rs index e47737b2a..8bb08e870 100644 --- a/pallets/networks/src/benchmarking.rs +++ b/pallets/networks/src/benchmarking.rs @@ -3,9 +3,10 @@ use crate::Pallet; use frame_system::RawOrigin; use polkadot_sdk::frame_benchmarking::benchmarks; -use polkadot_sdk::frame_system; +use polkadot_sdk::{frame_system, sp_runtime}; use scale_codec::Encode; use scale_info::prelude::string::String; +use sp_runtime::BoundedVec; use time_primitives::{ ChainName, ChainNetwork, Network, NetworkConfig, CHAIN_NAME_LEN, CHAIN_NET_LEN, }; @@ -22,8 +23,8 @@ fn mock_network_config() -> NetworkConfig { fn mock_network(chain_name: String, chain_network: String) -> Network { Network { id: 42, - chain_name: ChainName::truncate_from(chain_name.as_str().encode()), - chain_network: ChainNetwork::truncate_from(chain_network.as_str().encode()), + chain_name: ChainName(BoundedVec::truncate_from(chain_name.as_str().encode())), + chain_network: ChainNetwork(BoundedVec::truncate_from(chain_network.as_str().encode())), gateway: [0; 32], gateway_block: 99, config: mock_network_config(), diff --git a/pallets/networks/src/lib.rs b/pallets/networks/src/lib.rs index 288d0cb5b..c8ae27f87 100644 --- a/pallets/networks/src/lib.rs +++ b/pallets/networks/src/lib.rs @@ -200,7 +200,7 @@ pub mod pallet { /// 3. Emit the [`Event::NetworkRegistered`] event with the new `NetworkId`. /// 4. Return `Ok(())` to indicate success. #[pallet::call_index(0)] - #[pallet::weight(T::WeightInfo::register_network(network.chain_name.len() as u32, network.chain_network.len() as u32))] + #[pallet::weight(T::WeightInfo::register_network(network.chain_name.0.len() as u32, network.chain_network.0.len() as u32))] pub fn register_network(origin: OriginFor, network: Network) -> DispatchResult { T::AdminOrigin::ensure_origin(origin)?; Self::insert_network(&network)?; diff --git a/pallets/networks/src/tests.rs b/pallets/networks/src/tests.rs index 5821dd136..3f81799f4 100644 --- a/pallets/networks/src/tests.rs +++ b/pallets/networks/src/tests.rs @@ -2,8 +2,9 @@ use crate::{self as pallet_networks}; use crate::{mock::*, Error}; use frame_support::{assert_noop, assert_ok}; use frame_system::RawOrigin; -use polkadot_sdk::{frame_support, frame_system}; +use polkadot_sdk::{frame_support, frame_system, sp_runtime}; use scale_codec::Encode; +use sp_runtime::BoundedVec; use time_primitives::{ChainName, ChainNetwork, Network, NetworkConfig}; fn mock_network_config() -> NetworkConfig { @@ -18,8 +19,8 @@ fn mock_network_config() -> NetworkConfig { fn mock_network() -> Network { Network { id: 42, - chain_name: ChainName::truncate_from("Ethereum".encode()), - chain_network: ChainNetwork::truncate_from("Mainnet".encode()), + chain_name: ChainName(BoundedVec::truncate_from("Ethereum".encode())), + chain_network: ChainNetwork(BoundedVec::truncate_from("Mainnet".encode())), gateway: [0; 32], gateway_block: 99, config: mock_network_config(), diff --git a/pallets/shards/src/benchmarking.rs b/pallets/shards/src/benchmarking.rs index 42c430b01..2b3f9376c 100644 --- a/pallets/shards/src/benchmarking.rs +++ b/pallets/shards/src/benchmarking.rs @@ -1,13 +1,13 @@ use super::*; use crate::Pallet; -use polkadot_sdk::{ - frame_benchmarking, frame_support, frame_system, pallet_balances, sp_core, sp_std, -}; - use frame_benchmarking::benchmarks; use frame_support::traits::{Currency, Get}; use frame_system::RawOrigin; +use polkadot_sdk::{ + frame_benchmarking, frame_support, frame_system, pallet_balances, sp_core, sp_runtime, sp_std, +}; +use sp_runtime::BoundedVec; use sp_std::vec; use sp_std::vec::Vec; @@ -69,7 +69,7 @@ pub fn get_commitment(member: [u8; 32]) -> Commitment { panic!("Invalid member") }, }; - Commitment::truncate_from(vec![commitment]) + Commitment(BoundedVec::truncate_from(vec![commitment])) } pub fn get_proof_of_knowledge(member: [u8; 32]) -> ProofOfKnowledge { match member { diff --git a/pallets/shards/src/lib.rs b/pallets/shards/src/lib.rs index da98afc09..66e53dcb3 100644 --- a/pallets/shards/src/lib.rs +++ b/pallets/shards/src/lib.rs @@ -254,10 +254,10 @@ pub mod pallet { ); let threshold = ShardThreshold::::get(shard_id).unwrap_or_default(); ensure!( - commitment.len() == threshold as usize, + commitment.0.len() == threshold as usize, Error::::CommitmentLenNotEqualToThreshold ); - for c in &commitment { + for c in &commitment.0 { ensure!( VerifyingKey::from_bytes(*c).is_ok(), Error::::InvalidVerifyingKeyInCommitment @@ -267,7 +267,7 @@ pub mod pallet { T::Members::member_peer_id(&member).ok_or(Error::::MemberPeerIdNotFound)?; schnorr_evm::proof_of_knowledge::verify_proof_of_knowledge( &peer_id, - &commitment, + &commitment.0, proof_of_knowledge, ) .map_err(|_| Error::::InvalidProofOfKnowledge)?; @@ -277,7 +277,7 @@ pub mod pallet { .filter_map(|(_, status)| status.commitment().cloned()) .reduce(|mut group_commitment, commitment| { for (group_commitment, commitment) in - group_commitment.iter_mut().zip(commitment.iter()) + group_commitment.0.iter_mut().zip(commitment.0.iter()) { *group_commitment = VerifyingKey::new( VerifyingKey::from_bytes(*group_commitment) @@ -327,7 +327,7 @@ pub mod pallet { .all(|(_, status)| status == MemberStatus::Ready) { >::insert(shard_id, ShardStatus::Online); - Self::deposit_event(Event::ShardOnline(shard_id, commitment[0])); + Self::deposit_event(Event::ShardOnline(shard_id, commitment.0[0])); T::Tasks::shard_online(shard_id, network); } Ok(()) @@ -612,7 +612,7 @@ pub mod pallet { /// 1. Retrieves the commitment [`Vec`] associated with the `shard_id` from [`ShardCommitment`]. /// 2. Returns the first element of the commitment [`TssPublicKey`] if it exists; otherwise, returns `None`. fn tss_public_key(shard_id: ShardId) -> Option { - ShardCommitment::::get(shard_id).map(|commitment| commitment[0]) + ShardCommitment::::get(shard_id).map(|commitment| commitment.0[0]) } } } diff --git a/pallets/shards/src/tests.rs b/pallets/shards/src/tests.rs index 322d7b29b..3dcf87b05 100644 --- a/pallets/shards/src/tests.rs +++ b/pallets/shards/src/tests.rs @@ -1,16 +1,16 @@ use crate::mock::*; use crate::{Event, ShardMembers, ShardNetwork, ShardState}; -use polkadot_sdk::{frame_support, frame_system, pallet_balances, sp_core}; +use polkadot_sdk::{frame_support, frame_system, pallet_balances, sp_core, sp_runtime}; use frame_support::assert_ok; use frame_support::traits::{Currency, Get}; use frame_system::RawOrigin; - use schnorr_evm::k256::elliptic_curve::PrimeField; use schnorr_evm::k256::{ProjectivePoint, Scalar}; use schnorr_evm::proof_of_knowledge::construct_proof_of_knowledge; use schnorr_evm::VerifyingKey; +use sp_runtime::BoundedVec; use time_primitives::{ AccountId, Commitment, NetworkId, PeerId, PublicKey, ShardId, ShardStatus, ShardsInterface, @@ -88,7 +88,7 @@ fn create_shard(shard_id: ShardId, shard: &[Member], threshold: u16) { assert_ok!(Shards::commit( RawOrigin::Signed(member.account_id.clone()).into(), shard_id as _, - Commitment::truncate_from(member.commitment(threshold)), + Commitment(BoundedVec::truncate_from(member.commitment(threshold))), member.proof_of_knowledge(), )); roll(1); @@ -139,7 +139,7 @@ fn test_register_shard() { assert_ok!(Shards::commit( RawOrigin::Signed(member.account_id.clone()).into(), shard_id as _, - Commitment::truncate_from(member.commitment(threshold)), + Commitment(BoundedVec::truncate_from(member.commitment(threshold))), member.proof_of_knowledge(), )); } diff --git a/pallets/tasks/src/benchmarking.rs b/pallets/tasks/src/benchmarking.rs index c5f39d9ca..e17aad0aa 100644 --- a/pallets/tasks/src/benchmarking.rs +++ b/pallets/tasks/src/benchmarking.rs @@ -5,7 +5,8 @@ use frame_support::traits::OnInitialize; use frame_system::RawOrigin; use pallet_networks::NetworkGatewayAddress; use pallet_shards::{ShardCommitment, ShardState}; -use polkadot_sdk::{frame_benchmarking, frame_support, frame_system, sp_std}; +use polkadot_sdk::{frame_benchmarking, frame_support, frame_system, sp_runtime, sp_std}; +use sp_runtime::BoundedVec; use sp_std::vec; use time_primitives::{ Commitment, GmpEvents, NetworkId, ShardStatus, ShardsInterface, Task, TaskResult, @@ -32,7 +33,7 @@ fn create_simple_task() { 1, ); ShardState::::insert(shard_id, ShardStatus::Online); - ShardCommitment::::insert(shard_id, Commitment::truncate_from(vec![PUBKEY])); + ShardCommitment::::insert(shard_id, Commitment(BoundedVec::truncate_from(vec![PUBKEY]))); Pallet::::shard_online(shard_id, ETHEREUM); Pallet::::create_task(ETHEREUM, Task::ReadGatewayEvents { blocks: 0..10 }); } @@ -44,7 +45,7 @@ benchmarks! { NetworkGatewayAddress::::insert(0, [0; 32]); create_simple_task::(); Pallet::::on_initialize(frame_system::Pallet::::block_number()); - let result = TaskResult::ReadGatewayEvents { events: GmpEvents::truncate_from(vec![]), signature: SIGNATURE }; + let result = TaskResult::ReadGatewayEvents { events: GmpEvents(BoundedVec::truncate_from(vec![])), signature: SIGNATURE }; }: _(RawOrigin::Signed([0u8; 32].into()), 0, result) verify {} schedule_tasks { diff --git a/pallets/tasks/src/lib.rs b/pallets/tasks/src/lib.rs index 43b678df8..96aa1b19b 100644 --- a/pallets/tasks/src/lib.rs +++ b/pallets/tasks/src/lib.rs @@ -317,7 +317,7 @@ pub mod pallet { TaskResult::ReadGatewayEvents { events, signature }, ) => { // verify signature - let bytes = time_primitives::encode_gmp_events(task_id, &events); + let bytes = time_primitives::encode_gmp_events(task_id, &events.0); Self::verify_signature(shard, &bytes, signature)?; // start next batch let start = blocks.end; @@ -325,7 +325,7 @@ pub mod pallet { let end = start + size; Self::create_task(network, Task::ReadGatewayEvents { blocks: start..end }); // process events - for event in events { + for event in events.0 { match event { GmpEvent::ShardRegistered(pubkey) => { ShardRegistered::::insert(pubkey, ()); diff --git a/pallets/tasks/src/tests.rs b/pallets/tasks/src/tests.rs index 6c689b05b..151c5a300 100644 --- a/pallets/tasks/src/tests.rs +++ b/pallets/tasks/src/tests.rs @@ -4,8 +4,9 @@ use crate::{BatchIdCounter, ShardRegistered}; use frame_support::assert_ok; use frame_system::RawOrigin; use pallet_shards::{ShardCommitment, ShardState}; -use polkadot_sdk::{frame_support, frame_system}; +use polkadot_sdk::{frame_support, frame_system, sp_runtime}; use scale_codec::Encode; +use sp_runtime::BoundedVec; use time_primitives::{ traits::IdentifyAccount, Commitment, ErrorMsg, GatewayMessage, GatewayOp, GmpEvent, GmpEvents, GmpMessage, MockTssSigner, NetworkId, PublicKey, ShardId, ShardStatus, ShardsInterface, Task, @@ -21,7 +22,7 @@ fn create_shard(network: NetworkId, n: u8, t: u16) -> ShardId { } let shard_id = Shards::create_shard(network, members, t).0; let pub_key = MockTssSigner::new(shard_id).public_key(); - ShardCommitment::::insert(shard_id, Commitment::truncate_from(vec![pub_key])); + ShardCommitment::::insert(shard_id, Commitment(BoundedVec::truncate_from(vec![pub_key]))); ShardState::::insert(shard_id, ShardStatus::Online); Tasks::shard_online(shard_id, network); shard_id @@ -43,7 +44,7 @@ fn register_shard(shard: ShardId) { fn submit_gateway_events(shard: ShardId, task_id: TaskId, events: &[GmpEvent]) { let signature = MockTssSigner::new(shard).sign_gmp_events(task_id, events); let result = TaskResult::ReadGatewayEvents { - events: GmpEvents::truncate_from(events.to_vec()), + events: GmpEvents(BoundedVec::truncate_from(events.to_vec())), signature, }; assert_ok!(Tasks::submit_task_result( @@ -58,7 +59,7 @@ fn submit_submission_error(account: PublicKey, task: TaskId, error: &str) { RawOrigin::Signed(account.into_account()).into(), task, TaskResult::SubmitGatewayMessage { - error: ErrorMsg::truncate_from(error.encode()) + error: ErrorMsg(BoundedVec::truncate_from(error.encode())) } )); } @@ -230,7 +231,7 @@ fn test_msg_execution_error_completes_submit_task() { submit_submission_error(account, 1, "error message"); assert_eq!( Tasks::get_task_result(1), - Some(Err(ErrorMsg::truncate_from("error message".encode()))) + Some(Err(ErrorMsg(BoundedVec::truncate_from("error message".encode())))) ); }) } diff --git a/primitives/src/dmail.rs b/primitives/src/dmail.rs index dfdd091d3..ee081ef7f 100644 --- a/primitives/src/dmail.rs +++ b/primitives/src/dmail.rs @@ -6,8 +6,10 @@ use scale_info::TypeInfo; pub const DMAIL_TO_LEN: u32 = 64; pub const DMAIL_PATH_LEN: u32 = 64; -pub type DmailTo = BoundedVec>; -pub type DmailPath = BoundedVec>; +#[derive(Encode, Decode, TypeInfo, PartialEq, Eq, Clone, Debug)] +pub struct DmailTo(pub BoundedVec>); +#[derive(Encode, Decode, TypeInfo, PartialEq, Eq, Clone, Debug)] +pub struct DmailPath(pub BoundedVec>); #[derive(Encode, Decode, TypeInfo, PartialEq, Eq, Clone, Debug)] pub struct DmailMessage { diff --git a/primitives/src/network.rs b/primitives/src/network.rs index 0f4395571..6915418a9 100644 --- a/primitives/src/network.rs +++ b/primitives/src/network.rs @@ -8,8 +8,10 @@ pub const CHAIN_NAME_LEN: u32 = 50; pub const CHAIN_NET_LEN: u32 = 50; pub type NetworkId = u16; -pub type ChainName = BoundedVec>; -pub type ChainNetwork = BoundedVec>; +#[derive(Encode, Decode, TypeInfo, PartialEq, Eq, Clone, Debug, Serialize, Deserialize)] +pub struct ChainName(pub BoundedVec>); +#[derive(Encode, Decode, TypeInfo, PartialEq, Eq, Clone, Debug, Serialize, Deserialize)] +pub struct ChainNetwork(pub BoundedVec>); #[derive(Clone, Debug, Eq, PartialEq, Encode, Decode, TypeInfo, Serialize, Deserialize)] pub struct Network { diff --git a/primitives/src/shard.rs b/primitives/src/shard.rs index cc1ff0a32..f1e5ae2b3 100644 --- a/primitives/src/shard.rs +++ b/primitives/src/shard.rs @@ -22,7 +22,8 @@ pub type TssHash = [u8; 32]; pub type PeerId = [u8; 32]; pub type ShardId = u64; pub type ProofOfKnowledge = [u8; 65]; -pub type Commitment = BoundedVec>; +#[derive(Encode, Decode, TypeInfo, PartialEq, Eq, Clone, Debug)] +pub struct Commitment(pub BoundedVec>); #[cfg(feature = "std")] pub mod serde_tss_public_key { diff --git a/primitives/src/task.rs b/primitives/src/task.rs index 55ed504c0..4c2155e9c 100644 --- a/primitives/src/task.rs +++ b/primitives/src/task.rs @@ -64,9 +64,13 @@ pub fn encode_gmp_events(task_id: TaskId, events: &[GmpEvent]) -> Vec { const MAX_GMP_EVENTS: u32 = 1_000; const MAX_ERROR_LEN: u32 = 500; /// Bounded vec alias for GMP events submitted in results -pub type GmpEvents = BoundedVec>; +#[cfg_attr(feature = "std", derive(Serialize, Deserialize))] +#[derive(Encode, Decode, TypeInfo, PartialEq, Eq, Clone, Debug)] +pub struct GmpEvents(pub BoundedVec>); /// Bounded vec alias for SubmitGatewayMessage error -pub type ErrorMsg = BoundedVec>; +#[cfg_attr(feature = "std", derive(Serialize, Deserialize))] +#[derive(Encode, Decode, TypeInfo, PartialEq, Eq, Clone, Debug)] +pub struct ErrorMsg(pub BoundedVec>); #[cfg_attr(feature = "std", derive(Serialize, Deserialize))] #[derive(Debug, Clone, Decode, Encode, TypeInfo, PartialEq)] From 6c3625c8c04709894d94ff1c9583350cbd90d184 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Thu, 17 Oct 2024 13:28:38 -0400 Subject: [PATCH 2/3] update build rs to include wrapper structs with inner bounded types --- tc-subxt/metadata/build.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tc-subxt/metadata/build.rs b/tc-subxt/metadata/build.rs index fcd9fa10b..e4a3d9a20 100644 --- a/tc-subxt/metadata/build.rs +++ b/tc-subxt/metadata/build.rs @@ -6,16 +6,23 @@ fn substitute(path: &str, with: &str) -> String { fn derive(path: &Path, module: &str) -> String { let simple_types = [ + "time_primitives::dmail::DmailTo", + "time_primitives::dmail::DmailPath", "time_primitives::gmp::GmpMessage", "time_primitives::gmp::GatewayOp", "time_primitives::gmp::GatewayMessage", "time_primitives::gmp::GmpEvent", + "time_primitives::network::ChainName", + "time_primitives::network::ChainNetwork", "time_primitives::network::Network", "time_primitives::network::NetworkConfig", + "time_primitives::shard::Commitment", "time_primitives::shard::MemberStatus", "time_primitives::shard::ShardStatus", "time_primitives::task::Task", "time_primitives::task::TaskResult", + "time_primitives::task::GmpEvents", + "time_primitives::task::ErrorMsg", ]; let others = [ ("sp_core::crypto::AccountId32", "time_primitives::AccountId"), From 65cc916c734ebccd1dd6c67d584b0227b573f324 Mon Sep 17 00:00:00 2001 From: 4meta5 Date: Thu, 17 Oct 2024 13:30:29 -0400 Subject: [PATCH 3/3] fix testnet runtime tests --- runtimes/testnet/src/tests.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/runtimes/testnet/src/tests.rs b/runtimes/testnet/src/tests.rs index af2dbe9af..0ec768a41 100644 --- a/runtimes/testnet/src/tests.rs +++ b/runtimes/testnet/src/tests.rs @@ -1,15 +1,13 @@ /// Integration tests use crate::*; -//use polkadot_sdk::*; - use frame_support::assert_ok; use frame_support::traits::{OnFinalize, OnInitialize, WhitelistedStorageKeys}; use frame_system::RawOrigin; use pallet_shards::ShardMembers; -// use pallet_tasks::TaskSigner; use sp_core::hexdisplay::HexDisplay; use sp_core::Pair; +use sp_runtime::BoundedVec; use std::collections::HashSet; use time_primitives::{ AccountId, ElectionsInterface, Network, NetworkConfig, NetworkId, PublicKey, ShardStatus, @@ -32,8 +30,8 @@ fn get_peer_id(random_num: [u8; 32]) -> [u8; 32] { fn network() -> Network { Network { id: ETHEREUM, - chain_name: ChainName::truncate_from("ethereum".encode()), - chain_network: ChainNetwork::truncate_from("dev".encode()), + chain_name: ChainName(BoundedVec::truncate_from("ethereum".encode())), + chain_network: ChainNetwork(BoundedVec::truncate_from("dev".encode())), gateway: [0u8; 32], gateway_block: 0, config: NetworkConfig {