pub struct Pallet<T>(_);
Expand description

The Pallet struct, the main type that implements traits and standalone functions within the pallet.

Implementations§

source§

impl<T: Config> Pallet<T>

source

pub fn register_vault( origin: OriginFor<T>, currency_pair: DefaultVaultCurrencyPair<T>, collateral: <T as Config>::Balance ) -> DispatchResultWithPostInfo

Initiates the registration procedure for a new Vault. The Vault locks up collateral, which is to be used in the issuing process.

Errors
  • InsufficientVaultCollateralAmount - if the collateral is below the minimum threshold
  • VaultAlreadyRegistered - if a vault is already registered for the origin account
  • InsufficientCollateralAvailable - if the vault does not own enough collateral
source

pub fn register_public_key( origin: OriginFor<T>, public_key: BtcPublicKey ) -> DispatchResultWithPostInfo

Registers a new Bitcoin address for the vault.

Arguments
  • public_key - the BTC public key of the vault to update
source

pub fn accept_new_issues( origin: OriginFor<T>, currency_pair: DefaultVaultCurrencyPair<T>, accept_new_issues: bool ) -> DispatchResultWithPostInfo

Configures whether or not the vault accepts new issues.

Arguments
  • origin - sender of the transaction (i.e. the vault)
  • accept_new_issues - true indicates that the vault accepts new issues
Weight: O(1)
source

pub fn set_custom_secure_threshold( origin: OriginFor<T>, currency_pair: DefaultVaultCurrencyPair<T>, custom_threshold: Option<UnsignedFixedPoint<T>> ) -> DispatchResultWithPostInfo

Configures a custom, higher secure collateral threshold for the vault.

Arguments
  • origin - sender of the transaction (i.e. the vault)
  • custom_threshold - either the threshold, or None to use the systemwide default
Weight: O(1)
source

pub fn report_undercollateralized_vault( _origin: OriginFor<T>, vault_id: DefaultVaultId<T> ) -> DispatchResultWithPostInfo

source

pub fn set_minimum_collateral( origin: OriginFor<T>, currency_id: CurrencyId<T>, minimum: <T as Config>::Balance ) -> DispatchResult

Changes the minimum amount of collateral required for registration (only executable by the Root account)

Arguments
  • currency_id - the collateral’s currency id
  • minimum - the new minimum collateral
source

pub fn set_system_collateral_ceiling( origin: OriginFor<T>, currency_pair: DefaultVaultCurrencyPair<T>, ceiling: <T as Config>::Balance ) -> DispatchResult

Changes the collateral ceiling for a currency (only executable by the Root account)

Arguments
  • currency_pair - the currency pair to change
  • ceiling - the new collateral ceiling
source

pub fn set_secure_collateral_threshold( origin: OriginFor<T>, currency_pair: DefaultVaultCurrencyPair<T>, threshold: UnsignedFixedPoint<T> ) -> DispatchResult

Changes the secure threshold for a currency (only executable by the Root account)

Arguments
  • currency_pair - the currency pair to change
  • threshold - the new secure threshold
source

pub fn set_premium_redeem_threshold( origin: OriginFor<T>, currency_pair: DefaultVaultCurrencyPair<T>, threshold: UnsignedFixedPoint<T> ) -> DispatchResult

Changes the collateral premium redeem threshold for a currency (only executable by the Root account)

Arguments
  • currency_pair - the currency pair to change
  • ceiling - the new collateral ceiling
source

pub fn set_liquidation_collateral_threshold( origin: OriginFor<T>, currency_pair: DefaultVaultCurrencyPair<T>, threshold: UnsignedFixedPoint<T> ) -> DispatchResult

Changes the collateral liquidation threshold for a currency (only executable by the Root account)

Arguments
  • currency_pair - the currency pair to change
  • ceiling - the new collateral ceiling
source

pub fn recover_vault_id( origin: OriginFor<T>, currency_pair: DefaultVaultCurrencyPair<T> ) -> DispatchResult

Recover vault ID from a liquidated status.

Arguments
  • currency_pair - the currency pair to change
source§

impl<T: Config> Pallet<T>

source

pub fn minimum_collateral_vault<KArg>(k: KArg) -> <T as Config>::Balancewhere KArg: EncodeLike<CurrencyId<T>>,

“ The minimum collateral (e.g. DOT/KSM) a Vault needs to provide to register.“

source§

impl<T: Config> Pallet<T>

source

pub fn punishment_delay() -> BlockNumberFor<T>

“ If a Vault fails to execute a correct redeem or replace, it is temporarily banned“ “ from further issue, redeem or replace requests. This value configures the duration“ “ of this ban (in number of blocks) .“

source§

impl<T: Config> Pallet<T>

source

pub fn secure_collateral_threshold<KArg>( k: KArg ) -> Option<UnsignedFixedPoint<T>>where KArg: EncodeLike<DefaultVaultCurrencyPair<T>>,

“ Determines the over-collateralization rate for collateral locked by Vaults, necessary for“ “ wrapped tokens. This threshold should be greater than the LiquidationCollateralThreshold.“

source§

impl<T: Config> Pallet<T>

source

pub fn premium_redeem_threshold<KArg>(k: KArg) -> Option<UnsignedFixedPoint<T>>where KArg: EncodeLike<DefaultVaultCurrencyPair<T>>,

“ Determines the rate for the collateral rate of Vaults, at which users receive a premium,“ “ allocated from the Vault's collateral, when performing a redeem with this Vault. This“ “ threshold should be greater than the LiquidationCollateralThreshold.“

source§

impl<T: Config> Pallet<T>

source

pub fn liquidation_collateral_threshold<KArg>( k: KArg ) -> Option<UnsignedFixedPoint<T>>where KArg: EncodeLike<DefaultVaultCurrencyPair<T>>,

“ Determines the lower bound for the collateral rate in issued tokens. If a Vault’s“ “ collateral rate drops below this, automatic liquidation (forced Redeem) is triggered.“

source§

impl<T: Config> Pallet<T>

source

pub fn storage_version() -> Version

“ Pallet storage version“

source§

impl<T: Config> Pallet<T>

source

pub fn liquidation_vault_account_id() -> T::AccountId

Public functions

source

pub fn _register_vault( vault_id: DefaultVaultId<T>, collateral: <T as Config>::Balance ) -> DispatchResult

source

pub fn try_set_vault_custom_secure_threshold( vault_id: &DefaultVaultId<T>, new_threshold: Option<UnsignedFixedPoint<T>> ) -> DispatchResult

source

pub fn get_vault_secure_threshold( vault_id: &DefaultVaultId<T> ) -> Result<UnsignedFixedPoint<T>, DispatchError>

source

pub fn get_bitcoin_public_key( account_id: &T::AccountId ) -> Result<BtcPublicKey, DispatchError>

source

pub fn get_vault_from_id( vault_id: &DefaultVaultId<T> ) -> Result<DefaultVault<T>, DispatchError>

source

pub fn get_backing_collateral( vault_id: &DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

source

pub fn get_vault_max_premium_redeem( vault_id: &DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

Calculate the maximum premium that can be given by a vault.

Arguments
  • vault_id - The identifier of the vault for which the maximum premium is being calculated.
Returns

Returns a Result containing the calculated maximum premium as an Amount<T>.

source

pub fn get_liquidated_collateral( vault_id: &DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

source

pub fn get_free_redeemable_tokens( vault_id: &DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

source

pub fn get_active_vault_from_id( vault_id: &DefaultVaultId<T> ) -> Result<DefaultVault<T>, DispatchError>

Like get_vault_from_id, but additionally checks that the vault is active

source

pub fn try_deposit_collateral( vault_id: &DefaultVaultId<T>, amount: &Amount<T> ) -> DispatchResult

Deposit an amount of collateral to be used for collateral tokens

Arguments
  • vault_id - the id of the vault
  • amount - the amount of collateral
source

pub fn force_withdraw_collateral( vault_id: &DefaultVaultId<T>, amount: &Amount<T> ) -> DispatchResult

Withdraw an amount of collateral without checking collateralization

Arguments
  • vault_id - the id of the vault
  • amount - the amount of collateral
source

pub fn is_allowed_to_withdraw_collateral( vault_id: &DefaultVaultId<T>, amount: Option<Amount<T>> ) -> Result<bool, DispatchError>

Checks if the vault would be above the secure threshold after withdrawing collateral

source

pub fn transfer_funds_saturated( from: CurrencySource<T>, to: CurrencySource<T>, amount: &Amount<T> ) -> Result<Amount<T>, DispatchError>

source

pub fn transfer_funds( from: CurrencySource<T>, to: CurrencySource<T>, amount: &Amount<T> ) -> DispatchResult

source

pub fn try_increase_to_be_issued_tokens( vault_id: &DefaultVaultId<T>, tokens: &Amount<T> ) -> Result<(), DispatchError>

Checks if the vault has sufficient collateral to increase the to-be-issued tokens, and if so, increases it

Arguments
  • vault_id - the id of the vault from which to increase to-be-issued tokens
  • tokens - the amount of tokens to be reserved
source

pub fn register_deposit_address( vault_id: &DefaultVaultId<T>, issue_id: H256 ) -> Result<BtcAddress, DispatchError>

Registers a btc address

Arguments
  • issue_id - secure id for generating deposit address
source

pub fn requestable_to_be_replaced_tokens( vault_id: &DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

returns the amount of tokens that a vault can request to be replaced on top of the current to-be-replaced tokens

source

pub fn try_increase_to_be_replaced_tokens( vault_id: &DefaultVaultId<T>, tokens: &Amount<T> ) -> Result<Amount<T>, DispatchError>

returns the new total to-be-replaced and replace-collateral

source

pub fn decrease_to_be_replaced_tokens( vault_id: &DefaultVaultId<T>, tokens: &Amount<T> ) -> Result<(Amount<T>, Amount<T>), DispatchError>

source

pub fn decrease_to_be_issued_tokens( vault_id: &DefaultVaultId<T>, tokens: &Amount<T> ) -> DispatchResult

Decreases the amount of tokens to be issued in the next issue request from the vault, or from the liquidation vault if the vault is liquidated

Arguments
  • vault_id - the id of the vault from which to decrease to-be-issued tokens
  • tokens - the amount of tokens to be unreserved
source

pub fn issue_tokens( vault_id: &DefaultVaultId<T>, tokens: &Amount<T> ) -> DispatchResult

Issues an amount of tokens tokens for the given vault_id At this point, the to-be-issued tokens assigned to a vault are decreased and the issued tokens balance is increased by the amount of issued tokens.

Arguments
  • vault_id - the id of the vault from which to issue tokens
  • tokens - the amount of tokens to issue
Errors
  • VaultNotFound - if no vault exists for the given vault_id
  • InsufficientTokensCommitted - if the amount of tokens reserved is too low
source

pub fn get_global_secure_threshold( currency_pair: &VaultCurrencyPair<CurrencyId<T>> ) -> Result<UnsignedFixedPoint<T>, DispatchError>

Get the global secure threshold for a specified currency pair.

Arguments
  • currency_pair - The currency pair for which to retrieve the global secure threshold.
Returns

Returns the global secure threshold for the specified currency pair or an error if the threshold is not set.

Errors
  • ThresholdNotSet - If the secure collateral threshold for the given currency_pair is not set.
source

pub fn try_increase_to_be_redeemed_tokens( vault_id: &DefaultVaultId<T>, tokens: &Amount<T> ) -> DispatchResult

Adds an amount tokens to the to-be-redeemed tokens balance of a vault. This function serves as a prevention against race conditions in the redeem and replace procedures. If, for example, a vault would receive two redeem requests at the same time that have a higher amount of tokens to be issued than his issuedTokens balance, one of the two redeem requests should be rejected.

Arguments
  • vault_id - the id of the vault from which to increase to-be-redeemed tokens
  • tokens - the amount of tokens to be redeemed
Errors
  • VaultNotFound - if no vault exists for the given vault_id
  • InsufficientTokensCommitted - if the amount of redeemable tokens is too low
source

pub fn decrease_to_be_redeemed_tokens( vault_id: &DefaultVaultId<T>, tokens: &Amount<T> ) -> DispatchResult

Subtracts an amount tokens from the to-be-redeemed tokens balance of a vault.

Arguments
  • vault_id - the id of the vault from which to decrease to-be-redeemed tokens
  • tokens - the amount of tokens to be redeemed
Errors
  • VaultNotFound - if no vault exists for the given vault_id
  • InsufficientTokensCommitted - if the amount of to-be-redeemed tokens is too low
source

pub fn decrease_tokens( vault_id: &DefaultVaultId<T>, user_id: &T::AccountId, tokens: &Amount<T> ) -> DispatchResult

Decreases the amount of tokens f a redeem request is not fulfilled Removes the amount of tokens assigned to the to-be-redeemed tokens. At this point, we consider the tokens lost and the issued tokens are removed from the vault

Arguments
  • vault_id - the id of the vault from which to decrease tokens
  • tokens - the amount of tokens to be decreased
  • user_id - the id of the user making the redeem request
source

pub fn decrease_liquidated_collateral( vault_id: &DefaultVaultId<T>, amount: &Amount<T> ) -> DispatchResult

Decreases the amount of collateral held after liquidation for any remaining to_be_redeemed tokens.

Arguments
  • vault_id - the id of the vault
  • amount - the amount of collateral to decrement
source

pub fn redeem_tokens( vault_id: &DefaultVaultId<T>, tokens: &Amount<T>, premium: &Amount<T>, redeemer_id: &T::AccountId ) -> DispatchResult

Reduces the to-be-redeemed tokens when a redeem request completes

Arguments
  • vault_id - the id of the vault from which to redeem tokens
  • tokens - the amount of tokens to be decreased
  • premium - amount of collateral to be rewarded to the redeemer if the vault is not liquidated yet
  • redeemer_id - the id of the redeemer
source

pub fn redeem_tokens_liquidation( currency_id: CurrencyId<T>, redeemer_id: &T::AccountId, amount_wrapped: &Amount<T> ) -> DispatchResult

Handles redeem requests which are executed against the LiquidationVault. Reduces the issued token of the LiquidationVault and slashes the corresponding amount of collateral.

Arguments
  • currency_id - the currency being redeemed
  • redeemer_id - the account of the user redeeming issued tokens
  • tokens - the amount of tokens to be redeemed in collateral with the LiquidationVault, denominated in BTC
Errors
  • InsufficientTokensCommitted - if the amount of tokens issued by the liquidation vault is too low
  • InsufficientFunds - if the liquidation vault does not have enough collateral to transfer
source

pub fn replace_tokens( old_vault_id: &DefaultVaultId<T>, new_vault_id: &DefaultVaultId<T>, tokens: &Amount<T>, collateral: &Amount<T> ) -> DispatchResult

Replaces the old vault by the new vault by transferring tokens from the old vault to the new one

Arguments
  • old_vault_id - the id of the old vault
  • new_vault_id - the id of the new vault
  • tokens - the amount of tokens to be transferred from the old to the new vault
  • collateral - the collateral to be locked by the new vault
Errors
  • VaultNotFound - if either the old or new vault does not exist
  • InsufficientTokensCommitted - if the amount of tokens of the old vault is too low
  • InsufficientFunds - if the new vault does not have enough collateral to lock
source

pub fn cancel_replace_tokens( old_vault_id: &DefaultVaultId<T>, new_vault_id: &DefaultVaultId<T>, tokens: &Amount<T> ) -> DispatchResult

Cancels a replace - which in the normal case decreases the old-vault’s to-be-redeemed tokens, and the new-vault’s to-be-issued tokens. When one or both of the vaults have been liquidated, this function also updates the liquidation vault.

Arguments
  • old_vault_id - the id of the old vault
  • new_vault_id - the id of the new vault
  • tokens - the amount of tokens to be transferred from the old to the new vault
source

pub fn withdraw_replace_request( vault_id: &DefaultVaultId<T>, amount: &Amount<T> ) -> Result<(Amount<T>, Amount<T>), DispatchError>

Withdraws an amount of tokens that were requested for replacement by vault_id

Arguments
  • vault_id - the id of the vault
  • amount - the amount of tokens to be withdrawn from replace requests
source

pub fn liquidate_vault( vault_id: &DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

Liquidates a vault, transferring all of its token balances to the LiquidationVault, as well as the collateral.

Arguments
  • vault_id - the id of the vault to liquidate
  • status - status with which to liquidate the vault
source

pub fn try_increase_total_backing_collateral( currency_pair: &DefaultVaultCurrencyPair<T>, amount: &Amount<T> ) -> DispatchResult

source

pub fn decrease_total_backing_collateral( currency_pair: &DefaultVaultCurrencyPair<T>, amount: &Amount<T> ) -> DispatchResult

source

pub fn insert_vault(id: &DefaultVaultId<T>, vault: DefaultVault<T>)

source

pub fn ban_vault(vault_id: &DefaultVaultId<T>) -> DispatchResult

source

pub fn ensure_not_banned(vault_id: &DefaultVaultId<T>) -> DispatchResult

source

pub fn is_vault_below_secure_threshold( vault_id: &DefaultVaultId<T> ) -> Result<bool, DispatchError>

Threshold checks

source

pub fn is_vault_liquidated( vault_id: &DefaultVaultId<T> ) -> Result<bool, DispatchError>

source

pub fn will_be_below_premium_threshold( vault_id: &DefaultVaultId<T> ) -> Result<bool, DispatchError>

source

pub fn is_vault_below_liquidation_threshold( vault: &DefaultVault<T>, liquidation_threshold: UnsignedFixedPoint<T> ) -> Result<bool, DispatchError>

check if the vault is below the liquidation threshold.

source

pub fn is_collateral_below_vault_secure_threshold( collateral: &Amount<T>, wrapped_amount: &Amount<T>, vault: &RichVault<T> ) -> Result<bool, DispatchError>

Takes vault custom secure threshold into account (if set)

source

pub fn _set_minimum_collateral_vault( collateral_currency: CurrencyId<T>, min_collateral: <T as Config>::Balance )

source

pub fn _set_system_collateral_ceiling( currency_pair: DefaultVaultCurrencyPair<T>, ceiling: <T as Config>::Balance )

source

pub fn _set_secure_collateral_threshold( currency_pair: DefaultVaultCurrencyPair<T>, threshold: UnsignedFixedPoint<T> )

source

pub fn _set_premium_redeem_threshold( currency_pair: DefaultVaultCurrencyPair<T>, threshold: UnsignedFixedPoint<T> )

source

pub fn _set_liquidation_collateral_threshold( currency_pair: DefaultVaultCurrencyPair<T>, threshold: UnsignedFixedPoint<T> )

source

pub fn calculate_collateral( collateral: &Amount<T>, numerator: &Amount<T>, denominator: &Amount<T> ) -> Result<Amount<T>, DispatchError>

return (collateral * Numerator) / denominator, used when dealing with liquidated vaults

source

pub fn get_vaults_by_account_id( account_id: T::AccountId ) -> Result<Vec<DefaultVaultId<T>>, DispatchError>

RPC get all vaults the are registered using the given account id. Note that one account id might be used in multiple vault ids.

source

pub fn calculate_inclusion_fee( wrapped_currency: CurrencyId<T>, redeem_tx_size: u32 ) -> Result<Amount<T>, DispatchError>

Calculates the inclusion fee for a redeem transaction based on the provided parameters.

source

pub fn get_premium_redeem_vaults( redeem_transaction_size: u32 ) -> Result<Vec<(DefaultVaultId<T>, Amount<T>)>, DispatchError>

Get all vaults that:

  • are below the premium redeem threshold, and
  • have a non-zero amount of redeemable tokens, and thus
  • are not banned

Return a tuple of (VaultId, RedeemTokens to get max_premium from vault)

source

pub fn get_vaults_with_issuable_tokens( ) -> Result<Vec<(DefaultVaultId<T>, Amount<T>)>, DispatchError>

Get all vaults with non-zero issuable tokens, ordered in descending order of this amount

source

pub fn get_vaults_with_redeemable_tokens( ) -> Result<Vec<(DefaultVaultId<T>, Amount<T>)>, DispatchError>

Get all vaults with non-zero issued (thus redeemable) tokens, ordered in descending order of this amount

source

pub fn get_issuable_tokens_from_vault( vault_id: &DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

Get the amount of tokens a vault can issue

source

pub fn ensure_accepting_new_issues( vault_id: &DefaultVaultId<T> ) -> Result<(), DispatchError>

source

pub fn get_to_be_issued_tokens_from_vault( vault_id: DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

Get the amount of tokens issued by a vault

source

pub fn get_collateralization_from_vault( vault_id: DefaultVaultId<T>, only_issued: bool ) -> Result<UnsignedFixedPoint<T>, DispatchError>

Get the current collateralization of a vault

source

pub fn get_collateralization_from_vault_and_collateral( vault_id: DefaultVaultId<T>, collateral: &Amount<T>, only_issued: bool ) -> Result<UnsignedFixedPoint<T>, DispatchError>

source

pub fn get_required_collateral_for_wrapped( amount_wrapped: &Amount<T>, currency_id: CurrencyId<T> ) -> Result<Amount<T>, DispatchError>

Gets the minimum amount of collateral required for the given amount of btc with the current threshold and exchange rate

Arguments
  • amount_wrapped - the amount of wrapped
  • currency_id - the collateral currency
source

pub fn get_required_collateral_for_vault( vault_id: DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

Get the amount of collateral required for the given vault to be at the current SecureCollateralThreshold with the current exchange rate

source

pub fn vault_exists(vault_id: &DefaultVaultId<T>) -> bool

source

pub fn compute_collateral( vault_id: &DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

source

pub fn compute_capacity( vault_id: &DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

source

pub fn get_total_user_vault_collateral( currency_pair: &DefaultVaultCurrencyPair<T> ) -> Result<Amount<T>, DispatchError>

source

pub fn get_free_collateral( vault_id: &DefaultVaultId<T> ) -> Result<Amount<T>, DispatchError>

source

pub fn get_liquidation_vault( currency_pair: &DefaultVaultCurrencyPair<T> ) -> DefaultSystemVault<T>

source

pub fn get_rich_liquidation_vault( currency_pair: &DefaultVaultCurrencyPair<T> ) -> RichSystemVault<T>

source

pub fn is_vault_below_certain_threshold( vault_id: &DefaultVaultId<T>, threshold: UnsignedFixedPoint<T> ) -> Result<bool, DispatchError>

source

pub fn new_vault_deposit_address( vault_id: &DefaultVaultId<T>, secure_id: H256 ) -> Result<BtcAddress, DispatchError>

source

pub fn collateral_integrity_check()

source

pub fn total_user_vault_collateral_integrity_check()

Trait Implementations§

source§

impl<T: Config> Callable<T> for Pallet<T>

source§

impl<T> Clone for Pallet<T>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T> Debug for Pallet<T>

source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: Config> GetStorageVersion for Pallet<T>

§

type CurrentStorageVersion = NoStorageVersionSet

This will be filled out by the pallet macro. Read more
source§

fn current_storage_version() -> Self::CurrentStorageVersion

Returns the current storage version as supported by the pallet.
source§

fn on_chain_storage_version() -> StorageVersion

Returns the on-chain storage version of the pallet as stored in the storage.
source§

impl<T: Config> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn offchain_worker(n: BlockNumberFor<T>)

Implementing this function on a module allows you to perform long-running tasks that make (by default) validators generate transactions that feed results of those long-running computations back on chain. Read more
source§

fn on_runtime_upgrade() -> Weight

Perform a module upgrade. Read more
§

fn on_finalize(_n: BlockNumber)

The block is being finalized. Implement to have something happen.
§

fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight

This will be run when the block is being finalized (before on_finalize). Read more
§

fn on_initialize(_n: BlockNumber) -> Weight

The block is being initialized. Implement to have something happen. Read more
§

fn integrity_test()

Run integrity test. Read more
source§

impl<T: Config> IntegrityTest for Pallet<T>

source§

fn integrity_test()

Run integrity test. Read more
source§

impl<T: Config> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn offchain_worker(n: BlockNumberFor<T>)

This function is being called after every block import (when fully synced). Read more
source§

impl<T: Config> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn on_finalize(n: BlockNumberFor<T>)

The block is being finalized. Implement to have something happen. Read more
source§

impl<T: Config> OnGenesis for Pallet<T>

source§

fn on_genesis()

Something that should happen at genesis.
source§

impl<T: Config> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn on_idle(n: BlockNumberFor<T>, remaining_weight: Weight) -> Weight

The block is being finalized. Implement to have something happen in case there is leftover weight. Check the passed remaining_weight to make sure it is high enough to allow for your pallet’s extra computation. Read more
source§

impl<T: Config> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn on_initialize(n: BlockNumberFor<T>) -> Weight

The block is being initialized. Implement to have something happen. Read more
source§

impl<T: Config> OnRuntimeUpgrade for Pallet<T>

source§

fn on_runtime_upgrade() -> Weight

Perform a module upgrade. Read more
source§

impl<T: Config> PalletInfoAccess for Pallet<T>

source§

fn index() -> usize

Index of the pallet as configured in the runtime.
source§

fn name() -> &'static str

Name of the pallet as configured in the runtime.
source§

fn module_name() -> &'static str

Name of the Rust module containing the pallet.
source§

fn crate_version() -> CrateVersion

Version of the crate containing the pallet.
source§

impl<T: Config> PalletsInfoAccess for Pallet<T>

source§

fn count() -> usize

The number of pallets’ information that this type represents. Read more
source§

fn infos() -> Vec<PalletInfoData>

All of the pallets’ information that this type represents.
source§

impl<T> PartialEq<Pallet<T>> for Pallet<T>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: Config> StorageInfoTrait for Pallet<T>

source§

fn storage_info() -> Vec<StorageInfo>

source§

impl<T: Config> ValidateUnsigned for Pallet<T>

§

type Call = Call<T>

The call to validate
source§

fn validate_unsigned( source: TransactionSource, call: &Self::Call ) -> TransactionValidity

Return the validity of the call Read more
§

fn pre_dispatch(call: &Self::Call) -> Result<(), TransactionValidityError>

Validate the call right before dispatch. Read more
source§

impl<T: Config> WhitelistedStorageKeys for Pallet<T>

source§

fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>

Returns a Vec<TrackedStorageKey> indicating the storage keys that should be whitelisted during benchmarking. This means that those keys will be excluded from the benchmarking performance calculation.
source§

impl<T> Eq for Pallet<T>

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for Pallet<T>where T: RefUnwindSafe,

§

impl<T> Send for Pallet<T>where T: Send,

§

impl<T> Sync for Pallet<T>where T: Sync,

§

impl<T> Unpin for Pallet<T>where T: Unpin,

§

impl<T> UnwindSafe for Pallet<T>where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CheckedConversion for T

§

fn checked_from<T>(t: T) -> Option<Self>where Self: TryFrom<T>,

Convert from a value of T into an equivalent instance of Option<Self>. Read more
§

fn checked_into<T>(self) -> Option<T>where Self: TryInto<T>,

Consume self to return Some equivalent value of Option<T>. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> Twhere Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> DynClone for Twhere T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> IsType<T> for T

§

fn from_ref(t: &T) -> &T

Cast reference.
§

fn into_ref(&self) -> &T

Cast reference.
§

fn from_mut(t: &mut T) -> &mut T

Cast mutable reference.
§

fn into_mut(&mut self) -> &mut T

Cast mutable reference.
§

impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,

§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

§

impl<T> Pipe for Twhere T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> Rwhere Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> Rwhere Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
§

fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,

§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

impl<T> MaybeDebug for Twhere T: Debug,

§

impl<T> MaybeRefUnwindSafe for Twhere T: RefUnwindSafe,

§

impl<T> Member for Twhere T: Send + Sync + Debug + Eq + PartialEq<T> + Clone + 'static,