pub struct CallApi<'api> { /* private fields */ }
Implementations
sourceimpl<'api> CallApi<'api>
impl<'api> CallApi<'api>
sourcepub fn set_prune_historical_pips(&self, prune: bool) -> Result<WrappedCall<'api>>
pub fn set_prune_historical_pips(&self, prune: bool) -> Result<WrappedCall<'api>>
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<'api>>
pub fn set_min_proposal_deposit(
&self,
deposit: u128
) -> Result<WrappedCall<'api>>
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<'api>>
pub fn set_default_enactment_period(
&self,
duration: u32
) -> Result<WrappedCall<'api>>
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<'api>>
pub fn set_pending_pip_expiry(
&self,
expiry: MaybeBlock<u32>
) -> Result<WrappedCall<'api>>
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<'api>>
pub fn set_max_pip_skip_count(&self, max: u8) -> Result<WrappedCall<'api>>
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<'api>>
pub fn set_active_pip_limit(&self, limit: u32) -> Result<WrappedCall<'api>>
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: Call,
deposit: u128,
url: Option<Url>,
description: Option<PipDescription>
) -> Result<WrappedCall<'api>>
pub fn propose(
&self,
proposal: Call,
deposit: u128,
url: Option<Url>,
description: Option<PipDescription>
) -> Result<WrappedCall<'api>>
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<'api>>
pub fn vote(
&self,
id: PipId,
aye_or_nay: bool,
deposit: u128
) -> Result<WrappedCall<'api>>
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<'api>>
pub fn approve_committee_proposal(&self, id: PipId) -> Result<WrappedCall<'api>>
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<'api>>
pub fn reject_proposal(&self, id: PipId) -> Result<WrappedCall<'api>>
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<'api>>
pub fn prune_proposal(&self, id: PipId) -> Result<WrappedCall<'api>>
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<'api>>
pub fn reschedule_execution(
&self,
id: PipId,
until: Option<u32>
) -> Result<WrappedCall<'api>>
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<'api>>
pub fn clear_snapshot(&self) -> Result<WrappedCall<'api>>
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<'api>>
pub fn snapshot(&self) -> Result<WrappedCall<'api>>
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<'api>>
pub fn enact_snapshot_results(
&self,
results: Vec<(PipId, SnapshotResult)>
) -> Result<WrappedCall<'api>>
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<'api>>
pub fn execute_scheduled_pip(&self, id: PipId) -> Result<WrappedCall<'api>>
Internal dispatchable that handles execution of a PIP.
sourcepub fn expire_scheduled_pip(
&self,
did: IdentityId,
id: PipId
) -> Result<WrappedCall<'api>>
pub fn expire_scheduled_pip(
&self,
did: IdentityId,
id: PipId
) -> Result<WrappedCall<'api>>
Internal dispatchable that handles expiration of a PIP.
Trait Implementations
Auto Trait Implementations
impl<'api> !RefUnwindSafe for CallApi<'api>
impl<'api> Send for CallApi<'api>
impl<'api> Sync for CallApi<'api>
impl<'api> Unpin for CallApi<'api>
impl<'api> !UnwindSafe for CallApi<'api>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<W, Global>impl<W> Write for Box<W, Global>where
W: Write + ?Sized,impl<R> Read for Box<R, Global>where
R: Read + ?Sized,impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<W, Global>impl<W> Write for Box<W, Global>where
W: Write + ?Sized,impl<R> Read for Box<R, Global>where
R: Read + ?Sized,impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
W: Write + ?Sized,impl<R> Read for Box<R, Global>where
R: Read + ?Sized,impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read morefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read morefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read morefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read moresourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
sourcefn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
sourcefn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T
. Read moreimpl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.sourceimpl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
sourcefn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.