Enum noble_multisig::Call[][src]

pub enum Call<T: Config> {
    as_multi_threshold_1(Vec<T::AccountId>, Box<<T as Config>::Call>),
    as_multi(u16Vec<T::AccountId>, Option<Timepoint<T::BlockNumber>>, OpaqueCallboolWeight),
    approve_as_multi(u16Vec<T::AccountId>, Option<Timepoint<T::BlockNumber>>, [u8; 32]Weight),
    cancel_as_multi(u16Vec<T::AccountId>, Timepoint<T::BlockNumber>, [u8; 32]),
    // some variants omitted
}

Dispatchable calls.

Each variant of this enum maps to a dispatchable function from the associated module.

Variants

as_multi_threshold_1(Vec<T::AccountId>, Box<<T as Config>::Call>)

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.

O(Z + C) where Z is the length of the call and C its execution weight.

  • DB Weight: None
  • Plus Call Weight

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 be None. If it is not the first approval, then it must be Some, 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.

  • O(S + Z + Call).
  • Up to one balance-reserve or unreserve operation.
  • One passthrough operation, one insert, both O(S) where S is the number of signatories. S is capped by MaxSignatories, with weight being proportional.
  • One call encode & hash, both of complexity O(Z) where Z 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 mutate O(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 of DepositBase + threshold * DepositFactor.

  • DB Weight:
    • Reads: Multisig Storage, [Caller Account], Calls (if store_call)
    • Writes: Multisig Storage, [Caller Account], Calls (if store_call)
  • Plus Call Weight

approve_as_multi(u16Vec<T::AccountId>, Option<Timepoint<T::BlockNumber>>, [u8; 32]Weight)

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 be None. If it is not the first approval, then it must be Some, 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.

  • O(S).
  • Up to one balance-reserve or unreserve operation.
  • One passthrough operation, one insert, both O(S) where S is the number of signatories. S is capped by MaxSignatories, 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 mutate O(S). Up to one remove.
  • One event.
  • Storage: inserts one item, value size bounded by MaxSignatories, with a deposit taken for its lifetime of DepositBase + threshold * DepositFactor.

  • DB Weight:
    • Read: Multisig Storage, [Caller Account]
    • Write: Multisig Storage, [Caller Account]

cancel_as_multi(u16Vec<T::AccountId>, Timepoint<T::BlockNumber>, [u8; 32])

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.

  • O(S).
  • Up to one balance-reserve or unreserve operation.
  • One passthrough operation, one insert, both O(S) where S is the number of signatories. S is capped by MaxSignatories, 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.

  • DB Weight:
    • Read: Multisig Storage, [Caller Account], Refund Account, Calls
    • Write: Multisig Storage, [Caller Account], Refund Account, Calls

Trait Implementations

impl<T: Config> Clone for Call<T>[src]

impl<T: Config> Debug for Call<T>[src]

impl<T: Config> Decode for Call<T> where
    Vec<T::AccountId>: Decode,
    Vec<T::AccountId>: Decode,
    Box<<T as Config>::Call>: Decode,
    Box<<T as Config>::Call>: Decode,
    Vec<T::AccountId>: Decode,
    Vec<T::AccountId>: Decode,
    Option<Timepoint<T::BlockNumber>>: Decode,
    Option<Timepoint<T::BlockNumber>>: Decode,
    Vec<T::AccountId>: Decode,
    Vec<T::AccountId>: Decode,
    Option<Timepoint<T::BlockNumber>>: Decode,
    Option<Timepoint<T::BlockNumber>>: Decode,
    Vec<T::AccountId>: Decode,
    Vec<T::AccountId>: Decode,
    Timepoint<T::BlockNumber>: Decode,
    Timepoint<T::BlockNumber>: Decode
[src]

impl<T: Config> Encode for Call<T> where
    Vec<T::AccountId>: Encode,
    Vec<T::AccountId>: Encode,
    Box<<T as Config>::Call>: Encode,
    Box<<T as Config>::Call>: Encode,
    Vec<T::AccountId>: Encode,
    Vec<T::AccountId>: Encode,
    Option<Timepoint<T::BlockNumber>>: Encode,
    Option<Timepoint<T::BlockNumber>>: Encode,
    Vec<T::AccountId>: Encode,
    Vec<T::AccountId>: Encode,
    Option<Timepoint<T::BlockNumber>>: Encode,
    Option<Timepoint<T::BlockNumber>>: Encode,
    Vec<T::AccountId>: Encode,
    Vec<T::AccountId>: Encode,
    Timepoint<T::BlockNumber>: Encode,
    Timepoint<T::BlockNumber>: Encode
[src]

impl<T: Config> EncodeLike<Call<T>> for Call<T> where
    Vec<T::AccountId>: Encode,
    Vec<T::AccountId>: Encode,
    Box<<T as Config>::Call>: Encode,
    Box<<T as Config>::Call>: Encode,
    Vec<T::AccountId>: Encode,
    Vec<T::AccountId>: Encode,
    Option<Timepoint<T::BlockNumber>>: Encode,
    Option<Timepoint<T::BlockNumber>>: Encode,
    Vec<T::AccountId>: Encode,
    Vec<T::AccountId>: Encode,
    Option<Timepoint<T::BlockNumber>>: Encode,
    Option<Timepoint<T::BlockNumber>>: Encode,
    Vec<T::AccountId>: Encode,
    Vec<T::AccountId>: Encode,
    Timepoint<T::BlockNumber>: Encode,
    Timepoint<T::BlockNumber>: Encode
[src]

impl<T: Config> Eq for Call<T>[src]

impl<T: Config> GetCallName for Call<T>[src]

impl<T: Config> GetDispatchInfo for Call<T>[src]

impl<T: Config> PartialEq<Call<T>> for Call<T>[src]

impl<T: Config> UnfilteredDispatchable for Call<T>[src]

type Origin = T::Origin

The origin type of the runtime, (i.e. fabric_system::Config::Origin).

Auto Trait Implementations

impl<T> RefUnwindSafe for Call<T> where
    T: RefUnwindSafe,
    <T as Config>::AccountId: RefUnwindSafe,
    <T as Config>::BlockNumber: RefUnwindSafe,
    <T as Config>::Call: RefUnwindSafe

impl<T> Send for Call<T> where
    T: Send,
    <T as Config>::Call: Send

impl<T> Sync for Call<T> where
    T: Sync,
    <T as Config>::Call: Sync

impl<T> Unpin for Call<T> where
    T: Unpin,
    <T as Config>::AccountId: Unpin,
    <T as Config>::BlockNumber: Unpin

impl<T> UnwindSafe for Call<T> where
    T: UnwindSafe,
    <T as Config>::AccountId: UnwindSafe,
    <T as Config>::BlockNumber: UnwindSafe,
    <T as Config>::Call: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CheckedConversion for T[src]

impl<S> Codec for S where
    S: Decode + Encode
[src]

impl<T> DecodeAll for T where
    T: Decode
[src]

impl<T> DecodeLimit for T where
    T: Decode
[src]

impl<T> Downcast for T where
    T: Any

impl<T> DowncastSync for T where
    T: Any + Send + Sync

impl<T> DynClone for T where
    T: Clone
[src]

impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
    T: Encode
[src]

impl<'_, T> EncodeLike<&'_ T> for T where
    T: Encode
[src]

impl<'_, T> EncodeLike<&'_ mut T> for T where
    T: Encode
[src]

impl<T> EncodeLike<Arc<T>> for T where
    T: Encode
[src]

impl<T> EncodeLike<Box<T, Global>> for T where
    T: Encode
[src]

impl<'a, T> EncodeLike<Cow<'a, T>> for T where
    T: ToOwned + Encode
[src]

impl<T> EncodeLike<Rc<T>> for T where
    T: Encode
[src]

impl<T> From<T> for T[src]

impl<S> FullCodec for S where
    S: Decode + FullEncode
[src]

impl<S> FullEncode for S where
    S: Encode + EncodeLike<S>, 
[src]

impl<T> Hashable for T where
    T: Codec
[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IsType<T> for T[src]

impl<T, Outer> IsWrappedBy<Outer> for T where
    T: From<Outer>,
    Outer: AsRef<T> + AsMut<T> + From<T>, 
[src]

pub fn from_ref(outer: &Outer) -> &T[src]

Get a reference to the inner from the outer.

pub fn from_mut(outer: &mut Outer) -> &mut T[src]

Get a mutable reference to the inner from the outer.

impl<T> KeyedVec for T where
    T: Codec
[src]

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeRefUnwindSafe for T where
    T: RefUnwindSafe

impl<T> Member for T where
    T: 'static + Send + Sync + Debug + Eq + PartialEq<T> + Clone
[src]

impl<T> Parameter for T where
    T: Codec + EncodeLike<T> + Clone + Eq + Debug
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> SaturatedConversion for T

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<S, T> UncheckedInto<T> for S where
    T: UncheckedFrom<S>, 
[src]

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

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