[−][src]Module frame_support::weights
Primitives for transaction weighting.
All dispatchable functions defined in decl_module!
must provide two trait implementations:
- [
WeightData
]: To determine the weight of the dispatch. ClassifyDispatch
: To determine the class of the dispatch. See the enum definition for more information on dispatch classes.
Every dispatchable function is responsible for providing this data via an optional #[weight = $x]
attribute. In this snipped, $x
can be any user provided struct that implements the
two aforementioned traits.
Substrate then bundles then output information of the two traits into DispatchInfo
struct
and provides it by implementing the GetDispatchInfo
for all Call
variants, and opaque
extrinsic types.
If no #[weight]
is defined, the macro automatically injects the Default
implementation of
the SimpleDispatchInfo
.
Note that the decl_module macro cannot enforce this and will simply fail if an invalid struct
(something that does not implement Weighable
) is passed in.
Structs
DispatchInfo | A bundle of static information collected from the |
FunctionOf | A struct to represent a weight which is a function of the input arguments. The given items have the following types: |
Enums
DispatchClass | A generalized group of dispatch types. This is only distinguishing normal, user-triggered transactions
( |
SimpleDispatchInfo | Default type used with the |
Traits
ClassifyDispatch | Means of classifying a dispatchable function. |
GetDispatchInfo | A |
PaysFee | Indicates if dispatch function should pay fees or not. If set to false, the block resource limits are applied, yet no fee is deducted. |
WeighBlock | Means of determining the weight of a block's life cycle hooks: |
WeighData | Means of weighing some particular kind of data ( |
Type Definitions
TransactionPriority | Re-export priority as type Priority for a transaction. Additive. Higher is better. |
Weight | Numeric range of a transaction weight. |