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>
Change whether completed PIPs are pruned. Can only be called by root.
§Arguments
prune
specifies whether completed PIPs should be pruned.
Sourcepub fn set_min_proposal_deposit(&self, deposit: u128) -> Result<WrappedCall>
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
Sourcepub fn set_default_enactment_period(&self, duration: u32) -> Result<WrappedCall>
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.
Sourcepub fn set_pending_pip_expiry(
&self,
expiry: MaybeBlock<u32>,
) -> Result<WrappedCall>
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.
Sourcepub fn set_max_pip_skip_count(&self, max: u8) -> Result<WrappedCall>
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.
Sourcepub fn set_active_pip_limit(&self, limit: u32) -> Result<WrappedCall>
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.
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>
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 againstorigin
.proposal
a dispatchable calldeposit
minimum deposit value, which is ignored ifproposer
is a committee.url
a link to a website for proposal discussion
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>
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 idaye_or_nay
, a bool representing for or against votedeposit
, the “conviction” with which the vote is made.
§Errors
NoSuchProposal
ifid
doesn’t reference a valid PIP.NotFromCommunity
if proposal was made by a committee.IncorrectProposalState
if PIP isn’t pending.InsufficientDeposit
iforigin
cannot reservedeposit - old_deposit
.
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
.
§Errors
BadOrigin
unless a GC voting majority executes this function.NoSuchProposal
if the PIP withid
doesn’t exist.IncorrectProposalState
if the proposal isn’t pending.NotByCommittee
if the proposal isn’t by a committee.
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
, 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 withid
doesn’t exist.IncorrectProposalState
if the proposal was cancelled or executed.
Sourcepub fn prune_proposal(&self, id: PipId) -> Result<WrappedCall>
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 withid
doesn’t exist.IncorrectProposalState
if the proposal is active.
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
.
§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.
Sourcepub fn clear_snapshot(&self) -> Result<WrappedCall>
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.
Sourcepub fn snapshot(&self) -> Result<WrappedCall>
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.
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 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:This is protects against clearing queue while GC is voting.∃ (i ∈ 0..SnapshotQueue.len()). results[i].0 ≠ SnapshotQueue[SnapshotQueue.len() - i].id
Sourcepub fn execute_scheduled_pip(&self, id: PipId) -> Result<WrappedCall>
pub fn execute_scheduled_pip(&self, id: PipId) -> Result<WrappedCall>
Internal dispatchable that handles execution of a 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>
Internal dispatchable that handles expiration of a PIP.
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
.