Type Alias moonbeam_runtime::Multisig
source · pub type Multisig = Pallet<Runtime>;
Aliased Type§
struct Multisig(/* private fields */);
Implementations
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn as_multi_threshold_1(
origin: <T as Config>::RuntimeOrigin,
other_signatories: Vec<<T as Config>::AccountId>,
call: Box<<T as Config>::RuntimeCall>
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
pub fn as_multi_threshold_1( origin: <T as Config>::RuntimeOrigin, other_signatories: Vec<<T as Config>::AccountId>, call: Box<<T as Config>::RuntimeCall> ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
Immediately dispatch a multi-signature call using a single approval from the caller.
The dispatch origin for this call must be Signed.
other_signatories
: The accounts (other than the sender) who are part of the multi-signature, but do not participate in the approval process.call
: The call to be executed.
Result is equivalent to the dispatched result.
§Complexity
O(Z + C) where Z is the length of the call and C its execution weight.
pub fn as_multi(
origin: <T as Config>::RuntimeOrigin,
threshold: u16,
other_signatories: Vec<<T as Config>::AccountId>,
maybe_timepoint: Option<Timepoint<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>,
call: Box<<T as Config>::RuntimeCall>,
max_weight: Weight
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
pub fn as_multi( origin: <T as Config>::RuntimeOrigin, threshold: u16, other_signatories: Vec<<T as Config>::AccountId>, maybe_timepoint: Option<Timepoint<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>, call: Box<<T as Config>::RuntimeCall>, max_weight: Weight ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
Register approval for a dispatch to be made from a deterministic composite account if
approved by a total of threshold - 1
of other_signatories
.
If there are enough, then dispatch the call.
Payment: DepositBase
will be reserved if this is the first approval, plus
threshold
times DepositFactor
. It is returned once this dispatch happens or
is cancelled.
The dispatch origin for this call must be Signed.
threshold
: The total number of approvals for this dispatch before it is executed.other_signatories
: The accounts (other than the sender) who can approve this dispatch. May not be empty.maybe_timepoint
: If this is the first approval, then this must beNone
. If it is not the first approval, then it must beSome
, with the timepoint (block number and transaction index) of the first approval transaction.call
: The call to be executed.
NOTE: Unless this is the final approval, you will generally want to use
approve_as_multi
instead, since it only requires a hash of the call.
Result is equivalent to the dispatched result if threshold
is exactly 1
. Otherwise
on success, result is Ok
and the result from the interior call, if it was executed,
may be found in the deposited MultisigExecuted
event.
§Complexity
O(S + Z + Call)
.- Up to one balance-reserve or unreserve operation.
- One passthrough operation, one insert, both
O(S)
whereS
is the number of signatories.S
is capped byMaxSignatories
, with weight being proportional. - One call encode & hash, both of complexity
O(Z)
whereZ
is tx-len. - One encode & hash, both of complexity
O(S)
. - Up to one binary search and insert (
O(logS + S)
). - I/O: 1 read
O(S)
, up to 1 mutateO(S)
. Up to one remove. - One event.
- The weight of the
call
. - Storage: inserts one item, value size bounded by
MaxSignatories
, with a deposit taken for its lifetime ofDepositBase + threshold * DepositFactor
.
pub fn approve_as_multi(
origin: <T as Config>::RuntimeOrigin,
threshold: u16,
other_signatories: Vec<<T as Config>::AccountId>,
maybe_timepoint: Option<Timepoint<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>,
call_hash: [u8; 32],
max_weight: Weight
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
pub fn approve_as_multi( origin: <T as Config>::RuntimeOrigin, threshold: u16, other_signatories: Vec<<T as Config>::AccountId>, maybe_timepoint: Option<Timepoint<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>>, call_hash: [u8; 32], max_weight: Weight ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
Register approval for a dispatch to be made from a deterministic composite account if
approved by a total of threshold - 1
of other_signatories
.
Payment: DepositBase
will be reserved if this is the first approval, plus
threshold
times DepositFactor
. It is returned once this dispatch happens or
is cancelled.
The dispatch origin for this call must be Signed.
threshold
: The total number of approvals for this dispatch before it is executed.other_signatories
: The accounts (other than the sender) who can approve this dispatch. May not be empty.maybe_timepoint
: If this is the first approval, then this must beNone
. If it is not the first approval, then it must beSome
, with the timepoint (block number and transaction index) of the first approval transaction.call_hash
: The hash of the call to be executed.
NOTE: If this is the final approval, you will want to use as_multi
instead.
§Complexity
O(S)
.- Up to one balance-reserve or unreserve operation.
- One passthrough operation, one insert, both
O(S)
whereS
is the number of signatories.S
is capped byMaxSignatories
, with weight being proportional. - One encode & hash, both of complexity
O(S)
. - Up to one binary search and insert (
O(logS + S)
). - I/O: 1 read
O(S)
, up to 1 mutateO(S)
. Up to one remove. - One event.
- Storage: inserts one item, value size bounded by
MaxSignatories
, with a deposit taken for its lifetime ofDepositBase + threshold * DepositFactor
.
pub fn cancel_as_multi(
origin: <T as Config>::RuntimeOrigin,
threshold: u16,
other_signatories: Vec<<T as Config>::AccountId>,
timepoint: Timepoint<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>,
call_hash: [u8; 32]
) -> Result<(), DispatchError>
pub fn cancel_as_multi( origin: <T as Config>::RuntimeOrigin, threshold: u16, other_signatories: Vec<<T as Config>::AccountId>, timepoint: Timepoint<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>, call_hash: [u8; 32] ) -> Result<(), DispatchError>
Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously for this operation will be unreserved on success.
The dispatch origin for this call must be Signed.
threshold
: The total number of approvals for this dispatch before it is executed.other_signatories
: The accounts (other than the sender) who can approve this dispatch. May not be empty.timepoint
: The timepoint (block number and transaction index) of the first approval transaction for this dispatch.call_hash
: The hash of the call to be executed.
§Complexity
O(S)
.- Up to one balance-reserve or unreserve operation.
- One passthrough operation, one insert, both
O(S)
whereS
is the number of signatories.S
is capped byMaxSignatories
, with weight being proportional. - One encode & hash, both of complexity
O(S)
. - One event.
- I/O: 1 read
O(S)
, one remove. - Storage: removes one item.
§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
pub fn multi_account_id(
who: &[<T as Config>::AccountId],
threshold: u16
) -> <T as Config>::AccountId
pub fn multi_account_id( who: &[<T as Config>::AccountId], threshold: u16 ) -> <T as Config>::AccountId
Derive a multi-account ID from the sorted list of accounts and the threshold that are required.
NOTE: who
must be sorted. If it is not, then you’ll get the wrong answer.
pub fn timepoint(
) -> Timepoint<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>
pub fn timepoint( ) -> Timepoint<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>
The current Timepoint
.
Trait Implementations
§impl<T> PalletInfoAccess for Pallet<T>where
T: Config,
impl<T> PalletInfoAccess for Pallet<T>where
T: Config,
§fn module_name() -> &'static str
fn module_name() -> &'static str
§fn crate_version() -> CrateVersion
fn crate_version() -> CrateVersion
§impl<T> WhitelistedStorageKeys for Pallet<T>where
T: Config,
impl<T> WhitelistedStorageKeys for Pallet<T>where
T: Config,
§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> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§fn offchain_worker(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number
)
fn offchain_worker( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number )
§impl<T> GetStorageVersion for Pallet<T>where
T: Config,
impl<T> GetStorageVersion for Pallet<T>where
T: Config,
§type InCodeStorageVersion = StorageVersion
type InCodeStorageVersion = StorageVersion
§fn in_code_storage_version(
) -> <Pallet<T> as GetStorageVersion>::InCodeStorageVersion
fn in_code_storage_version( ) -> <Pallet<T> as GetStorageVersion>::InCodeStorageVersion
storage_version
attribute, or
[NoStorageVersionSet
] if the attribute is missing.§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
§fn current_storage_version() -> Self::InCodeStorageVersion
fn current_storage_version() -> Self::InCodeStorageVersion
in_code_storage_version
and will be removed after March 2024.Self::current_storage_version
] instead. Read more§impl<T> OnRuntimeUpgrade for Pallet<T>where
T: Config,
impl<T> OnRuntimeUpgrade for Pallet<T>where
T: Config,
§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Hooks::on_runtime_upgrade
].§impl<T> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§impl<T> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§fn on_initialize(_n: BlockNumber) -> Weight
fn on_initialize(_n: BlockNumber) -> Weight
§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
Hooks::on_finalize
]). Read more§fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Executive
pallet. Read more§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
§fn integrity_test()
fn integrity_test()
§impl<T> PalletsInfoAccess for Pallet<T>where
T: Config,
impl<T> PalletsInfoAccess for Pallet<T>where
T: Config,
§impl<T> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§fn on_initialize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number
) -> Weight
fn on_initialize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number ) -> Weight
Hooks::on_initialize
].§impl<T> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§fn on_finalize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number
)
fn on_finalize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number )
Hooks::on_finalize
].§impl<T> Callable<T> for Pallet<T>where
T: Config,
impl<T> Callable<T> for Pallet<T>where
T: Config,
type RuntimeCall = Call<T>
§impl<T> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
§impl<T> OnGenesis for Pallet<T>where
T: Config,
impl<T> OnGenesis for Pallet<T>where
T: Config,
§fn on_genesis()
fn on_genesis()
impl<T> Eq for Pallet<T>
§impl<T> StorageInfoTrait for Pallet<T>where
T: Config,
impl<T> StorageInfoTrait for Pallet<T>where
T: Config,
fn storage_info() -> Vec<StorageInfo>
§impl<T> IntegrityTest for Pallet<T>where
T: Config,
impl<T> IntegrityTest for Pallet<T>where
T: Config,
§fn integrity_test()
fn integrity_test()
Hooks::integrity_test
].