Struct PipsCallApi

Source
pub struct PipsCallApi<'api> { /* private fields */ }

Implementations§

Source§

impl<'api> PipsCallApi<'api>

Source

pub fn set_prune_historical_pips(&self, prune: bool) -> Result<WrappedCall>

Change whether completed PIPs are pruned. Can only be called by root.

§Arguments
  • prune specifies whether completed PIPs should be pruned.
Source

pub fn set_min_proposal_deposit(&self, deposit: u128) -> Result<WrappedCall>

Change the minimum proposal deposit amount required to start a proposal. Can only be called by root.

§Arguments
  • deposit the new min deposit required to start a proposal
Source

pub fn set_default_enactment_period(&self, duration: u32) -> Result<WrappedCall>

Change the default enactment period. Can only be called by root.

§Arguments
  • duration the new default enactment period it takes for a scheduled PIP to be executed.
Source

pub fn set_pending_pip_expiry( &self, expiry: MaybeBlock<u32>, ) -> Result<WrappedCall>

Change the amount of blocks after which a pending PIP is expired. If expiry is None then PIPs never expire. Can only be called by root.

§Arguments
  • expiry the block-time it takes for a still-Pending PIP to expire.
Source

pub fn set_max_pip_skip_count(&self, max: u8) -> Result<WrappedCall>

Change the maximum skip count (max_pip_skip_count). Can only be called by root.

§Arguments
  • max skips before a PIP cannot be skipped by GC anymore.
Source

pub fn set_active_pip_limit(&self, limit: u32) -> Result<WrappedCall>

Change the maximum number of active PIPs before community members cannot propose anything. Can only be called by root.

§Arguments
  • limit of concurrent active PIPs.
Source

pub fn propose( &self, proposal: RuntimeCall, deposit: u128, url: Option<Url>, description: Option<PipDescription>, ) -> Result<WrappedCall>

A network member creates a PIP by submitting a dispatchable which changes the network in someway. A minimum deposit is required to open a new proposal.

§Arguments
  • proposer is either a signing key or committee. Used to understand whether this is a committee proposal and verified against origin.
  • proposal a dispatchable call
  • deposit minimum deposit value, which is ignored if proposer is a committee.
  • url a link to a website for proposal discussion
Source

pub fn vote( &self, id: PipId, aye_or_nay: bool, deposit: u128, ) -> Result<WrappedCall>

Vote either in favor (aye_or_nay == true) or against a PIP with id. The “convinction” or strength of the vote is given by deposit, which is reserved.

Note that vote is not additive. That is, vote(id, true, 50) followed by vote(id, true, 40) will first reserve 50 and then refund 50 - 10, ending up with 40 in deposit. To add atop of existing votes, you’ll need existing_deposit + addition.

§Arguments
  • id, proposal id
  • aye_or_nay, a bool representing for or against vote
  • deposit, the “conviction” with which the vote is made.
§Errors
  • NoSuchProposal if id doesn’t reference a valid PIP.
  • NotFromCommunity if proposal was made by a committee.
  • IncorrectProposalState if PIP isn’t pending.
  • InsufficientDeposit if origin cannot reserve deposit - old_deposit.
Source

pub fn approve_committee_proposal(&self, id: PipId) -> Result<WrappedCall>

Approves the pending committee PIP given by the id.

§Errors
  • BadOrigin unless a GC voting majority executes this function.
  • NoSuchProposal if the PIP with id doesn’t exist.
  • IncorrectProposalState if the proposal isn’t pending.
  • NotByCommittee if the proposal isn’t by a committee.
Source

pub fn reject_proposal(&self, id: PipId) -> Result<WrappedCall>

Rejects the PIP given by the id, refunding any bonded funds, assuming it hasn’t been cancelled or executed. Note that proposals scheduled-for-execution can also be rejected.

§Errors
  • BadOrigin unless a GC voting majority executes this function.
  • NoSuchProposal if the PIP with id doesn’t exist.
  • IncorrectProposalState if the proposal was cancelled or executed.
Source

pub fn prune_proposal(&self, id: PipId) -> Result<WrappedCall>

Prune the PIP given by the id, refunding any funds not already refunded. The PIP may not be active

This function is intended for storage garbage collection purposes.

§Errors
  • BadOrigin unless a GC voting majority executes this function.
  • NoSuchProposal if the PIP with id doesn’t exist.
  • IncorrectProposalState if the proposal is active.
Source

pub fn reschedule_execution( &self, id: PipId, until: Option<u32>, ) -> Result<WrappedCall>

Updates the execution schedule of the PIP given by id.

§Arguments
  • until defines the future block where the enactment period will finished. None value means that enactment period is going to finish in the next block.
§Errors
  • RescheduleNotByReleaseCoordinator unless triggered by release coordinator.
  • IncorrectProposalState unless the proposal was in a scheduled state.
Source

pub fn clear_snapshot(&self) -> Result<WrappedCall>

Clears the snapshot and emits the event SnapshotCleared.

§Errors
  • NotACommitteeMember - triggered when a non-GC-member executes the function.
Source

pub fn snapshot(&self) -> Result<WrappedCall>

Takes a new snapshot of the current list of active && pending PIPs. The PIPs are then sorted into a priority queue based on each PIP’s weight.

§Errors
  • NotACommitteeMember - triggered when a non-GC-member executes the function.
Source

pub fn enact_snapshot_results( &self, results: Vec<(PipId, SnapshotResult)>, ) -> Result<WrappedCall>

Enacts results for the PIPs in the snapshot queue. The snapshot will be available for further enactments until it is cleared.

The results are encoded a list of (id, result) where result is applied to id. Note that the snapshot priority queue is encoded with the lowest priority first. so results = [(id, Approve)] will approve SnapshotQueue[SnapshotQueue.len() - 1].

§Errors
  • BadOrigin - unless a GC voting majority executes this function.
  • CannotSkipPip - a given PIP has already been skipped too many times.
  • SnapshotResultTooLarge - on len(results) > len(snapshot_queue).
  • SnapshotIdMismatch - if:
     ∃ (i ∈ 0..SnapshotQueue.len()).
       results[i].0 ≠ SnapshotQueue[SnapshotQueue.len() - i].id
    This is protects against clearing queue while GC is voting.
Source

pub fn execute_scheduled_pip(&self, id: PipId) -> Result<WrappedCall>

Internal dispatchable that handles execution of a PIP.

Source

pub fn expire_scheduled_pip( &self, did: IdentityId, id: PipId, ) -> Result<WrappedCall>

Internal dispatchable that handles expiration of a PIP.

Trait Implementations§

Source§

impl<'api> Clone for PipsCallApi<'api>

Source§

fn clone(&self) -> PipsCallApi<'api>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'api> From<&'api Api> for PipsCallApi<'api>

Source§

fn from(api: &'api Api) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'api> Freeze for PipsCallApi<'api>

§

impl<'api> !RefUnwindSafe for PipsCallApi<'api>

§

impl<'api> Send for PipsCallApi<'api>

§

impl<'api> Sync for PipsCallApi<'api>

§

impl<'api> Unpin for PipsCallApi<'api>

§

impl<'api> !UnwindSafe for PipsCallApi<'api>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CheckedConversion for T

Source§

fn checked_from<T>(t: T) -> Option<Self>
where Self: TryFrom<T>,

Convert from a value of T into an equivalent instance of Option<Self>. Read more
Source§

fn checked_into<T>(self) -> Option<T>
where Self: TryInto<T>,

Consume self to return Some equivalent value of Option<T>. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<Src, Dest> IntoTuple<Dest> for Src
where Dest: FromTuple<Src>,

Source§

fn into_tuple(self) -> Dest

Source§

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

Source§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

Source§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatedConversion for T

Source§

fn saturated_from<T>(t: T) -> Self
where Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
Source§

fn saturated_into<T>(self) -> T
where Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<S, T> UncheckedInto<T> for S
where T: UncheckedFrom<S>,

Source§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
Source§

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

Source§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> JsonSchemaMaybe for T

Source§

impl<T> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSendSync for T