PipsCallApi

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>

Sets the pruning setting for historical PIPs. This function can only be called by the root origin.

§Arguments
  • origin - The origin of the call, which must be the root.
  • prune - A boolean flag indicating whether completed PIPs should be pruned (true) or retained (false).
§Events
  • HistoricalPipsPruned - Emitted when the pruning setting is changed, containing the old and new values.
§Errors
  • BadOrigin - If the call is not made by the root origin.
Source

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

Changes the minimum proposal deposit amount required to start a proposal. This function can only be called by the root origin.

§Arguments
  • origin - The origin of the call, which must be the root.
  • deposit - The new minimum deposit required to start a proposal.
§Events
  • MinimumProposalDepositChanged - Emitted when the minimum proposal deposit is changed, containing the old and new values.
§Errors
  • BadOrigin - If the call is not made by the root origin.
Source

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

Changes the default enactment period. This function can only be called by the root origin.

§Arguments
  • origin - The origin of the call, which must be the root.
  • period - The new default enactment period.
§Events
  • DefaultEnactmentPeriodChanged - Emitted when the default enactment period is changed, containing the old and new values.
§Errors
  • BadOrigin - If the call is not made by the root origin.
Source

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

Sets the expiry duration (in blocks) for pending PIPs. This function can only be called by the root origin.

§Arguments
  • origin - The origin of the call, which must be the root.
  • expiry - The new expiry duration for pending PIPs. If None, PIPs never expire.
§Events
  • PendingPipExpiryChanged - Emitted when the pending PIP expiry duration is changed, containing the old and new values.
§Errors
  • BadOrigin - If the call is not made by the root origin.
Source

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

Sets the maximum number of times a PIP can be skipped. This function can only be called by the root origin.

§Arguments
  • origin - The origin of the call, which must be the root.
  • max - The new maximum skip count for PIPs.
§Events
  • MaxPipSkipCountChanged - Emitted when the maximum PIP skip count is changed, containing the old and new values.
§Errors
  • BadOrigin - If the call is not made by the root origin.
Source

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

Sets the limit on the number of active PIPs. This function can only be called by the root origin.

§Arguments
  • origin - The origin of the call, which must be the root.
  • limit - The new limit on the number of active PIPs.
§Events
  • ActivePipLimitChanged - Emitted when the active PIP limit is changed, containing the old and new values.
§Errors
  • BadOrigin - If the call is not made by the root origin.
Source

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

Proposes a new PIP by submitting a dispatchable which changes the network.

§Arguments
  • origin - The origin of the call.
  • proposal - The dispatchable call.
  • deposit - The deposit amount for the proposal.
  • url - A link to a website for proposal discussion.
  • description - A short description of the proposal.
§Events
  • ProposalCreated.
§Errors
  • IncorrectDeposit - If the deposit amount is less than the required minimum.
  • TooManyActivePips - If the number of active PIPs exceeds the maximum.
Source

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

Casts a vote either in favor or against a PIP with id. The “conviction” 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
  • origin - The origin of the call.
  • id - The proposal ID to vote on.
  • aye_or_nay - A boolean representing a vote in favor (true) or against (false).
  • deposit - The “conviction” or strength of the vote, represented by the amount of deposit.
§Events
  • Voted - Emitted when a vote is successfully cast.
§Errors
  • NoSuchProposal - If the id does not reference a valid PIP.
  • NotFromCommunity - If the proposal was made by a committee.
  • IncorrectProposalState - If the PIP is not in a pending state.
  • InsufficientDeposit - If the origin cannot reserve the required deposit.
  • IncorrectDeposit - If the deposit amount is less than the required minimum.
Source

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

Approves the pending committee PIP given by the id.

This function can only be called by a Governance Committee (GC) voting majority.

§Arguments
  • origin - The origin of the call, which must be a GC voting majority.
  • id - The proposal ID of the PIP to be approved.
§Errors
  • BadOrigin - If the call is not made by a GC voting majority.
  • NoSuchProposal - If the PIP with the given id does not exist.
  • IncorrectProposalState - If the proposal is not in a pending state.
  • NotByCommittee - If the proposal was not made by a committee.
§Notes

This function schedules the PIP for execution if all checks pass.

Source

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

Rejects the PIP given by the id. Bonded funds will be refunded, assuming it hasn’t been cancelled or executed.

This function can only be called by a Governance Committee (GC) voting majority.

§Arguments
  • origin - The origin of the call, which must be a GC voting majority.
  • id - The proposal ID of the PIP to be rejected.
§Errors
  • BadOrigin - If the call is not made by a GC voting majority.
  • NoSuchProposal - If the PIP with the given id does not exist.
  • IncorrectProposalState - If the proposal was cancelled or executed.
§Notes

This function will unschedule the PIP if it was scheduled for execution and will unsnapshot the PIP if it was part of a snapshot. It will also handle the rejection of the proposal and refund any bonded funds.

Source

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

Prunes the PIP given by the id. The PIP must not be active.

This function is intended for storage garbage collection purposes and can only be called by a Governance Committee (GC) voting majority.

§Arguments
  • origin - The origin of the call, which must be a GC voting majority.
  • id - The proposal ID of the PIP to be pruned.
§Errors
  • BadOrigin - If the call is not made by a GC voting majority.
  • NoSuchProposal - If the PIP with the given id does not exist.
  • IncorrectProposalState - If the proposal is active.
§Notes

This function will remove the PIP from storage and refund any remaining bonded funds.

Source

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

Updates the execution schedule of the PIP given by id. This function can only be called by the release coordinator.

§Arguments
  • origin - The origin of the call, which must be the release coordinator.
  • id - The proposal ID of the PIP to be rescheduled.
  • until - An optional future block number where the enactment period will finish. If None, the enactment period will finish in the next block.
§Errors
  • RescheduleNotByReleaseCoordinator - If the call is not made by the release coordinator.
  • IncorrectProposalState - If the proposal is not in a scheduled state.
  • InvalidFutureBlockNumber - If the provided block number is not a valid future block number.
Source

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

Clears the snapshot and emits the event SnapshotCleared.

This function can only be called by a Governance Committee (GC) member.

§Arguments
  • origin - The origin of the call, which must be a GC member.
§Events
  • SnapshotCleared - Emitted when the snapshot is successfully cleared, containing the ID of the cleared snapshot.
§Errors
  • NotACommitteeMember - If the call is not made by a GC member.
Source

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

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

This function can only be called by a Governance Committee (GC) member.

§Arguments
  • origin - The origin of the call, which must be a GC member.
§Events
  • SnapshotTaken - Emitted when a snapshot is successfully taken, containing the ID of the snapshot and the queue of PIPs.
§Errors
  • NotACommitteeMember - If the call is not made by a GC member.
Source

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

Enacts the results for the PIPs in the snapshot queue.

The snapshot will be available for further enactments until it is cleared.

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

§Arguments
  • origin - The origin of the call, which must be a GC voting majority.
  • results - A vector of tuples where each tuple contains a PIP ID and a SnapshotResult (either Approve, Reject, or Skip).
§Events
  • SnapshotResultsEnacted - Emitted when the snapshot results are successfully enacted, containing the ID of the snapshot and the actions taken.
§Errors
  • BadOrigin - If the call is not made by a GC voting majority.
  • CannotSkipPip - If a given PIP has already been skipped too many times.
  • SnapshotResultTooLarge - If the length of results is greater than the length of the snapshot queue.
  • SnapshotIdMismatch - If there is a mismatch between the PIP IDs in results and the snapshot queue.
§Notes

This function will:

  • Update the skip counts for PIPs that are skipped.
  • Reject PIPs that are marked for rejection and refund any bonded funds.
  • Approve PIPs that are marked for approval and schedule them for execution.
Source

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

Executes a scheduled PIP (Polymesh Improvement Proposal).

§Arguments
  • origin - The origin of the call, which must be the root.
  • id - The unique identifier of the PIP to be executed.
§Errors
  • BadOrigin - If the call is not made by the root origin.
§Notes

This function will:

  • Remove the PIP from the scheduling queue.
  • Execute the proposal associated with the PIP.
Source

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

Expires a scheduled PIP (Polymesh Improvement Proposal).

§Arguments
  • origin - The origin of the call, which must be the root.
  • did - The identity ID of the entity initiating the expiration.
  • id - The unique identifier of the PIP to be expired.
§Errors
  • BadOrigin - If the call is not made by the root origin.
§Notes

This function will:

  • Check if the PIP is in a pending state.
  • Unsnapshot the PIP if it was part of a snapshot.
  • Prune the PIP data if it is in an expired state.

Trait Implementations§

Source§

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

Source§

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

Returns a duplicate 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