Struct eth_bridge::pallet::Pallet  
source · pub struct Pallet<T>(_);Expand description
The pallet implementing the on-chain logic.
Implementations§
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn http_request(
    url: &str,
    body: Vec<u8>,
    headers: &[(&'static str, String)]
) -> Result<Vec<u8>, Error<T>>
 
pub fn http_request( url: &str, body: Vec<u8>, headers: &[(&'static str, String)] ) -> Result<Vec<u8>, Error<T>>
Makes off-chain HTTP request.
sourcepub fn json_rpc_request<I: Serialize, O: for<'de> Deserialize<'de>>(
    url: &str,
    id: u64,
    method: &str,
    params: &I,
    headers: &[(&'static str, String)]
) -> Result<O, Error<T>>
 
pub fn json_rpc_request<I: Serialize, O: for<'de> Deserialize<'de>>( url: &str, id: u64, method: &str, params: &I, headers: &[(&'static str, String)] ) -> Result<O, Error<T>>
Makes JSON-RPC request.
sourcepub fn eth_json_rpc_request<I: Serialize, O: for<'de> Deserialize<'de>>(
    method: &str,
    params: &I,
    network_id: T::NetworkId
) -> Result<O, Error<T>>
 
pub fn eth_json_rpc_request<I: Serialize, O: for<'de> Deserialize<'de>>( method: &str, params: &I, network_id: T::NetworkId ) -> Result<O, Error<T>>
Makes request to a Sidechain node. The node URL and credentials are stored in the local storage.
sourcepub fn substrate_json_rpc_request<I: Serialize, O: for<'de> Deserialize<'de>>(
    method: &str,
    params: &I
) -> Result<O, Error<T>>
 
pub fn substrate_json_rpc_request<I: Serialize, O: for<'de> Deserialize<'de>>( method: &str, params: &I ) -> Result<O, Error<T>>
Makes request to the local node. The node URL is stored in the local storage.
sourcepub fn load_is_used(
    hash: H256,
    network_id: T::NetworkId
) -> Result<bool, Error<T>>
 
pub fn load_is_used( hash: H256, network_id: T::NetworkId ) -> Result<bool, Error<T>>
Queries Sidechain’s contract variable used.
sourcepub fn load_current_height(network_id: T::NetworkId) -> Result<u64, Error<T>>
 
pub fn load_current_height(network_id: T::NetworkId) -> Result<u64, Error<T>>
Queries current height of Sidechain.
sourcepub fn load_tx(
    hash: H256,
    network_id: T::NetworkId
) -> Result<Transaction, Error<T>>
 
pub fn load_tx( hash: H256, network_id: T::NetworkId ) -> Result<Transaction, Error<T>>
Loads a Sidechain transaction by the hash and ensures that it came from a known contract.
sourcepub fn load_tx_receipt(
    hash: H256,
    network_id: T::NetworkId
) -> Result<TransactionReceipt, Error<T>>
 
pub fn load_tx_receipt( hash: H256, network_id: T::NetworkId ) -> Result<TransactionReceipt, Error<T>>
Loads a Sidechain transaction receipt by the hash and ensures that it came from a known contract.
sourcepub fn load_substrate_finalized_header(
    
) -> Result<SubstrateHeaderLimited, Error<T>>where
    T: CreateSignedTransaction<<T as Config>::RuntimeCall>,
 
pub fn load_substrate_finalized_header( ) -> Result<SubstrateHeaderLimited, Error<T>>where T: CreateSignedTransaction<<T as Config>::RuntimeCall>,
Queries the current finalized block of the local node with chain_getFinalizedHead and
chain_getHeader RPC calls.
sourcepub fn load_substrate_block(
    number: T::BlockNumber
) -> Result<SubstrateBlockLimited, Error<T>>where
    T: CreateSignedTransaction<<T as Config>::RuntimeCall>,
 
pub fn load_substrate_block( number: T::BlockNumber ) -> Result<SubstrateBlockLimited, Error<T>>where T: CreateSignedTransaction<<T as Config>::RuntimeCall>,
Queries a block at the given height of the local node with chain_getBlockHash and
chain_getBlock RPC calls.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn parse_main_event(
    network_id: T::NetworkId,
    logs: &[Log],
    kind: IncomingTransactionRequestKind
) -> Result<ContractEvent<H160, T::AccountId, Balance>, Error<T>>
 
pub fn parse_main_event( network_id: T::NetworkId, logs: &[Log], kind: IncomingTransactionRequestKind ) -> Result<ContractEvent<H160, T::AccountId, Balance>, Error<T>>
Loops through the given array of logs and finds the first one that matches the type and topic.
sourcepub fn parse_old_incoming_request_method_call(
    incoming_request: LoadIncomingTransactionRequest<T>,
    tx: Transaction
) -> Result<IncomingRequest<T>, Error<T>>
 
pub fn parse_old_incoming_request_method_call( incoming_request: LoadIncomingTransactionRequest<T>, tx: Transaction ) -> Result<IncomingRequest<T>, Error<T>>
Tries to parse a method call on one of old Sora contracts (XOR and VAL).
Since the XOR and VAL contracts don’t have the same interface and events that the modern bridge contract have, and since they can’t be changed we have to provide a special parsing flow for some of the methods that we might use.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn get_requests(
    hashes: &[H256],
    network_id: Option<T::NetworkId>,
    redirect_finished_load_requests: bool
) -> Result<Vec<(OffchainRequest<T>, RequestStatus)>, DispatchError>
 
pub fn get_requests( hashes: &[H256], network_id: Option<T::NetworkId>, redirect_finished_load_requests: bool ) -> Result<Vec<(OffchainRequest<T>, RequestStatus)>, DispatchError>
Get requests data and their statuses by hash.
sourcepub fn get_approved_requests(
    hashes: &[H256],
    network_id: Option<T::NetworkId>
) -> Result<Vec<(OutgoingRequestEncoded, Vec<SignatureParams>)>, DispatchError>
 
pub fn get_approved_requests( hashes: &[H256], network_id: Option<T::NetworkId> ) -> Result<Vec<(OutgoingRequestEncoded, Vec<SignatureParams>)>, DispatchError>
Get approved outgoing requests data and proofs.
sourcepub fn get_approvals(
    hashes: &[H256],
    network_id: Option<T::NetworkId>
) -> Result<Vec<Vec<SignatureParams>>, DispatchError>
 
pub fn get_approvals( hashes: &[H256], network_id: Option<T::NetworkId> ) -> Result<Vec<Vec<SignatureParams>>, DispatchError>
Get requests approvals.
sourcepub fn get_account_requests(
    account: &T::AccountId,
    status_filter: Option<RequestStatus>
) -> Result<Vec<(T::NetworkId, H256)>, DispatchError>
 
pub fn get_account_requests( account: &T::AccountId, status_filter: Option<RequestStatus> ) -> Result<Vec<(T::NetworkId, H256)>, DispatchError>
Get account requests list.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn is_peer(who: &T::AccountId, network_id: T::NetworkId) -> bool
 
pub fn is_peer(who: &T::AccountId, network_id: T::NetworkId) -> bool
Checks if the account is a bridge peer.
sourcepub fn convert_precision(
    precision_from: BalancePrecision,
    precision_to: BalancePrecision,
    amount: Balance
) -> Result<(Balance, Balance), Error<T>>
 
pub fn convert_precision( precision_from: BalancePrecision, precision_to: BalancePrecision, amount: Balance ) -> Result<(Balance, Balance), Error<T>>
Converts amount from one precision to another and and returns it with a difference of the amounts. It also checks that no information was lost during multiplication, otherwise returns an error.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn register_bridge(
    origin: OriginFor<T>,
    bridge_contract_address: H160,
    initial_peers: Vec<T::AccountId>,
    signature_version: BridgeSignatureVersion
) -> DispatchResultWithPostInfo
 
pub fn register_bridge( origin: OriginFor<T>, bridge_contract_address: H160, initial_peers: Vec<T::AccountId>, signature_version: BridgeSignatureVersion ) -> DispatchResultWithPostInfo
Register a new bridge.
Parameters:
- bridge_contract_address- address of smart-contract deployed on a corresponding network.
- initial_peers- a set of initial network peers.
sourcepub fn add_asset(
    origin: OriginFor<T>,
    asset_id: <T as Config>::AssetId,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn add_asset( origin: OriginFor<T>, asset_id: <T as Config>::AssetId, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Add a Thischain asset to the bridge whitelist.
Can only be called by root.
Parameters:
- asset_id- Thischain asset identifier.
- network_id- network identifier to which the asset should be added.
sourcepub fn add_sidechain_token(
    origin: OriginFor<T>,
    token_address: H160,
    symbol: String,
    name: String,
    decimals: u8,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn add_sidechain_token( origin: OriginFor<T>, token_address: H160, symbol: String, name: String, decimals: u8, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Add a Sidechain token to the bridge whitelist.
Parameters:
- token_address- token contract address.
- symbol- token symbol (ticker).
- name- token name.
- decimals- token precision.
- network_id- network identifier.
sourcepub fn transfer_to_sidechain(
    origin: OriginFor<T>,
    asset_id: <T as Config>::AssetId,
    to: H160,
    amount: Balance,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn transfer_to_sidechain( origin: OriginFor<T>, asset_id: <T as Config>::AssetId, to: H160, amount: Balance, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Transfer some amount of the given asset to Sidechain address.
Note: if the asset kind is Sidechain, the amount should fit in the asset’s precision
on sidechain (SidechainAssetPrecision) without extra digits. For example, assume
some ERC-20 (T) token has decimals=6, and the corresponding asset on substrate has
7. Alice’s balance on thischain is 0.1000009. If Alice would want to transfer all
the amount, she will get an error NonZeroDust, because of the 9 at the end, so, the
correct amount would be 0.100000 (only 6 digits after the decimal point).
Parameters:
- asset_id- thischain asset id.
- to- sidechain account id.
- amount- amount of the asset.
- network_id- network identifier.
sourcepub fn request_from_sidechain(
    origin: OriginFor<T>,
    eth_tx_hash: H256,
    kind: IncomingRequestKind,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn request_from_sidechain( origin: OriginFor<T>, eth_tx_hash: H256, kind: IncomingRequestKind, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Load incoming request from Sidechain by the given transaction hash.
Parameters:
- eth_tx_hash- transaction hash on Sidechain.
- kind- incoming request type.
- network_id- network identifier.
sourcepub fn finalize_incoming_request(
    origin: OriginFor<T>,
    hash: H256,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn finalize_incoming_request( origin: OriginFor<T>, hash: H256, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Finalize incoming request (see Pallet::finalize_incoming_request_inner).
Can be only called from a bridge account.
Parameters:
- request- an incoming request.
- network_id- network identifier.
sourcepub fn add_peer(
    origin: OriginFor<T>,
    account_id: T::AccountId,
    address: H160,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn add_peer( origin: OriginFor<T>, account_id: T::AccountId, address: H160, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Add a new peer to the bridge peers set.
Parameters:
- account_id- account id on thischain.
- address- account id on sidechain.
- network_id- network identifier.
sourcepub fn remove_peer(
    origin: OriginFor<T>,
    account_id: T::AccountId,
    peer_address: Option<H160>,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn remove_peer( origin: OriginFor<T>, account_id: T::AccountId, peer_address: Option<H160>, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Remove peer from the the bridge peers set.
Parameters:
- account_id- account id on thischain.
- network_id- network identifier.
sourcepub fn prepare_for_migration(
    origin: OriginFor<T>,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn prepare_for_migration( origin: OriginFor<T>, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Prepare the given bridge for migration.
Can only be called by an authority.
Parameters:
- network_id- bridge network identifier.
sourcepub fn migrate(
    origin: OriginFor<T>,
    new_contract_address: H160,
    erc20_native_tokens: Vec<H160>,
    network_id: <T as Config>::NetworkId,
    new_signature_version: BridgeSignatureVersion
) -> DispatchResultWithPostInfo
 
pub fn migrate( origin: OriginFor<T>, new_contract_address: H160, erc20_native_tokens: Vec<H160>, network_id: <T as Config>::NetworkId, new_signature_version: BridgeSignatureVersion ) -> DispatchResultWithPostInfo
Migrate the given bridge to a new smart-contract.
Can only be called by an authority.
Parameters:
- new_contract_address- new sidechain ocntract address.
- erc20_native_tokens- migrated assets ids.
- network_id- bridge network identifier.
sourcepub fn register_incoming_request(
    origin: OriginFor<T>,
    incoming_request: IncomingRequest<T>
) -> DispatchResultWithPostInfo
 
pub fn register_incoming_request( origin: OriginFor<T>, incoming_request: IncomingRequest<T> ) -> DispatchResultWithPostInfo
Register the given incoming request and add it to the queue.
Calls validate and prepare on the request, adds it to the queue and maps it with the
corresponding load-incoming-request and removes the load-request from the queue.
Can only be called by a bridge account.
sourcepub fn import_incoming_request(
    origin: OriginFor<T>,
    load_incoming_request: LoadIncomingRequest<T>,
    incoming_request_result: Result<IncomingRequest<T>, DispatchError>
) -> DispatchResultWithPostInfo
 
pub fn import_incoming_request( origin: OriginFor<T>, load_incoming_request: LoadIncomingRequest<T>, incoming_request_result: Result<IncomingRequest<T>, DispatchError> ) -> DispatchResultWithPostInfo
Import the given incoming request.
Register’s the load request, then registers and finalizes the incoming request if it succeeded, otherwise aborts the load request.
Can only be called by a bridge account.
sourcepub fn approve_request(
    origin: OriginFor<T>,
    ocw_public: Public,
    hash: H256,
    signature_params: SignatureParams,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn approve_request( origin: OriginFor<T>, ocw_public: Public, hash: H256, signature_params: SignatureParams, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Approve the given outgoing request. The function is used by bridge peers.
Verifies the peer signature of the given request and adds it to RequestApprovals.
Once quorum is collected, the request gets finalized and removed from request queue.
sourcepub fn abort_request(
    origin: OriginFor<T>,
    hash: H256,
    error: DispatchError,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn abort_request( origin: OriginFor<T>, hash: H256, error: DispatchError, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Cancels a registered request.
Loads request by the given hash, cancels it, changes its status to Failed and
removes it from the request queues.
Can only be called from a bridge account.
sourcepub fn force_add_peer(
    origin: OriginFor<T>,
    who: T::AccountId,
    address: H160,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn force_add_peer( origin: OriginFor<T>, who: T::AccountId, address: H160, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Add the given peer to the peers set without additional checks.
Can only be called by a root account.
sourcepub fn remove_sidechain_asset(
    origin: OriginFor<T>,
    asset_id: <T as Config>::AssetId,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn remove_sidechain_asset( origin: OriginFor<T>, asset_id: <T as Config>::AssetId, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Remove asset
Can only be called by root.
sourcepub fn register_existing_sidechain_asset(
    origin: OriginFor<T>,
    asset_id: <T as Config>::AssetId,
    token_address: H160,
    network_id: <T as Config>::NetworkId
) -> DispatchResultWithPostInfo
 
pub fn register_existing_sidechain_asset( origin: OriginFor<T>, asset_id: <T as Config>::AssetId, token_address: H160, network_id: <T as Config>::NetworkId ) -> DispatchResultWithPostInfo
Register existing asset
Can only be called by root.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn request_status<KArg1, KArg2>(
    k1: KArg1,
    k2: KArg2
) -> Option<RequestStatus>where
    KArg1: EncodeLike<<T as Config>::NetworkId>,
    KArg2: EncodeLike<H256>,
 
pub fn request_status<KArg1, KArg2>( k1: KArg1, k2: KArg2 ) -> Option<RequestStatus>where KArg1: EncodeLike<<T as Config>::NetworkId>, KArg2: EncodeLike<H256>,
Requests statuses.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn request_submission_height<KArg1, KArg2>(
    k1: KArg1,
    k2: KArg2
) -> T::BlockNumberwhere
    KArg1: EncodeLike<<T as Config>::NetworkId>,
    KArg2: EncodeLike<H256>,
 
pub fn request_submission_height<KArg1, KArg2>( k1: KArg1, k2: KArg2 ) -> T::BlockNumberwhere KArg1: EncodeLike<<T as Config>::NetworkId>, KArg2: EncodeLike<H256>,
Requests submission height map (on substrate).
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn sidechain_asset_precision<KArg1, KArg2>(
    k1: KArg1,
    k2: KArg2
) -> BalancePrecisionwhere
    KArg1: EncodeLike<<T as Config>::NetworkId>,
    KArg2: EncodeLike<T::AssetId>,
 
pub fn sidechain_asset_precision<KArg1, KArg2>( k1: KArg1, k2: KArg2 ) -> BalancePrecisionwhere KArg1: EncodeLike<<T as Config>::NetworkId>, KArg2: EncodeLike<T::AssetId>,
Precision (decimals) of a registered sidechain asset. Should be the same as in the ERC-20 contract.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn pending_peer<KArg>(k: KArg) -> Option<T::AccountId>where
    KArg: EncodeLike<<T as Config>::NetworkId>,
 
pub fn pending_peer<KArg>(k: KArg) -> Option<T::AccountId>where KArg: EncodeLike<<T as Config>::NetworkId>,
Network pending (being added/removed) peer.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn peer_address<KArg1, KArg2>(k1: KArg1, k2: KArg2) -> H160where
    KArg1: EncodeLike<<T as Config>::NetworkId>,
    KArg2: EncodeLike<T::AccountId>,
 
pub fn peer_address<KArg1, KArg2>(k1: KArg1, k2: KArg2) -> H160where KArg1: EncodeLike<<T as Config>::NetworkId>, KArg2: EncodeLike<T::AccountId>,
Peer address on Sidechain.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn bridge_account<KArg>(k: KArg) -> Option<T::AccountId>where
    KArg: EncodeLike<<T as Config>::NetworkId>,
 
pub fn bridge_account<KArg>(k: KArg) -> Option<T::AccountId>where KArg: EncodeLike<<T as Config>::NetworkId>,
Multi-signature bridge peers’ account. None if there is no account and network with the given ID.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn bridge_contract_status<KArg>(k: KArg) -> Option<BridgeStatus>where
    KArg: EncodeLike<<T as Config>::NetworkId>,
 
pub fn bridge_contract_status<KArg>(k: KArg) -> Option<BridgeStatus>where KArg: EncodeLike<<T as Config>::NetworkId>,
Bridge status.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn bridge_contract_address<KArg>(k: KArg) -> H160where
    KArg: EncodeLike<<T as Config>::NetworkId>,
 
pub fn bridge_contract_address<KArg>(k: KArg) -> H160where KArg: EncodeLike<<T as Config>::NetworkId>,
Smart-contract address on Sidechain.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn xor_master_contract_address() -> H160
 
pub fn xor_master_contract_address() -> H160
Sora XOR master contract address.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn val_master_contract_address() -> H160
 
pub fn val_master_contract_address() -> H160
Sora VAL master contract address.
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
pub fn bridge_signature_version<KArg>(k: KArg) -> BridgeSignatureVersionwhere KArg: EncodeLike<<T as Config>::NetworkId>,
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
pub fn pending_bridge_signature_version<KArg>( k: KArg ) -> Option<BridgeSignatureVersion>where KArg: EncodeLike<<T as Config>::NetworkId>,
Trait Implementations§
source§impl<T: Config> BridgeApp<<T as Config>::AccountId, H160, <T as Config>::AssetId, u128> for Pallet<T>
 
impl<T: Config> BridgeApp<<T as Config>::AccountId, H160, <T as Config>::AssetId, u128> for Pallet<T>
fn is_asset_supported( network_id: GenericNetworkId, asset_id: T::AssetId ) -> bool
fn transfer( network_id: GenericNetworkId, asset_id: T::AssetId, sender: T::AccountId, recipient: H160, amount: Balance ) -> Result<H256, DispatchError>
fn refund( _network_id: GenericNetworkId, _message_id: H256, _recipient: T::AccountId, _asset_id: T::AssetId, _amount: Balance ) -> DispatchResult
fn list_supported_assets(network_id: GenericNetworkId) -> Vec<BridgeAssetInfo> ⓘ
fn list_apps() -> Vec<BridgeAppInfo> ⓘ
fn is_asset_supported_weight() -> Weight
fn refund_weight() -> Weight
fn transfer_weight() -> Weight
source§impl<T: Config> GetStorageVersion for Pallet<T>
 
impl<T: Config> GetStorageVersion for Pallet<T>
source§fn current_storage_version() -> StorageVersion
 
fn current_storage_version() -> StorageVersion
source§fn on_chain_storage_version() -> StorageVersion
 
fn on_chain_storage_version() -> StorageVersion
source§impl<T> Hooks<<T as Config>::BlockNumber> for Pallet<T>where
    T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
 
impl<T> Hooks<<T as Config>::BlockNumber> for Pallet<T>where T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
source§fn offchain_worker(block_number: T::BlockNumber)
 
fn offchain_worker(block_number: T::BlockNumber)
Main off-chain worker procedure.
Note: only one worker is expected to be used.
§fn on_finalize(_n: BlockNumber)
 
fn on_finalize(_n: BlockNumber)
§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
 
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
on_finalize).
Implement to have something happen using the remaining weight.
Will not fire if the remaining weight is 0.
Return the weight used, the hook will subtract it from current weight used
and pass the result to the next on_idle hook if it exists.§fn on_initialize(_n: BlockNumber) -> Weight
 
fn on_initialize(_n: BlockNumber) -> Weight
§fn on_runtime_upgrade() -> Weight
 
fn on_runtime_upgrade() -> Weight
§fn integrity_test()
 
fn integrity_test()
source§impl<T> IntegrityTest for Pallet<T>where
    T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
 
impl<T> IntegrityTest for Pallet<T>where T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
source§fn integrity_test()
 
fn integrity_test()
source§impl<T> OffchainWorker<<T as Config>::BlockNumber> for Pallet<T>where
    T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
 
impl<T> OffchainWorker<<T as Config>::BlockNumber> for Pallet<T>where T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
source§fn offchain_worker(n: <T as Config>::BlockNumber)
 
fn offchain_worker(n: <T as Config>::BlockNumber)
source§impl<T> OnFinalize<<T as Config>::BlockNumber> for Pallet<T>where
    T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
 
impl<T> OnFinalize<<T as Config>::BlockNumber> for Pallet<T>where T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
source§fn on_finalize(n: <T as Config>::BlockNumber)
 
fn on_finalize(n: <T as Config>::BlockNumber)
source§impl<T: Config> OnGenesis for Pallet<T>
 
impl<T: Config> OnGenesis for Pallet<T>
source§fn on_genesis()
 
fn on_genesis()
source§impl<T> OnIdle<<T as Config>::BlockNumber> for Pallet<T>where
    T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
 
impl<T> OnIdle<<T as Config>::BlockNumber> for Pallet<T>where T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
source§fn on_idle(n: <T as Config>::BlockNumber, remaining_weight: Weight) -> Weight
 
fn on_idle(n: <T as Config>::BlockNumber, remaining_weight: Weight) -> Weight
remaining_weight to make sure it is high enough to allow for
your pallet’s extra computation. Read moresource§impl<T> OnInitialize<<T as Config>::BlockNumber> for Pallet<T>where
    T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
 
impl<T> OnInitialize<<T as Config>::BlockNumber> for Pallet<T>where T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
source§fn on_initialize(n: <T as Config>::BlockNumber) -> Weight
 
fn on_initialize(n: <T as Config>::BlockNumber) -> Weight
source§impl<T> OnRuntimeUpgrade for Pallet<T>where
    T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
 
impl<T> OnRuntimeUpgrade for Pallet<T>where T: CreateSignedTransaction<<T as Config>::RuntimeCall> + Config,
source§fn on_runtime_upgrade() -> Weight
 
fn on_runtime_upgrade() -> Weight
source§impl<T: Config> PalletInfoAccess for Pallet<T>
 
impl<T: Config> PalletInfoAccess for Pallet<T>
source§fn module_name() -> &'static str
 
fn module_name() -> &'static str
source§fn crate_version() -> CrateVersion
 
fn crate_version() -> CrateVersion
source§impl<T> PartialEq<Pallet<T>> for Pallet<T>
 
impl<T> PartialEq<Pallet<T>> for Pallet<T>
source§impl<T: Config> WhitelistedStorageKeys for Pallet<T>
 
impl<T: Config> WhitelistedStorageKeys for Pallet<T>
source§fn whitelisted_storage_keys() -> Vec<TrackedStorageKey> ⓘ
 
fn whitelisted_storage_keys() -> Vec<TrackedStorageKey> ⓘ
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.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§
§impl<T> CheckedConversion for T
 
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
    Self: TryFrom<T>,
 
fn checked_from<T>(t: T) -> Option<Self>where Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
    Self: TryInto<T>,
 
fn checked_into<T>(self) -> Option<T>where Self: TryInto<T>,
§impl<T> Conv for T
 
impl<T> Conv for T
§impl<T> Downcast for Twhere
    T: Any,
 
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
 
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
 
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
 
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
 
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.source§impl<Q, K> Equivalent<K> for Qwhere
    Q: Eq + ?Sized,
    K: Borrow<Q> + ?Sized,
 
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
 
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
    Q: Eq + ?Sized,
    K: Borrow<Q> + ?Sized,
 
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
 
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
 
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
 
fn fmt_binary(self) -> FmtBinary<Self>where Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
 
fn fmt_display(self) -> FmtDisplay<Self>where Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
 
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
 
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
 
fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
 
fn fmt_pointer(self) -> FmtPointer<Self>where Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
 
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
 
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
    &'a Self: for<'a> IntoIterator,
 
fn fmt_list(self) -> FmtList<Self>where &'a Self: for<'a> IntoIterator,
source§impl<T> Instrument for T
 
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IsType<T> for T
 
impl<T> IsType<T> for T
§impl<T> PalletVersionToStorageVersionHelper for Twhere
    T: GetStorageVersion + PalletInfoAccess,
 
impl<T> PalletVersionToStorageVersionHelper for Twhere T: GetStorageVersion + PalletInfoAccess,
§impl<T> Pipe for Twhere
    T: ?Sized,
 
impl<T> Pipe for Twhere T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
 
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,
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,
 
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,
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,
 
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,
§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,
 
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,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
    Self: AsRef<U>,
    U: 'a + ?Sized,
    R: 'a,
 
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,
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,
 
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,
self, then passes self.as_mut() into the pipe
function.§impl<T> Pointable for T
 
impl<T> Pointable for T
§impl<A> PureOrWrapped<A> for A
 
impl<A> PureOrWrapped<A> for A
§fn is_wrapped_regular(&self) -> bool
 
fn is_wrapped_regular(&self) -> bool
Regular.§fn is_wrapped(&self) -> bool
 
fn is_wrapped(&self) -> bool
§impl<T> SaturatedConversion for T
 
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
    Self: UniqueSaturatedFrom<T>,
 
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
    Self: UniqueSaturatedInto<T>,
 
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
T. Read more§impl<T> Tap for T
 
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
 
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
 
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
 
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
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,
 
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
 
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,
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,
 
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
 
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
 
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.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,
 
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
.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,
 
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
.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,
 
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
.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,
 
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
.tap_ref_mut() only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
 
impl<T> TryConv for T
§impl<S, T> UncheckedInto<T> for Swhere
    T: UncheckedFrom<S>,
 
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
 
fn unchecked_into(self) -> T
unchecked_from.§impl<T, S> UniqueSaturatedInto<T> for Swhere
    T: Bounded,
    S: TryInto<T>,
 
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
§fn unique_saturated_into(self) -> T
 
fn unique_saturated_into(self) -> T
T.