From 251d33cb74071fb392611b357bcb04f364e25031 Mon Sep 17 00:00:00 2001 From: Gavin Wood Date: Thu, 3 Oct 2019 12:37:37 +0200 Subject: [PATCH] Split off TypeId so as not to pull in sr-io (#3740) * Add type-id * Builds with std now. * Fix for cargo * Remove unneeded stuff * Move TypeId. --- substrate/core/primitives/src/lib.rs | 5 +++++ substrate/core/sr-primitives/src/lib.rs | 4 ++-- substrate/core/sr-primitives/src/traits.rs | 8 +------- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/substrate/core/primitives/src/lib.rs b/substrate/core/primitives/src/lib.rs index 8086c9832a..310f0133ef 100644 --- a/substrate/core/primitives/src/lib.rs +++ b/substrate/core/primitives/src/lib.rs @@ -219,3 +219,8 @@ impl codec::Decode for NeverNativeValue { } } +/// Provide a simple 4 byte identifier for a type. +pub trait TypeId { + /// Simple 4 byte identifier. + const TYPE_ID: [u8; 4]; +} diff --git a/substrate/core/sr-primitives/src/lib.rs b/substrate/core/sr-primitives/src/lib.rs index 1e26a3d423..bdcbfb0b46 100644 --- a/substrate/core/sr-primitives/src/lib.rs +++ b/substrate/core/sr-primitives/src/lib.rs @@ -56,7 +56,7 @@ pub mod weights; pub use generic::{DigestItem, Digest}; /// Re-export this since it's part of the API of this crate. -pub use primitives::crypto::{key_types, KeyTypeId, CryptoType}; +pub use primitives::{TypeId, crypto::{key_types, KeyTypeId, CryptoType}}; pub use app_crypto::RuntimeAppPublic; /// Re-export arithmetic stuff. @@ -82,7 +82,7 @@ use traits::{Verify, Lazy}; #[derive(Clone, Copy, Eq, PartialEq, Encode, Decode)] pub struct ModuleId(pub [u8; 8]); -impl traits::TypeId for ModuleId { +impl TypeId for ModuleId { const TYPE_ID: [u8; 4] = *b"modl"; } diff --git a/substrate/core/sr-primitives/src/traits.rs b/substrate/core/sr-primitives/src/traits.rs index de200bdf55..10c2e80658 100644 --- a/substrate/core/sr-primitives/src/traits.rs +++ b/substrate/core/sr-primitives/src/traits.rs @@ -23,7 +23,7 @@ use runtime_io; use std::fmt::{Debug, Display}; #[cfg(feature = "std")] use serde::{Serialize, Deserialize, de::DeserializeOwned}; -use primitives::{self, Hasher, Blake2Hasher}; +use primitives::{self, Hasher, Blake2Hasher, TypeId}; use crate::codec::{Codec, Encode, Decode, HasCompact}; use crate::transaction_validity::{ ValidTransaction, TransactionValidity, TransactionValidityError, UnknownTransaction, @@ -1123,12 +1123,6 @@ pub trait AccountIdConversion: Sized { fn try_from_sub_account(x: &AccountId) -> Option<(Self, S)>; } -/// Provide a simple 4 byte identifier for a type. -pub trait TypeId { - /// Simple 4 byte identifier. - const TYPE_ID: [u8; 4]; -} - /// Format is TYPE_ID ++ encode(parachain ID) ++ 00.... where 00... is indefinite trailing zeroes to /// fill AccountId. impl AccountIdConversion for Id {