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
.