pub trait TypeInfo {
    type Identity: 'static + ?Sized;

    fn type_info() -> Type<MetaForm>;
}
Expand description

Implementors return their meta type information.

Required Associated Types§

The type identifying for which type info is provided.

Note

This is used to uniquely identify a type via core::any::TypeId::of. In most cases it will just be Self, but can be used to unify different types which have the same encoded representation e.g. reference types Box<T>, &T and &mut T.

Required Methods§

Returns the static type identifier for Self.

Implementations on Foreign Types§

Manual TypeInfo implementation because of custom encoding. The data is a valid encoded Vec<u8>, but requires some logic to extract the signature and payload.

See UncheckedExtrinsic::encode and UncheckedExtrinsic::decode.

Implementors§

impl TypeInfo for Runtime

impl TypeInfo for Event

impl TypeInfo for Call

impl<MerkleRoot> TypeInfo for BeefyAuthoritySet<MerkleRoot>where
    MerkleRoot: TypeInfo + 'static,

impl TypeInfo for Public

impl<AuthorityId> TypeInfo for ValidatorSet<AuthorityId>where
    Vec<AuthorityId>: TypeInfo + 'static,
    AuthorityId: TypeInfo + 'static,

impl<AuthorityId> TypeInfo for ConsensusLog<AuthorityId>where
    ValidatorSet<AuthorityId>: TypeInfo + 'static,
    AuthorityId: Codec + TypeInfo + 'static,

impl<Number, Id, Signature> TypeInfo for VoteMessage<Number, Id, Signature>where
    Commitment<Number>: TypeInfo + 'static,
    Id: TypeInfo + 'static,
    Signature: TypeInfo + 'static,
    Number: TypeInfo + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    T::Hash: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::Hash: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl TypeInfo for Origin

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    Option<T::Hash>: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<H, N> TypeInfo for State<H, N>where
    Option<(H, N)>: TypeInfo + 'static,
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<H, N> TypeInfo for Prevote<H, N>where
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<H, N> TypeInfo for Precommit<H, N>where
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<H, N> TypeInfo for PrimaryPropose<H, N>where
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<Id, V, S> TypeInfo for Equivocation<Id, V, S>where
    Id: TypeInfo + 'static,
    (V, S): TypeInfo + 'static,
    V: TypeInfo + 'static,
    S: TypeInfo + 'static,

impl<H, N> TypeInfo for Message<H, N>where
    Prevote<H, N>: TypeInfo + 'static,
    Precommit<H, N>: TypeInfo + 'static,
    PrimaryPropose<H, N>: TypeInfo + 'static,
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<H, N, S, Id> TypeInfo for SignedMessage<H, N, S, Id>where
    Message<H, N>: TypeInfo + 'static,
    S: TypeInfo + 'static,
    Id: TypeInfo + 'static,
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<H, N, S, Id> TypeInfo for Commit<H, N, S, Id>where
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,
    Vec<SignedPrecommit<H, N, S, Id>>: TypeInfo + 'static,
    S: TypeInfo + 'static,
    Id: TypeInfo + 'static,

impl<H, N, S, Id> TypeInfo for SignedPrevote<H, N, S, Id>where
    Prevote<H, N>: TypeInfo + 'static,
    S: TypeInfo + 'static,
    Id: TypeInfo + 'static,
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<H, N, S, Id> TypeInfo for SignedPrecommit<H, N, S, Id>where
    Precommit<H, N>: TypeInfo + 'static,
    S: TypeInfo + 'static,
    Id: TypeInfo + 'static,
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<H, N, S, Id> TypeInfo for CompactCommit<H, N, S, Id>where
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,
    Vec<Precommit<H, N>>: TypeInfo + 'static,
    MultiAuthData<S, Id>: TypeInfo + 'static,
    S: TypeInfo + 'static,
    Id: TypeInfo + 'static,

impl<H, N, S, Id> TypeInfo for CatchUp<H, N, S, Id>where
    Vec<SignedPrevote<H, N, S, Id>>: TypeInfo + 'static,
    Vec<SignedPrecommit<H, N, S, Id>>: TypeInfo + 'static,
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,
    S: TypeInfo + 'static,
    Id: TypeInfo + 'static,

impl<H, N, S, Id> TypeInfo for HistoricalVotes<H, N, S, Id>where
    Vec<SignedMessage<H, N, S, Id>>: TypeInfo + 'static,
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,
    S: TypeInfo + 'static,
    Id: TypeInfo + 'static,

impl<T> TypeInfo for CheckGenesis<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + Send + Sync + 'static,

impl<T> TypeInfo for CheckMortality<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + Send + Sync + 'static,

impl<T> TypeInfo for CheckNonZeroSender<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + Send + Sync + 'static,

impl<T> TypeInfo for CheckNonce<T>where
    T::Index: HasCompact,
    T: Config + 'static,

impl<T> TypeInfo for CheckSpecVersion<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + Send + Sync + 'static,

impl<T> TypeInfo for CheckTxVersion<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + Send + Sync + 'static,

impl<T> TypeInfo for CheckWeight<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + Send + Sync + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    T::Hash: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl TypeInfo for Phase

impl<E, T> TypeInfo for EventRecord<E, T>where
    E: TypeInfo + 'static + Parameter + Member,
    Vec<T>: TypeInfo + 'static,
    T: TypeInfo + 'static,

impl<Index, AccountData> TypeInfo for AccountInfo<Index, AccountData>where
    Index: TypeInfo + 'static,
    AccountData: TypeInfo + 'static,

impl TypeInfo for Ratio

impl<AssetId> TypeInfo for PoolType<AssetId>where
    AssetId: TypeInfo + 'static,

impl<Balance, BlockNumber, Price> TypeInfo for AggregatedEntry<Balance, BlockNumber, Price>where
    Price: TypeInfo + 'static,
    Volume<Balance>: TypeInfo + 'static,
    Liquidity<Balance>: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl<Balance> TypeInfo for Volume<Balance>where
    Balance: TypeInfo + 'static,

impl<Balance> TypeInfo for Liquidity<Balance>where
    Balance: TypeInfo + 'static,

impl TypeInfo for Runtime

impl TypeInfo for Event

impl TypeInfo for Call

impl<Balance> TypeInfo for BalanceLock<Balance>where
    Balance: TypeInfo + 'static,

impl<ReserveIdentifier, Balance> TypeInfo for ReserveData<ReserveIdentifier, Balance>where
    ReserveIdentifier: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl<Balance> TypeInfo for AccountData<Balance>where
    Balance: TypeInfo + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    T::CurrencyId: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    T::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    <T::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T::CurrencyId: TypeInfo + 'static,
    T::Balance: HasCompact,
    T: Config + 'static,

impl<Balance, CustomMetadata> TypeInfo for AssetMetadata<Balance, CustomMetadata>where
    Balance: TypeInfo + 'static,
    CustomMetadata: TypeInfo + 'static + Parameter + Member + TypeInfo,

impl<AccountId, Balance, BlockNumber> TypeInfo for AuctionInfo<AccountId, Balance, BlockNumber>where
    Option<(AccountId, Balance)>: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,
    Option<BlockNumber>: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl<Value> TypeInfo for Change<Value>where
    Value: TypeInfo + 'static,

impl TypeInfo for Event

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T, S> TypeInfo for OrderedSet<T, S>where
    BoundedVec<T, S>: TypeInfo + 'static,
    T: Ord + Encode + Decode + MaxEncodedLen + Clone + Eq + PartialEq + TypeInfo + 'static,
    S: Get<u32> + 'static,

impl<BlockNumber, Balance> TypeInfo for VestingSchedule<BlockNumber, Balance>where
    BlockNumber: TypeInfo + 'static,
    Balance: HasCompact + MaxEncodedLen + HasCompact + TypeInfo + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    VestingSchedule<<T as Config>::BlockNumber, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    <T::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    VestingSchedule<<T as Config>::BlockNumber, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>: TypeInfo + 'static,
    Vec<VestingSchedule<<T as Config>::BlockNumber, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::CurrencyId: TypeInfo + 'static,
    T::Balance: TypeInfo + 'static,
    Vec<(T::CurrencyId, T::Balance)>: TypeInfo + 'static,
    T: Config + 'static,

impl<AssetId> TypeInfo for AssetType<AssetId>where
    AssetId: TypeInfo + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    T::AssetId: TypeInfo + 'static,
    BoundedVec<u8, T::StringLimit>: TypeInfo + 'static,
    AssetType<T::AssetId>: TypeInfo + 'static,
    T::AssetNativeLocation: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    AssetType<T::AssetId>: TypeInfo + 'static,
    T::Balance: TypeInfo + 'static,
    Option<T::AssetId>: TypeInfo + 'static,
    Option<T::AssetNativeLocation>: TypeInfo + 'static,
    T::AssetId: TypeInfo + 'static,
    Option<T::Balance>: TypeInfo + 'static,
    T::AssetNativeLocation: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    Vec<T::Header>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    Box<EquivocationProof<T::Header>>: TypeInfo + 'static,
    T::KeyOwnerProof: TypeInfo + 'static,
    T: Config + 'static,

impl<T, I> TypeInfo for Bag<T, I>where
    Option<T::AccountId>: TypeInfo + 'static,
    T::Score: TypeInfo + 'static,
    PhantomData<I>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Node<T, I>where
    T::AccountId: TypeInfo + 'static,
    Option<T::AccountId>: TypeInfo + 'static,
    T::Score: TypeInfo + 'static,
    PhantomData<I>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Event<T, I>where
    T::AccountId: TypeInfo + 'static,
    T::Score: TypeInfo + 'static,
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Error<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Event<T, I>where
    T::AccountId: TypeInfo + 'static,
    T::Balance: TypeInfo + 'static,
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Error<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T::Balance: HasCompact + TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl TypeInfo for Reasons

impl<Balance> TypeInfo for BalanceLock<Balance>where
    Balance: TypeInfo + 'static,

impl<ReserveIdentifier, Balance> TypeInfo for ReserveData<ReserveIdentifier, Balance>where
    ReserveIdentifier: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl<Balance> TypeInfo for AccountData<Balance>where
    Balance: TypeInfo + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId, Balance, BlockNumber> TypeInfo for Bounty<AccountId, Balance, BlockNumber>where
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static,
    BountyStatus<AccountId, BlockNumber>: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<AccountId, BlockNumber> TypeInfo for BountyStatus<AccountId, BlockNumber>where
    AccountId: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<T, I> TypeInfo for Error<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: 'static,
    I: 'static,

impl<T, I> TypeInfo for Event<T, I>where
    BalanceOf<T, I>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    BalanceOf<T, I>: HasCompact,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<AccountId, Balance, BlockNumber> TypeInfo for ChildBounty<AccountId, Balance, BlockNumber>where
    Balance: TypeInfo + 'static,
    ChildBountyStatus<AccountId, BlockNumber>: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<AccountId, BlockNumber> TypeInfo for ChildBountyStatus<AccountId, BlockNumber>where
    AccountId: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    BalanceOf<T>: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    BalanceOf<T>: HasCompact,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId, Balance> TypeInfo for CandidateInfo<AccountId, Balance>where
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    Vec<T::AccountId>: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as SystemConfig>::AccountId>>::Balance: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    Vec<T::AccountId>: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as SystemConfig>::AccountId>>::Balance: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId, I> TypeInfo for RawOrigin<AccountId, I>where
    AccountId: TypeInfo + 'static,
    PhantomData<I>: TypeInfo + 'static,
    I: 'static,

impl<AccountId, BlockNumber> TypeInfo for Votes<AccountId, BlockNumber>where
    Vec<AccountId>: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,

impl<T, I> TypeInfo for Event<T, I>where
    T::AccountId: TypeInfo + 'static,
    T::Hash: TypeInfo + 'static,
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Error<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    Vec<T::AccountId>: TypeInfo + 'static,
    Option<T::AccountId>: TypeInfo + 'static,
    Box<<T as Config<I>>::Proposal>: TypeInfo + 'static,
    T::Hash: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::CurrencyId: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    <<T as Config>::MultiCurrency as MultiCurrencyExtended<<T as Config>::AccountId>>::Amount: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    <T::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::CurrencyId: TypeInfo + 'static,
    <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance: HasCompact,
    <<T as Config>::MultiCurrency as MultiCurrencyExtended<<T as Config>::AccountId>>::Amount: TypeInfo + 'static,
    T: Config + 'static,

impl<Balance> TypeInfo for Tally<Balance>where
    Balance: TypeInfo + 'static,

impl<Balance> TypeInfo for Delegations<Balance>where
    Balance: TypeInfo + 'static,

impl<BlockNumber, Hash, Balance> TypeInfo for ReferendumStatus<BlockNumber, Hash, Balance>where
    BlockNumber: TypeInfo + 'static,
    Hash: TypeInfo + 'static,
    Tally<Balance>: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl<BlockNumber, Hash, Balance> TypeInfo for ReferendumInfo<BlockNumber, Hash, Balance>where
    ReferendumStatus<BlockNumber, Hash, Balance>: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,
    Hash: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl TypeInfo for Vote

impl<Balance> TypeInfo for AccountVote<Balance>where
    Balance: TypeInfo + 'static,

impl<Balance, AccountId, BlockNumber> TypeInfo for Voting<Balance, AccountId, BlockNumber>where
    Vec<(ReferendumIndex, AccountVote<Balance>)>: TypeInfo + 'static,
    Delegations<Balance>: TypeInfo + 'static,
    PriorLock<BlockNumber, Balance>: TypeInfo + 'static,
    Balance: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<AccountId, Balance, BlockNumber> TypeInfo for PreimageStatus<AccountId, Balance, BlockNumber>where
    BlockNumber: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static,
    Option<BlockNumber>: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    Vec<T::AccountId>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    T::Hash: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    AccountVote<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::Hash: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: HasCompact + TypeInfo + 'static,
    AccountVote<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    T::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    T::CurrencyId: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId, Balance, Solution> TypeInfo for SignedSubmission<AccountId, Balance, Solution>where
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static + HasCompact,
    RawSolution<Solution>: TypeInfo + 'static,
    Solution: TypeInfo + 'static,

impl<Bn> TypeInfo for Phase<Bn>where
    (bool, Bn): TypeInfo + 'static,
    Bn: TypeInfo + 'static,

impl<S> TypeInfo for RawSolution<S>where
    S: TypeInfo + 'static,

impl<A> TypeInfo for ReadySolution<A>where
    Supports<A>: TypeInfo + 'static,
    A: TypeInfo + 'static,

impl<T> TypeInfo for RoundSnapshot<T>where
    Vec<VoterOf<T>>: TypeInfo + 'static,
    Vec<T::AccountId>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    <T as Config>::AccountId: TypeInfo + 'static,
    BalanceOf<T>: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    Box<RawSolution<SolutionOf<T::MinerConfig>>>: TypeInfo + 'static,
    Supports<T::AccountId>: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId, Balance> TypeInfo for Voter<AccountId, Balance>where
    Vec<AccountId>: TypeInfo + 'static,
    Balance: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,

impl<AccountId, Balance> TypeInfo for SeatHolder<AccountId, Balance>where
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    Vec<(<T as Config>::AccountId, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance)>: TypeInfo + 'static,
    <T as Config>::AccountId: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    Vec<T::AccountId>: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: HasCompact,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T: Config + 'static,

impl<BlockNumber> TypeInfo for OracleEntry<BlockNumber>where
    BlockNumber: TypeInfo + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<Balance, AccountId> TypeInfo for GiltBid<Balance, AccountId>where
    Balance: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,

impl<Balance, AccountId, BlockNumber> TypeInfo for ActiveGilt<Balance, AccountId, BlockNumber>where
    Balance: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<Balance> TypeInfo for ActiveGiltsTotal<Balance>where
    Balance: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: HasCompact,
    T: Config + 'static,

impl TypeInfo for Event

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    Box<EquivocationProof<T::Hash, T::BlockNumber>>: TypeInfo + 'static,
    T::KeyOwnerProof: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    T: Config + 'static,

impl<N, Limit> TypeInfo for StoredPendingChange<N, Limit>where
    N: TypeInfo + 'static,
    BoundedAuthorityList<Limit>: TypeInfo + 'static,
    Option<N>: TypeInfo + 'static,
    Limit: 'static,

impl<N> TypeInfo for StoredState<N>where
    N: TypeInfo + 'static,

impl TypeInfo for Data

impl<Balance> TypeInfo for Judgement<Balance>where
    Balance: TypeInfo + 'static + Encode + Decode + MaxEncodedLen + Copy + Clone + Debug + Eq + PartialEq,

impl<FieldLimit> TypeInfo for IdentityInfo<FieldLimit>where
    BoundedVec<(Data, Data), FieldLimit>: TypeInfo + 'static,
    FieldLimit: Get<u32> + 'static,

impl<Balance, MaxJudgements, MaxAdditionalFields> TypeInfo for Registration<Balance, MaxJudgements, MaxAdditionalFields>where
    BoundedVec<(RegistrarIndex, Judgement<Balance>), MaxJudgements>: TypeInfo + 'static,
    Balance: TypeInfo + 'static + Encode + Decode + MaxEncodedLen + Copy + Clone + Debug + Eq + PartialEq,
    IdentityInfo<MaxAdditionalFields>: TypeInfo + 'static,
    MaxJudgements: Get<u32> + 'static,
    MaxAdditionalFields: Get<u32> + 'static,

impl<Balance, AccountId> TypeInfo for RegistrarInfo<Balance, AccountId>where
    AccountId: TypeInfo + 'static + Encode + Decode + Clone + Debug + Eq + PartialEq,
    Balance: TypeInfo + 'static + Encode + Decode + Clone + Debug + Eq + PartialEq,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    Box<IdentityInfo<T::MaxAdditionalFields>>: TypeInfo + 'static,
    Vec<(T::AccountId, Data)>: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: HasCompact,
    Judgement<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>: TypeInfo + 'static,
    T: Config + 'static,

impl<BlockNumber> TypeInfo for Heartbeat<BlockNumber>where
    BlockNumber: PartialEq + Eq + Decode + Encode + TypeInfo + 'static,

impl<PeerIdEncodingLimit, MultiAddrEncodingLimit, AddressesLimit> TypeInfo for BoundedOpaqueNetworkState<PeerIdEncodingLimit, MultiAddrEncodingLimit, AddressesLimit>where
    PeerIdEncodingLimit: Get<u32> + 'static,
    MultiAddrEncodingLimit: Get<u32> + 'static,
    AddressesLimit: Get<u32> + 'static,
    WeakBoundedVec<u8, PeerIdEncodingLimit>: TypeInfo + 'static,
    WeakBoundedVec<WeakBoundedVec<u8, MultiAddrEncodingLimit>, AddressesLimit>: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AuthorityId: TypeInfo + 'static,
    Vec<IdentificationTuple<T>>: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    Heartbeat<T::BlockNumber>: TypeInfo + 'static,
    <T::AuthorityId as RuntimeAppPublic>::Signature: TypeInfo + 'static,
    T: Config + 'static,

impl<Offender> TypeInfo for UnresponsivenessOffence<Offender>where
    Vec<Offender>: TypeInfo + 'static,
    Offender: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    T::AccountIndex: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::AccountIndex: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId, BlockNumber> TypeInfo for Pool<AccountId, BlockNumber>where
    AccountId: TypeInfo + 'static,
    Option<BlockNumber>: TypeInfo + 'static,
    BlockNumber: AtLeast32BitUnsigned + Copy + TypeInfo + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    <T as Config>::AccountId: TypeInfo + 'static,
    Pool<T::AccountId, T::BlockNumber>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    <T as Config>::AccountId: TypeInfo + 'static,
    Option<T::AccountId>: TypeInfo + 'static,
    Option<T::BlockNumber>: TypeInfo + 'static,
    (AssetId, <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance): TypeInfo + 'static,
    <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    T: Config + 'static,

impl<T, I> TypeInfo for GlobalFarmData<T, I>where
    T::AccountId: TypeInfo + 'static,
    <T as Config>::BlockNumber: TypeInfo + 'static,
    T::AssetId: TypeInfo + 'static,
    BlockNumberFor<T>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for YieldFarmData<T, I>where
    <T as Config>::BlockNumber: TypeInfo + 'static,
    PhantomData<I>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for DepositData<T, I>where
    T::AmmPoolId: TypeInfo + 'static,
    BoundedVec<YieldFarmEntry<T, I>, T::MaxFarmEntriesPerDeposit>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for YieldFarmEntry<T, I>where
    <T as Config>::BlockNumber: TypeInfo + 'static,
    PhantomData<I>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Error<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: 'static,
    I: 'static,

impl<T, I> TypeInfo for Event<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<AccountId, Balance, BlockNumber> TypeInfo for Offer<AccountId, Balance, BlockNumber>where
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<AccountId> TypeInfo for Royalty<AccountId>where
    AccountId: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    T::NftCollectionId: TypeInfo + 'static,
    T::NftItemId: TypeInfo + 'static,
    Option<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::NftCollectionId: TypeInfo + 'static,
    T::NftItemId: TypeInfo + 'static,
    Option<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    T: Config + 'static,

impl<T, I> TypeInfo for Event<T, I>where
    PhantomData<(T::AccountId, <T as Config<I>>::Event)>: TypeInfo + 'static,
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Error<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    Vec<T::AccountId>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<BlockNumber> TypeInfo for Timepoint<BlockNumber>where
    BlockNumber: TypeInfo + 'static,

impl<BlockNumber, Balance, AccountId> TypeInfo for Multisig<BlockNumber, Balance, AccountId>where
    Timepoint<BlockNumber>: TypeInfo + 'static,
    Balance: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,
    Vec<AccountId>: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    Timepoint<T::BlockNumber>: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    Vec<T::AccountId>: TypeInfo + 'static,
    Box<<T as Config>::Call>: TypeInfo + 'static,
    Option<Timepoint<T::BlockNumber>>: TypeInfo + 'static,
    WrapperKeepOpaque<<T as Config>::Call>: TypeInfo + 'static,
    Timepoint<T::BlockNumber>: TypeInfo + 'static,
    T: Config + 'static,

impl<CollectionType, BoundedVec> TypeInfo for CollectionInfo<CollectionType, BoundedVec>where
    CollectionType: TypeInfo + 'static,
    BoundedVec: TypeInfo + 'static,

impl<BoundedVec> TypeInfo for ItemInfo<BoundedVec>where
    BoundedVec: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    T::NftCollectionId: TypeInfo + 'static,
    T::CollectionType: TypeInfo + 'static,
    BoundedVecOfUnq<T>: TypeInfo + 'static,
    T::NftItemId: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::NftCollectionId: TypeInfo + 'static,
    T::CollectionType: TypeInfo + 'static,
    BoundedVecOfUnq<T>: TypeInfo + 'static,
    T::NftItemId: TypeInfo + 'static,
    <T::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for ConfigOp<T>where
    T: TypeInfo + 'static + Codec + Debug,

impl<Balance> TypeInfo for BondExtra<Balance>where
    Balance: TypeInfo + 'static,

impl<T> TypeInfo for PoolMember<T>where
    BalanceOf<T>: TypeInfo + 'static,
    T::RewardCounter: TypeInfo + 'static,
    BoundedBTreeMap<EraIndex, BalanceOf<T>, T::MaxUnbonding>: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId> TypeInfo for PoolRoles<AccountId>where
    AccountId: TypeInfo + 'static,
    Option<AccountId>: TypeInfo + 'static,

impl<T> TypeInfo for BondedPoolInner<T>where
    BalanceOf<T>: TypeInfo + 'static,
    PoolRoles<T::AccountId>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for RewardPool<T>where
    T::RewardCounter: TypeInfo + 'static,
    BalanceOf<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for UnbondPool<T>where
    BalanceOf<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for SubPools<T>where
    UnbondPool<T>: TypeInfo + 'static,
    BoundedBTreeMap<EraIndex, UnbondPool<T>, TotalUnbondingPools<T>>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    BalanceOf<T>: TypeInfo + 'static,
    Option<T::AccountId>: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    BalanceOf<T>: HasCompact,
    BondExtra<BalanceOf<T>>: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    Vec<T::AccountId>: TypeInfo + 'static,
    ConfigOp<BalanceOf<T>>: TypeInfo + 'static,
    ConfigOp<T::AccountId>: TypeInfo + 'static,
    T: Config + 'static,

impl TypeInfo for Event

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId, Balance> TypeInfo for RequestStatus<AccountId, Balance>where
    Option<(AccountId, Balance)>: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::Hash: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::Hash: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId, ProxyType, BlockNumber> TypeInfo for ProxyDefinition<AccountId, ProxyType, BlockNumber>where
    AccountId: TypeInfo + 'static,
    ProxyType: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<AccountId, Hash, BlockNumber> TypeInfo for Announcement<AccountId, Hash, BlockNumber>where
    AccountId: TypeInfo + 'static,
    Hash: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    T::ProxyType: TypeInfo + 'static,
    <<T as Config>::CallHasher as Hash>::Output: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    Option<T::ProxyType>: TypeInfo + 'static,
    Box<<T as Config>::Call>: TypeInfo + 'static,
    T::ProxyType: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static + HasCompact,
    <<T as Config>::CallHasher as Hash>::Output: TypeInfo + 'static,
    T: Config + 'static,

impl<BlockNumber, Balance, Friends> TypeInfo for ActiveRecovery<BlockNumber, Balance, Friends>where
    BlockNumber: TypeInfo + 'static,
    Balance: TypeInfo + 'static,
    Friends: TypeInfo + 'static,

impl<BlockNumber, Balance, Friends> TypeInfo for RecoveryConfig<BlockNumber, Balance, Friends>where
    BlockNumber: TypeInfo + 'static,
    Balance: TypeInfo + 'static,
    Friends: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    Box<<T as Config>::Call>: TypeInfo + 'static,
    Vec<T::AccountId>: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    T::BlockNumber: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<AssetId> TypeInfo for Trade<AssetId>where
    PoolType<AssetId>: TypeInfo + 'static,
    AssetId: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AssetId: TypeInfo + 'static,
    T::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::AssetId: TypeInfo + 'static,
    T::Balance: TypeInfo + 'static,
    Vec<Trade<T::AssetId>>: TypeInfo + 'static,
    T: Config + 'static,

impl<Call, BlockNumber, PalletsOrigin, AccountId> TypeInfo for ScheduledV3<Call, BlockNumber, PalletsOrigin, AccountId>where
    Call: TypeInfo + 'static,
    Option<Period<BlockNumber>>: TypeInfo + 'static,
    PalletsOrigin: TypeInfo + 'static,
    PhantomData<AccountId>: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::BlockNumber: TypeInfo + 'static,
    TaskAddress<T::BlockNumber>: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    Option<Period<T::BlockNumber>>: TypeInfo + 'static,
    Box<CallOrHashOf<T>>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl TypeInfo for Event

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::Keys: TypeInfo + 'static,
    T: Config + 'static,

impl TypeInfo for Vote

impl<Balance, BlockNumber> TypeInfo for Payout<Balance, BlockNumber>where
    Balance: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<AccountId, Balance> TypeInfo for Bid<AccountId, Balance>where
    AccountId: TypeInfo + 'static,
    BidKind<AccountId, Balance>: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl<AccountId, Balance> TypeInfo for BidKind<AccountId, Balance>where
    Balance: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,

impl<T, I> TypeInfo for Error<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: 'static,
    I: 'static,

impl<T, I> TypeInfo for Event<T, I>where
    T::AccountId: TypeInfo + 'static,
    <<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    Vec<T::AccountId>: TypeInfo + 'static,
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    <<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T> TypeInfo for ConfigOp<T>where
    T: TypeInfo + 'static + Default + Codec,

impl<T> TypeInfo for Event<T>where
    BalanceOf<T>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    BalanceOf<T>: HasCompact,
    RewardDestination<T::AccountId>: TypeInfo + 'static,
    Vec<<<T as Config>::Lookup as StaticLookup>::Source>: TypeInfo + 'static,
    Vec<T::AccountId>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    ConfigOp<BalanceOf<T>>: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId> TypeInfo for EraRewardPoints<AccountId>where
    BTreeMap<AccountId, RewardPoint>: TypeInfo + 'static,
    AccountId: Ord + TypeInfo + 'static,

impl<AccountId> TypeInfo for StakerStatus<AccountId>where
    Vec<AccountId>: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,

impl<AccountId> TypeInfo for RewardDestination<AccountId>where
    AccountId: TypeInfo + 'static,

impl<Balance> TypeInfo for UnlockChunk<Balance>where
    Balance: HasCompact + HasCompact + TypeInfo + 'static,

impl<T> TypeInfo for StakingLedger<T>where
    T::AccountId: TypeInfo + 'static,
    BalanceOf<T>: HasCompact,
    BoundedVec<UnlockChunk<BalanceOf<T>>, MaxUnlockingChunks>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Nominations<T>where
    BoundedVec<T::AccountId, T::MaxNominations>: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId, Balance> TypeInfo for IndividualExposure<AccountId, Balance>where
    AccountId: TypeInfo + 'static,
    Balance: HasCompact + HasCompact + TypeInfo + 'static,

impl<AccountId, Balance> TypeInfo for Exposure<AccountId, Balance>where
    Balance: HasCompact + HasCompact + TypeInfo + 'static,
    Vec<IndividualExposure<AccountId, Balance>>: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,

impl<AccountId, Balance> TypeInfo for UnappliedSlash<AccountId, Balance>where
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static + HasCompact,
    Vec<(AccountId, Balance)>: TypeInfo + 'static,
    Vec<AccountId>: TypeInfo + 'static,

impl TypeInfo for Forcing

impl<T> TypeInfo for Event<T>where
    Option<T::AccountId>: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    Box<<T as Config>::Call>: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::Moment: HasCompact,
    T: Config + 'static,

impl<AccountId, Balance, BlockNumber, Hash> TypeInfo for OpenTip<AccountId, Balance, BlockNumber, Hash>where
    Hash: TypeInfo + 'static + Parameter,
    AccountId: TypeInfo + 'static + Parameter,
    Balance: TypeInfo + 'static + Parameter,
    Option<BlockNumber>: TypeInfo + 'static,
    Vec<(AccountId, Balance)>: TypeInfo + 'static,
    BlockNumber: Parameter + TypeInfo + 'static,

impl<T, I> TypeInfo for Event<T, I>where
    T::Hash: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    BalanceOf<T, I>: TypeInfo + 'static,
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Error<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T::Hash: TypeInfo + 'static,
    BalanceOf<T, I>: HasCompact,
    T: Config<I> + 'static,
    I: 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::Currencies as MultiCurrency<<T as Config>::AccountId>>::CurrencyId: TypeInfo + 'static,
    <<T as Config>::Currencies as MultiCurrency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    <<T as Config>::Currencies as MultiCurrency<<T as Config>::AccountId>>::Balance: FixedPointOperand,
    PhantomData<(T,)>: TypeInfo + 'static,
    <<T as Config>::Currencies as MultiCurrency<<T as Config>::AccountId>>::CurrencyId: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for CurrencyBalanceCheck<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + Send + Sync + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::OnChargeTransaction as OnChargeTransaction<T>>::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for ChargeTransactionPayment<T>where
    <<T as Config>::OnChargeTransaction as OnChargeTransaction<T>>::Balance: HasCompact,
    T: Config + 'static,

impl<AccountId, Balance> TypeInfo for Proposal<AccountId, Balance>where
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl<T, I> TypeInfo for Event<T, I>where
    BalanceOf<T, I>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Error<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    BalanceOf<T, I>: HasCompact,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<AccountId, DepositBalance> TypeInfo for CollectionDetails<AccountId, DepositBalance>where
    AccountId: TypeInfo + 'static,
    DepositBalance: TypeInfo + 'static,

impl<AccountId, DepositBalance> TypeInfo for ItemDetails<AccountId, DepositBalance>where
    AccountId: TypeInfo + 'static,
    Option<AccountId>: TypeInfo + 'static,
    DepositBalance: TypeInfo + 'static,

impl<DepositBalance, StringLimit> TypeInfo for CollectionMetadata<DepositBalance, StringLimit>where
    DepositBalance: TypeInfo + 'static,
    BoundedVec<u8, StringLimit>: TypeInfo + 'static,
    StringLimit: Get<u32> + 'static,

impl<DepositBalance, StringLimit> TypeInfo for ItemMetadata<DepositBalance, StringLimit>where
    DepositBalance: TypeInfo + 'static,
    BoundedVec<u8, StringLimit>: TypeInfo + 'static,
    StringLimit: Get<u32> + 'static,

impl<T, I> TypeInfo for Event<T, I>where
    T::CollectionId: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    T::ItemId: TypeInfo + 'static,
    BoundedVec<u8, T::StringLimit>: TypeInfo + 'static,
    Vec<T::ItemId>: TypeInfo + 'static,
    Option<T::ItemId>: TypeInfo + 'static,
    BoundedVec<u8, T::KeyLimit>: TypeInfo + 'static,
    BoundedVec<u8, T::ValueLimit>: TypeInfo + 'static,
    Option<T::CollectionId>: TypeInfo + 'static,
    <<T as Config<I>>::Currency as Currency<<T as SystemConfig>::AccountId>>::Balance: TypeInfo + 'static,
    Option<T::AccountId>: TypeInfo + 'static,
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Error<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T::CollectionId: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    T::ItemId: TypeInfo + 'static,
    Option<<<T as Config>::Lookup as StaticLookup>::Source>: TypeInfo + 'static,
    Vec<T::ItemId>: TypeInfo + 'static,
    Option<T::ItemId>: TypeInfo + 'static,
    BoundedVec<u8, T::KeyLimit>: TypeInfo + 'static,
    BoundedVec<u8, T::ValueLimit>: TypeInfo + 'static,
    BoundedVec<u8, T::StringLimit>: TypeInfo + 'static,
    Option<T::CollectionId>: TypeInfo + 'static,
    Option<<<T as Config<I>>::Currency as Currency<<T as SystemConfig>::AccountId>>::Balance>: TypeInfo + 'static,
    <<T as Config<I>>::Currency as Currency<<T as SystemConfig>::AccountId>>::Balance: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl TypeInfo for Event

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    Vec<<T as Config>::Call>: TypeInfo + 'static,
    Box<<T as Config>::Call>: TypeInfo + 'static,
    Box<T::PalletsOrigin>: TypeInfo + 'static,
    T: Config + 'static,

impl<Balance, BlockNumber> TypeInfo for VestingInfo<Balance, BlockNumber>where
    Balance: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    <<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
    VestingInfo<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, T::BlockNumber>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl TypeInfo for Origin

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<BlockNumber> TypeInfo for QueryStatus<BlockNumber>where
    BlockNumber: TypeInfo + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    Box<VersionedXcm<<T as SysConfig>::Call>>: TypeInfo + 'static,
    T: Config + 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T, I> TypeInfo for Call<T, I>where
    PhantomData<(T, I)>: TypeInfo + 'static,
    T: Config<I> + 'static,
    I: 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    <T as Config>::BlockNumber: TypeInfo + 'static,
    BlockNumberFor<T>: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    <T as Config>::BlockNumber: TypeInfo + 'static,
    BlockNumberFor<T>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl TypeInfo for Event

impl TypeInfo for Call

impl<BlockNumber> TypeInfo for InboundDownwardMessage<BlockNumber>where
    BlockNumber: TypeInfo + 'static,

impl<BlockNumber> TypeInfo for InboundHrmpMessage<BlockNumber>where
    BlockNumber: TypeInfo + 'static,

impl<Id> TypeInfo for OutboundHrmpMessage<Id>where
    Id: TypeInfo + 'static,

impl TypeInfo for Id

impl TypeInfo for Sibling

impl<Payload, RealPayload> TypeInfo for UncheckedSigned<Payload, RealPayload>where
    Payload: TypeInfo + 'static,
    PhantomData<RealPayload>: TypeInfo + 'static,
    RealPayload: TypeInfo + 'static,

impl<H> TypeInfo for CandidateDescriptor<H>where
    H: TypeInfo + 'static,

impl<H> TypeInfo for CandidateReceipt<H>where
    CandidateDescriptor<H>: TypeInfo + 'static,
    H: TypeInfo + 'static,

impl<H, N> TypeInfo for FullCandidateReceipt<H, N>where
    CandidateReceipt<H>: TypeInfo + 'static,
    PersistedValidationData<H, N>: TypeInfo + 'static,
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<H> TypeInfo for CommittedCandidateReceipt<H>where
    CandidateDescriptor<H>: TypeInfo + 'static,
    H: TypeInfo + 'static,

impl<H, N> TypeInfo for PersistedValidationData<H, N>where
    N: TypeInfo + 'static,
    H: TypeInfo + 'static,

impl<N> TypeInfo for CandidateCommitments<N>where
    N: TypeInfo + 'static,

impl<H> TypeInfo for BackedCandidate<H>where
    CommittedCandidateReceipt<H>: TypeInfo + 'static,
    H: TypeInfo + 'static,

impl<N> TypeInfo for GroupRotationInfo<N>where
    N: TypeInfo + 'static,

impl<H, N> TypeInfo for OccupiedCore<H, N>where
    N: TypeInfo + 'static,
    CandidateDescriptor<H>: TypeInfo + 'static,
    H: TypeInfo + 'static,

impl<H, N> TypeInfo for CoreState<H, N>where
    OccupiedCore<H, N>: TypeInfo + 'static,
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<H> TypeInfo for CandidateEvent<H>where
    CandidateReceipt<H>: TypeInfo + 'static,
    H: TypeInfo + 'static,

impl<H> TypeInfo for ScrapedOnChainVotes<H>where
    Vec<(CandidateReceipt<H>, Vec<(ValidatorIndex, ValidityAttestation)>)>: TypeInfo + 'static,
    H: Encode + Decode + TypeInfo + 'static,

impl<N> TypeInfo for DisputeState<N>where
    N: TypeInfo + 'static,
    Option<N>: TypeInfo + 'static,

impl<HDR> TypeInfo for InherentData<HDR>where
    Vec<BackedCandidate<HDR::Hash>>: TypeInfo + 'static,
    HDR: TypeInfo + 'static + HeaderT,

impl TypeInfo for Runtime

impl TypeInfo for Event

impl TypeInfo for Call

impl<AccountId, LeasePeriod> TypeInfo for ParachainTemporarySlot<AccountId, LeasePeriod>where
    AccountId: TypeInfo + 'static,
    LeasePeriod: TypeInfo + 'static,
    Option<LeasePeriod>: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    <<T as Config>::Leaser as Leaser<<T as Config>::BlockNumber>>::LeasePeriod: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    <<<T as Config>::Leaser as Leaser<<T as Config>::BlockNumber>>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::BlockNumber: HasCompact,
    <<T as Config>::Leaser as Leaser<<T as Config>::BlockNumber>>::LeasePeriod: HasCompact,
    <<<T as Config>::Leaser as Leaser<<T as Config>::BlockNumber>>::Currency as Currency<<T as Config>::AccountId>>::Balance: HasCompact,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    <<<T as Config>::VestingSchedule as VestingSchedule<<T as Config>::AccountId>>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    <<<T as Config>::VestingSchedule as VestingSchedule<<T as Config>::AccountId>>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    Option<(<<<T as Config>::VestingSchedule as VestingSchedule<<T as Config>::AccountId>>::Currency as Currency<<T as Config>::AccountId>>::Balance, <<<T as Config>::VestingSchedule as VestingSchedule<<T as Config>::AccountId>>::Currency as Currency<<T as Config>::AccountId>>::Balance, T::BlockNumber)>: TypeInfo + 'static,
    Option<T::AccountId>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for PrevalidateAttests<T>where
    <T as Config>::Call: IsSubType<Call<T>>,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + Send + Sync + 'static,

impl<BlockNumber> TypeInfo for LastContribution<BlockNumber>where
    BlockNumber: TypeInfo + 'static,

impl<AccountId, Balance, BlockNumber, LeasePeriod> TypeInfo for FundInfo<AccountId, Balance, BlockNumber, LeasePeriod>where
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static,
    BlockNumber: TypeInfo + 'static,
    LastContribution<BlockNumber>: TypeInfo + 'static,
    LeasePeriod: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    <<<T as Config>::Auctioneer as Auctioneer<<T as Config>::BlockNumber>>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    <<<T as Config>::Auctioneer as Auctioneer<<T as Config>::BlockNumber>>::Currency as Currency<<T as Config>::AccountId>>::Balance: HasCompact,
    <<T as Config>::Auctioneer as Auctioneer<<T as Config>::BlockNumber>>::LeasePeriod: HasCompact,
    T::BlockNumber: HasCompact,
    T::AccountId: TypeInfo + 'static,
    T: Config + 'static,

impl<Account, Balance> TypeInfo for ParaInfo<Account, Balance>where
    Account: TypeInfo + 'static,
    Balance: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<Balance> TypeInfo for AccountStatus<Balance>where
    Balance: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    <T as Config>::BlockNumber: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::AccountId: TypeInfo + 'static,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
    <T as Config>::BlockNumber: TypeInfo + 'static,
    T: Config + 'static,

impl<BlockNumber> TypeInfo for HostConfiguration<BlockNumber>where
    BlockNumber: TypeInfo + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    T::BlockNumber: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Event<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<N> TypeInfo for AvailabilityBitfieldRecord<N>where
    N: TypeInfo + 'static,

impl<H, N> TypeInfo for CandidatePendingAvailability<H, N>where
    CandidateDescriptor<H>: TypeInfo + 'static,
    N: TypeInfo + 'static,
    H: TypeInfo + 'static,

impl<T> TypeInfo for Event<T>where
    CandidateReceipt<T::Hash>: TypeInfo + 'static,
    PhantomData<T>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl TypeInfo for Origin

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<N> TypeInfo for ReplacementTimes<N>where
    N: TypeInfo + 'static,

impl<N> TypeInfo for ParaPastCodeMeta<N>where
    Vec<ReplacementTimes<N>>: TypeInfo + 'static,
    Option<N>: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl TypeInfo for Event

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T::BlockNumber: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    ParachainsInherentData<T::Header>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl TypeInfo for Event

impl<T> TypeInfo for Error<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: 'static,

impl<T> TypeInfo for Call<T>where
    PhantomData<(T,)>: TypeInfo + 'static,
    T: Config + 'static,

impl<AccountId, Balance, IntentionID> TypeInfo for ExchangeIntention<AccountId, Balance, IntentionID>where
    AccountId: TypeInfo + 'static,
    Balance: TypeInfo + 'static,
    IntentionID: TypeInfo + 'static,

impl TypeInfo for Runtime

impl TypeInfo for Event

impl TypeInfo for Call

impl TypeInfo for Slot

impl<Header, Id> TypeInfo for EquivocationProof<Header, Id>where
    Id: TypeInfo + 'static,
    Header: TypeInfo + 'static,

impl<H, N> TypeInfo for EquivocationProof<H, N>where
    Equivocation<H, N>: TypeInfo + 'static,
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<H, N> TypeInfo for Equivocation<H, N>where
    Equivocation<AuthorityId, Prevote<H, N>, AuthoritySignature>: TypeInfo + 'static,
    Equivocation<AuthorityId, Precommit<H, N>, AuthoritySignature>: TypeInfo + 'static,
    H: TypeInfo + 'static,
    N: TypeInfo + 'static,

impl<AccountId> TypeInfo for Support<AccountId>where
    Vec<(AccountId, ExtendedBalance)>: TypeInfo + 'static,
    AccountId: TypeInfo + 'static,

impl TypeInfo for Runtime

impl TypeInfo for Event

impl TypeInfo for Call

impl TypeInfo for Runtime

impl TypeInfo for Event

impl TypeInfo for Call

impl TypeInfo for BodyId

impl<Call> TypeInfo for Order<Call>where
    Call: 'static,

impl TypeInfo for Error

impl TypeInfo for Outcome

impl<Call> TypeInfo for Xcm<Call>where
    Call: 'static,

impl TypeInfo for AssetId

impl<Call> TypeInfo for Order<Call>where
    Call: 'static,

impl TypeInfo for Error

impl TypeInfo for Outcome

impl<Call> TypeInfo for Xcm<Call>where
    Call: 'static,

impl TypeInfo for Error

impl TypeInfo for Outcome

impl<Call> TypeInfo for Xcm<Call>where
    Call: 'static,

impl<Call> TypeInfo for Instruction<Call>where
    Call: 'static,

impl<T> TypeInfo for DoubleEncoded<T>where
    T: 'static,

impl<Call> TypeInfo for VersionedXcm<Call>where
    Call: 'static,