Crate frame_support
source ·Expand description
Support code for the runtime.
Note on Tuple Traits
Many of the traits defined in traits have auto-implementations on tuples as well. Usually,
the tuple is a function of number of pallets in the runtime. By default, the traits are
implemented for tuples of up to 64 items.
Re-exports
pub use serde;pub use self::storage::storage_noop_guard::StorageNoopGuard;pub use self::dispatch::Callable;pub use self::dispatch::Parameter;pub use self::storage::migration;pub use self::storage::IterableStorageDoubleMap;pub use self::storage::IterableStorageMap;pub use self::storage::IterableStorageNMap;pub use self::storage::StorageDoubleMap;pub use self::storage::StorageMap;pub use self::storage::StorageNMap;pub use self::storage::StoragePrefixedMap;pub use self::storage::StorageValue;pub use sp_runtime;
Modules
- Utilities for dealing with crypto primitives. Sometimes we need to use these from inside WASM contracts, where crypto calculations have weak performance.
- Dispatch system. Contains a macro for defining runtime modules and generating values representing lazy module function calls.
- Provides functions to interact with the dispatch context.
- Macro for declaring a module error.
- Macros that define an Event types. Events can be used to easily report changes or conditions in your runtime to external entities like users, chain explorers, or dApps.
- Some instance placeholder to be used in
frame_support::palletattribute macro. - Contains macro stubs for all of the pallet:: macros
- Prelude to be used alongside pallet macro, for ease of use.
- Stuff to do with the runtime’s storage.
- Traits and associated utilities for use in the FRAME environment.
- Re-exports
sp-weightspublic API, and contains benchmarked weight constants specific to FRAME.
Macros
- Assert an expression returns an error specified.
- Assert an expression returns an error specified.
- Assert an expression returns error with the given weight.
- Assert that the maximum encoding size does not exceed the value defined in
MAX_MODULE_ERROR_ENCODED_SIZEduring compilation. - Evaluate an expression, assert it returns an expected
Errvalue and that runtime storage has not been mutated (i.e. expression is a no-operation). - Panic if an expression doesn’t evaluate to
Ok. - Evaluate any expression and assert that runtime storage has not been mutated (i.e. expression is a storage no-operation).
- Construct a runtime, with the given name and the given pallets.
- Convert the current crate version into a
CrateVersion. - Declare an error type for a runtime module.
- Implement the
Eventfor a module. - Declares a
Modulestruct and aCallenum, which implements the dispatch logic. - Declares strongly-typed wrappers around codec-compatible types in storage.
- Generic function to mark an execution path as ONLY defensive.
- Trigger a defensive failure if a condition is not met.
- Evaluate
$x:exprand if not true returnErr($y:expr). - Return Err of the expression:
return Err($expression);. - Macro that inserts some tokens after the first match of some pattern.
- match_typeDeprecatedCreate a type which implements the
Containstrait for a particular type with syntax similar tomatches!. - Create a type which implements the
Containstrait for a particular type with syntax similar tomatches!. - Macro for easily creating a new implementation of both the
GetandContainstraits. Use exactly as withparameter_types, only the type must beOrd. - Create new implementations of the
Gettrait. - Print out a formatted message.
- Enable/disable the given code depending on
feature = "std"being enabled for the crate or not.
Structs
- Hash storage keys with blake2 128
- Hash storage keys with
concat(blake2_128(key), key) - Hash storage keys with blake2 256
- A bounded map based on a B-Tree.
- A bounded set based on a B-Tree.
- A bounded slice.
- A bounded vector.
- Store the key directly.
- A pallet identifier. These are per pallet and should be stored in a registry somewhere.
- Hash storage keys with
concat(twox64(key), key) - Hash storage keys with twox 128
- Hash storage keys with twox 256
- A weakly bounded vector.
Enums
- A type that cannot be instantiated.
- The void type - it cannot exist.
Constants
- A unified log target for support operations.
- The number of bytes of the module-specific
errorfield defined inModuleError. In FRAME, this is the maximum encoded size of a pallet error type.
Traits
- Trait for things which can be printed from the runtime.
- Hasher to use to hash keys to insert to storage.
- Hasher to use to hash keys to insert to storage.
Functions
- Print out the debuggable type.
- Print something that implements
Printablefrom the runtime.
Type Definitions
- Consensus engine unique ID.
Attribute Macros
- The
palletattribute macro defines a pallet that can be used withconstruct_runtime!. It must be attached to a module namedpalletas follows: - Assert the annotated function is executed within a storage transaction.
- Generate a new type alias for
storage::types::StorageValue,storage::types::StorageMap,storage::types::StorageDoubleMapandstorage::types::StorageNMap. - Execute the annotated function in a new storage transaction.
Derive Macros
- Derive
Clonebut do not bound any generic. - Derive
Debugbut do not bound any generic. - Derive
Defaultbut do not bound any generic. - Derive
Eqbut do not bound any generic. - Derive
PartialEqbut do not bound any generic. - Derive [
Debug], ifstdis enabled it usesframe_support::DebugNoBound, ifstdis not enabled it just returns"<stripped>". This behaviour is useful to prevent bloating the runtime WASM blob from unneeded code.