pub struct PipsCallApi<'api> { /* private fields */ }Implementations§
Source§impl<'api> PipsCallApi<'api>
impl<'api> PipsCallApi<'api>
Sourcepub fn set_prune_historical_pips(&self, prune: bool) -> Result<WrappedCall>
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.
Sourcepub fn set_min_proposal_deposit(&self, deposit: u128) -> Result<WrappedCall>
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.
Sourcepub fn set_default_enactment_period(&self, duration: u32) -> Result<WrappedCall>
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.
Sourcepub fn set_pending_pip_expiry(
&self,
expiry: MaybeBlock<u32>,
) -> Result<WrappedCall>
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. IfNone, 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.
Sourcepub fn set_max_pip_skip_count(&self, max: u8) -> Result<WrappedCall>
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.
Sourcepub fn set_active_pip_limit(&self, limit: u32) -> Result<WrappedCall>
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.
Sourcepub fn propose(
&self,
proposal: RuntimeCall,
deposit: u128,
url: Option<Url>,
description: Option<PipDescription>,
) -> Result<WrappedCall>
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.
Sourcepub fn vote(
&self,
id: PipId,
aye_or_nay: bool,
deposit: u128,
) -> Result<WrappedCall>
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 theiddoes 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 theorigincannot reserve the required deposit.IncorrectDeposit- If the deposit amount is less than the required minimum.
Sourcepub fn approve_committee_proposal(&self, id: PipId) -> Result<WrappedCall>
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 giveniddoes 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.
Sourcepub fn reject_proposal(&self, id: PipId) -> Result<WrappedCall>
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 giveniddoes 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.
Sourcepub fn prune_proposal(&self, id: PipId) -> Result<WrappedCall>
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 giveniddoes not exist.IncorrectProposalState- If the proposal is active.
§Notes
This function will remove the PIP from storage and refund any remaining bonded funds.
Sourcepub fn reschedule_execution(
&self,
id: PipId,
until: Option<u32>,
) -> Result<WrappedCall>
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. IfNone, 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.
Sourcepub fn clear_snapshot(&self) -> Result<WrappedCall>
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.
Sourcepub fn snapshot(&self) -> Result<WrappedCall>
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.
Sourcepub fn enact_snapshot_results(
&self,
results: Vec<(PipId, SnapshotResult)>,
) -> Result<WrappedCall>
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 aSnapshotResult(eitherApprove,Reject, orSkip).
§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 ofresultsis greater than the length of the snapshot queue.SnapshotIdMismatch- If there is a mismatch between the PIP IDs inresultsand 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.
Sourcepub fn execute_scheduled_pip(&self, id: PipId) -> Result<WrappedCall>
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.
Sourcepub fn expire_scheduled_pip(
&self,
did: IdentityId,
id: PipId,
) -> Result<WrappedCall>
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>
impl<'api> Clone for PipsCallApi<'api>
Source§fn clone(&self) -> PipsCallApi<'api>
fn clone(&self) -> PipsCallApi<'api>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto 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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
Source§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
Source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
Source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
Source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T. Read moreSource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
Source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from.Source§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
Source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T.