Module balance

Source
Expand description

Pallet implementation of LazyBalance using virtual structs and plugins.

Provides a generic, plugin-driven balance system where behavior is defined by LazyBalance::BalanceFamily thin-delegated to Config::BalanceFamily, rather than being hardcoded.

State is encoded using SumDynType and accessed through VirtualDynField, enabling flexible virtual schemas.

Supports:

  • lazy evaluation of balances
  • snapshot-based time tracking via VirtualNMap
  • typed dispatch through tagged input/output enums

Macrosยง

impl_product_alloc ๐Ÿ”’
Implements all virtual field and extension bindings for a ProductType.
impl_v_ext ๐Ÿ”’
Implements VirtualDynExtension for a ProductType extension field.
impl_v_field ๐Ÿ”’
Implements VirtualDynField for a ProductType field.
lazy_input ๐Ÿ”’
Defines the LazyInput enum for LazyBalance operations.
lazy_output ๐Ÿ”’
Defines the LazyOutput enum for LazyBalance operations.

Structsยง

DispatchPolicy
Execution policy for LazyBalance plugin operations.
LimitsProduct
Virtual limits container for LazyBalance operations.
ProductType
A generic virtual product structure used by LazyBalance components.

Enumsยง

LazyInput
LazyOutput

Traitsยง

ProductProvider
Schema provider for ProductType typical via BalanceModelContext.

Functionsยง

balance_total
Returns total value of a VirtualBalance for a (variant, digest) pair via LazyBalance::total_value execution.
can_deposit
Checks if a deposit is allowed under current constraints via LazyBalance::can_deposit execution.
can_mint
Checks if minting is allowed under current constraints via LazyBalance::can_withdraw execution.
can_reap
Checks if reaping is allowed under current constraints via LazyBalance::can_reap execution.
can_withdraw
Checks if a withdrawal is allowed for a given VirtualReceipt via LazyBalance::can_withdraw execution.
deposit
Deposits value into a VirtualBalance via LazyBalance::deposit execution.
deposit_limits_of
Returns deposit limits implementing Extent for a VirtualBalance context via LazyBalance::deposit_limits execution.
drain
Drains all value associated with a (variant, digest) pair via LazyBalance::drain execution.
has_deposits
Checks whether any deposits exist for a (variant, digest) pair via LazyBalance::has_deposits execution.
mint
Mints value into a VirtualBalance (e.g. rewards/inflation) via LazyBalance::mint execution.
mint_limits_of
Returns mint limits implementing Extent for a VirtualBalance context via LazyBalance::mint_limits execution.
reap
Reaps (removes) value from a VirtualBalance (e.g. penalties/deflation) via LazyBalance::reap execution.
reap_limits_of
Returns reap limits implementing Extent for a VirtualBalance context via LazyBalance::reap_limits execution.
receipt_active_value
Returns the current (lazy-evaluated) value of a VirtualReceipt via LazyBalance::receipt_active_value execution.
receipt_deposit_value
Returns the original deposited value of a VirtualReceipt via LazyBalance::receipt_deposit_value execution.
withdraw
Withdraws value from a VirtualBalance using a VirtualReceipt via LazyBalance::withdraw execution.

Type Aliasesยง

LazyAssetOf ๐Ÿ”’
Convenient alias for the palletโ€™s underlying asset type.
LazyBalanceOf ๐Ÿ”’
Convenient alias for the palletโ€™s virtual balance type.
LazyErrorOf ๐Ÿ”’
Convenient alias for the error type resolved from the lazy balance context.
LazyIdOf ๐Ÿ”’
Convenient alias for the digest identifier used in lazy balance.
LazyReceiptOf ๐Ÿ”’
Convenient alias for the palletโ€™s virtual receipt type.
LazyVariantOf ๐Ÿ”’
Convenient alias for the variant (position) used in lazy balance.