Struct pallet_remote_asset_manager::pallet::Pallet [−][src]
pub struct Pallet<T>(_);
Expand description
The pallet implementing the on-chain logic.
Implementations
pub fn send_bond(
origin: OriginFor<T>,
asset: T::AssetId,
controller: <<T as Config>::Lookup as StaticLookup>::Source,
value: T::Balance,
payee: RewardDestination<<T as Config>::AccountId>
) -> DispatchResultWithPostInfo
pub fn send_bond(
origin: OriginFor<T>,
asset: T::AssetId,
controller: <<T as Config>::Lookup as StaticLookup>::Source,
value: T::Balance,
payee: RewardDestination<<T as Config>::AccountId>
) -> DispatchResultWithPostInfo
Send a pallet_staking
bond
call to the location of the asset.
This will encode the bond
call accordingly and dispatch to the
location of the given asset. Limited to the council origin.
pub fn send_add_proxy(
origin: OriginFor<T>,
asset: T::AssetId,
proxy_type: ProxyType,
delegate: Option<<T as Config>::AccountId>
) -> DispatchResultWithPostInfo
pub fn send_add_proxy(
origin: OriginFor<T>,
asset: T::AssetId,
proxy_type: ProxyType,
delegate: Option<<T as Config>::AccountId>
) -> DispatchResultWithPostInfo
Transacts a pallet_proxy::Call::add_proxy
call to add a proxy on
behalf of the PINT parachain’s account on the target chain.
Limited to the council origin
pub fn update_staking_weights(
origin: OriginFor<T>,
asset: T::AssetId,
weights: StakingWeights
) -> DispatchResult
pub fn update_staking_weights(
origin: OriginFor<T>,
asset: T::AssetId,
weights: StakingWeights
) -> DispatchResult
Updates the configured staking weights for the given asset.
Callable by the admin origin
pub fn update_proxy_weights(
origin: OriginFor<T>,
asset: T::AssetId,
weights: ProxyWeights
) -> DispatchResult
pub fn update_proxy_weights(
origin: OriginFor<T>,
asset: T::AssetId,
weights: ProxyWeights
) -> DispatchResult
Updates the configured proxy weights for the given asset.
Callable by the admin origin
Disallow further remote transfers and halt remote staking.
asset_id
: The identifier of the asset to be frozen.
Callable by the admin origin.
Emits Frozen
.
Weight: O(1)
Allow remote transfers and enable remote staking again.
asset_id
: The identifier of the asset to be frozen.
Callable by the admin origin
Emits Thawed
.
Weight: O(1)
Sets the xcm_dest_weight
for XCM transfers.
Callable by the admin origin
Parameters:
xcm_dest_weight
: The new weight for XCM transfers.
Enables XCM transactions for the statemint parachain, if configured.
This is a noop if it’s already enabled Callable by the admin origin
Disables XCM transactions for the statemint parachain, if configured.
This is a noop if it’s already disabled Callable by the admin origin
Sets the statemint config.
Callable by the admin origin
NOTE It is assumed that the PINT parachain’s local account on
the statemint parachain (sibling account:
polkadot_parachain::primitives::Sibling
) has the permission to
modify the statemint PINT asset.
Attempts to transfer the given amount of index token to statemint.
This is executed as reserve based transfer, the given amount is transferred from the sender’s balance to the account designated for the Statemint parachain. This amount is then send via XCM into the caller’s account on the statemint parachain.
Sends an XCM bond_extra
call
Sends an XCM unbond
call
An unbond
call must be signed by the controller account.
Sends an XCM withdraw_unbonded
call
Remove any unlocked chunks from the unlocking
queue.
An withdraw_unbonded
call must be signed by the controller
account.
This essentially gives the PINT’s reserve account hold of the balance
pub fn staking_config<KArg>(
k: KArg
) -> Option<StakingConfig<<T as Config>::AccountId, <T as Config>::Balance, <T as Config>::BlockNumber>> where
KArg: EncodeLike<<T as Config>::AssetId>,
pub fn staking_config<KArg>(
k: KArg
) -> Option<StakingConfig<<T as Config>::AccountId, <T as Config>::Balance, <T as Config>::BlockNumber>> where
KArg: EncodeLike<<T as Config>::AssetId>,
The config of pallet_staking
in the runtime of the parachain.
pub fn skating_ledger<KArg>(
k: KArg
) -> Option<StakingLedger<<<T as Config>::Lookup as StaticLookup>::Source, <T as Config>::Balance, <T as Config>::BlockNumber>> where
KArg: EncodeLike<<T as Config>::AssetId>,
pub fn skating_ledger<KArg>(
k: KArg
) -> Option<StakingLedger<<<T as Config>::Lookup as StaticLookup>::Source, <T as Config>::Balance, <T as Config>::BlockNumber>> where
KArg: EncodeLike<<T as Config>::AssetId>,
The current state of PINT sovereign account bonding in pallet_staking
.
pub fn asset_balance<KArg>(k: KArg) -> AssetLedger<T::Balance> where
KArg: EncodeLike<<T as Config>::AssetId>,
pub fn asset_balance<KArg>(k: KArg) -> AssetLedger<T::Balance> where
KArg: EncodeLike<<T as Config>::AssetId>,
The ledger of deposited funds and funds about to be withdrawn
This mirrors the deposited
and withdrawn
amounts from the asset index until
Separating this from the MultiCurrency
balances, which is used to represent any kind of
funds (for example assets minted via governance proposal), ensures that this the real inflow
of reserve backed assets.
NOTE: This expects the deposited
funds to be backed by reserve deposits on the assets
native location. For DOT for example this expects the deposited
funds to be available on
the Polkadot relay chain in the sovereign account of the PINT parachain.
pub fn xcm_staking_count<KArg>(k: KArg) -> XcmStakingMessageCount where
KArg: EncodeLike<T::AssetId>,
pub fn xcm_staking_count<KArg>(k: KArg) -> XcmStakingMessageCount where
KArg: EncodeLike<T::AssetId>,
The total number of xmc related messages sent to the pallet_staking
pallet of the asset’s
location
pub fn proxy_config<KArg>(k: KArg) -> Option<ProxyConfig> where
KArg: EncodeLike<<T as Config>::AssetId>,
pub fn proxy_config<KArg>(k: KArg) -> Option<ProxyConfig> where
KArg: EncodeLike<<T as Config>::AssetId>,
The config of pallet_proxy
in the runtime of the parachain.
pub fn proxies<KArg1, KArg2>(k1: KArg1, k2: KArg2) -> ProxyState where
KArg1: EncodeLike<T::AssetId>,
KArg2: EncodeLike<<T as Config>::AccountId>,
pub fn proxies<KArg1, KArg2>(k1: KArg1, k2: KArg2) -> ProxyState where
KArg1: EncodeLike<T::AssetId>,
KArg2: EncodeLike<<T as Config>::AccountId>,
Denotes the current state of proxies on a parachain for the PINT chain’s account with the delegates being the second key in this map
location identifier
-> delegate
-> proxies
The extra weight for cross-chain XCM transfers. xcm_dest_weight: value: Weight
The config of the statemint parachain.
Provides information that is required when sending XCM calls to transfer PINT:,
id
: The identifier of the corresponding PINT asset in thepallet_assets
on the statemint parachain. Which isu32
on statemint.parachain id
: the parachain of the statemint chainweights
: the weights to use for the call
Trait Implementations
This will return the total issuance of the given asset
minus the
amount that is currently unavailable due to staking
Ensures that the given amount can be removed from the parachain’s
sovereign account without falling below the configured
minimum_stash_balance
Read more
Returns the configured minimum stash balance below which the parachain’s sovereign account balance must not fall. Read more
Returns the current storage version as supported by the pallet.
Returns the on-chain storage version of the pallet as stored in the storage.
Check for staking related XCM we need to get in to this block
This will compare the pending withdrawals against the free balance of each asset and determine whether an XCM unbond, bond_extra or withdrawal is in order.
Executing XCM on another chain is subject to fees that will be paid for with the balance which is under control of the PINT’s account on that chain (the reserve held for all xcm deposits sent to PINT), therefore it is feasible that a certain amount of each asset is kept idle (not staked) at all times to mitigate the risk of lacking founds for the fees for unstaking. This reserve balance has fixed lower barrier and an additional buffer which reflects the NAV_asset of the asset in relation to the NAV of the index, since the amount of on asset a LP receives upon redeeming their PINT directly correlates with the value of each asset.
If an asset’s chain supports staking (it was previously bonded with
pallet_staking::bond
) then we need to check what action is appropriate in this for
this asset’s staking pallet. Following states exists:
Idle
: nothing to bond_extra, unbond or withdrawBondExtra
: new deposits were added to the PINT’s parachain balance sheet and can now be bonded. This will also check if currently unbonded funds can be rebonded again instead.Unbond
: pending withdrawals reached a threshold were we need to unbund staked funds.Withdraw
: The bonding duration of an unlocking chunk is over and the funds are now safe to withdraw viawithdraw_unbonded
The maximum number of separate xcm calls we send here is limited to the number of liquid assets with staking support.
The block is being finalized. Implement to have something happen.
The block is being initialized. Implement to have something happen. Read more
Perform a module upgrade. Read more
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
Run integrity test. Read more
Run integrity test. Read more
This function is being called after every block import (when fully synced). Read more
The block is being finalized. Implement to have something happen. Read more
Something that should happen at genesis.
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
The block is being initialized. Implement to have something happen. Read more
Perform a module upgrade. Read more
Name of the Rust module containing the pallet.
Version of the crate containing the pallet.
Extend the given vector by all of the pallets’ information that this type represents. Read more
All of the pallets’ information that this type represents.
fn transfer_asset(
recipient: T::AccountId,
asset: T::AssetId,
amount: T::Balance
) -> DispatchResult
fn transfer_asset(
recipient: T::AccountId,
asset: T::AssetId,
amount: T::Balance
) -> DispatchResult
Transfers the given amount of asset from the account’s sovereign account on PINT into the account on the asset’s destination. Read more
Notification of deposited funds in the index, ready to be bond
to earn staking rewards. Read more
Notification of an upcoming withdrawal. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for Pallet<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Pallet<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
Convert 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
. Read more
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
Compare self to key
and return true
if they are equal.
Causes self
to use its Binary
implementation when Debug
-formatted.
Causes self
to use its Display
implementation when
Debug
-formatted. Read more
Causes self
to use its LowerExp
implementation when
Debug
-formatted. Read more
Causes self
to use its LowerHex
implementation when
Debug
-formatted. Read more
Causes self
to use its Octal
implementation when Debug
-formatted.
Causes self
to use its Pointer
implementation when
Debug
-formatted. Read more
Causes self
to use its UpperExp
implementation when
Debug
-formatted. Read more
Causes self
to use its UpperHex
implementation when
Debug
-formatted. Read more
impl<T> PalletVersionToStorageVersionHelper for T where
T: GetStorageVersion + PalletInfoAccess,
impl<T> PalletVersionToStorageVersionHelper for T where
T: GetStorageVersion + PalletInfoAccess,
Pipes by value. This is generally the method you want to use. Read more
Borrows self
and passes that borrow into the pipe function. Read more
Mutably borrows self
and passes that borrow into the pipe function. Read more
Borrows self
, then passes self.borrow()
into the pipe function. Read more
Mutably borrows self
, then passes self.borrow_mut()
into the pipe
function. Read more
Borrows self
, then passes self.as_ref()
into the pipe function.
Mutably borrows self
, then passes self.as_mut()
into the pipe
function. Read more
Borrows self
, then passes self.deref()
into the pipe function.
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
Self: Deref,
R: 'a,
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
Self: Deref,
R: 'a,
Pipes a dereference into a function that cannot normally be called in suffix position. Read more
Pipes a reference into a function that cannot ordinarily be called in suffix position. Read more
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
Checks if self
is actually part of its subset T
(and can be converted to it).
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
The inclusion map: converts self
to the equivalent element of its superset.
Immutable access to the Borrow<B>
of a value. Read more
Mutable access to the BorrowMut<B>
of a value. Read more
Immutable access to the AsRef<R>
view of a value. Read more
Mutable access to the AsMut<R>
view of a value. Read more
Immutable access to the Deref::Target
of a value. Read more
Mutable access to the Deref::Target
of a value. Read more
Calls .tap()
only in debug builds, and is erased in release builds.
Calls .tap_mut()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_borrow()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_ref()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_deref()
only in debug builds, and is erased in release
builds. Read more
Provides immutable access to the reference for inspection.
Calls tap_ref
in debug builds, and does nothing in release builds.
Provides mutable access to the reference for modification.
Calls tap_ref_mut
in debug builds, and does nothing in release builds.
Provides immutable access to the borrow for inspection. Read more
Calls tap_borrow
in debug builds, and does nothing in release builds.
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Provides mutable access to the borrow for modification.
Immutably dereferences self
for inspection.
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Calls tap_deref
in debug builds, and does nothing in release builds.
fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Mutably dereferences self
for modification.
The counterpart to unchecked_from
.
Consume self to return an equivalent value of T
.
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more