Skip to main content

BatchTransitionAction

Enum BatchTransitionAction 

Source
pub enum BatchTransitionAction {
    V0(BatchTransitionActionV0),
}
Expand description

documents batch transition action

Variants§

Implementations§

Source§

impl BatchTransitionAction

Source

pub fn owner_id(&self) -> Identifier

owner id

Source

pub fn transitions(&self) -> &Vec<BatchedTransitionAction>

transitions

Source

pub fn transitions_mut(&mut self) -> &mut Vec<BatchedTransitionAction>

transitions

Source

pub fn transitions_take(&mut self) -> Vec<BatchedTransitionAction>

transitions

Source

pub fn transitions_owned(self) -> Vec<BatchedTransitionAction>

transitions owned

Source

pub fn set_transitions(&mut self, transitions: Vec<BatchedTransitionAction>)

set transitions

Source

pub fn user_fee_increase(&self) -> UserFeeIncrease

fee multiplier

Source

pub fn contract_group_memberships( &self, contract_id: &Identifier, ) -> Option<&ResolvedContractGroupMemberships>

The group memberships the transformer resolved for a contract the batch touches

Source

pub fn set_contract_group_memberships( &mut self, contract_id: Identifier, resolved: ResolvedContractGroupMemberships, )

Records the group memberships of a contract the batch touches

Source

pub fn lapsed_suspensions(&self) -> &BTreeSet<Identifier>

The contracts on which the batch sweeps its owner’s lapsed suspension when it executes

Source

pub fn moderators_pot_settlements(&self) -> &[ModeratorsPotSettlement]

The settles of moderators pots the batch forces before it changes a seated team

Source

pub fn take_moderators_pot_settlements( &mut self, ) -> Vec<ModeratorsPotSettlement>

Takes the settles of moderators pots out of the batch, for its conversion to operations

Source

pub fn set_moderators_pot_settlements( &mut self, settlements: Vec<ModeratorsPotSettlement>, )

Records the settles of moderators pots the batch forces before it changes a seated team

Source§

impl BatchTransitionAction

Source

pub fn all_used_balances(&self) -> Result<Option<Credits>, ProtocolError>

The sum of all purchases amount and all conflicting index collateral voting funds

Source

pub fn gas_sponsor(&self) -> Option<&ResolvedGasSponsor>

The contract owner the batch transformer resolved as the gas sponsor, if any

Source

pub fn declared_action_fees( &self, ) -> Vec<(Identifier, Identifier, ActionFeePricing, DocumentActionFee)>

The fee each document transition of the batch owes for its action, before the fee multiplier, with the contract it goes to, that contract’s owner, and how it is priced: what its document type declares, with the moderators part it agreed to when that is a discount the contract’s seated moderation charter gives (advanced structure validation refuses any other). A transition that became a nonce bump declares nothing: only an action that executes is charged.

Source

pub fn contracts_with_moderators_discounts(&self) -> BTreeSet<Identifier>

The elected contracts on whose moderated document types some document transition of the batch agrees to a discounted moderators part (protocol version 14): the contracts whose seated moderation charter the batch transformer reads the moderators share of.

Source

pub fn set_seated_moderators_share( &mut self, contract_id: Identifier, share: Option<u8>, )

Records the moderators share of the seated moderation charter of contract_id, None when no charter is seated on it

Source

pub fn action_fee_multiplier_permille(&self) -> Option<FeeMultiplier>

The fee multiplier, in permille, of the epoch the batch executes in, as the batch transformer read it (protocol version 14). Only read when some document transition of the batch declares an action fee priced by it.

Source

pub fn set_action_fee_multiplier_permille( &mut self, multiplier: Option<FeeMultiplier>, )

Records the fee multiplier of the epoch the batch executes in

Source

pub fn resolved_action_fees( &self, ) -> Result<Vec<ResolvedDocumentActionFee>, ProtocolError>

The action fees the batch owes: what its document transitions declare, priced.

They are read off the transitions as they are now, not as the transformer built them. State validation replaces a transition that fails with a nonce bump after the transformer ran, and a bump declares nothing, so a fee is only ever owed for an action that executes.

Source

pub fn validate_action_fee_agreements( &self, ) -> Result<Result<(), ConsensusError>, ProtocolError>

Whether every document transition that owes an action fee agreed to it: the transition names the amounts and the pricing its document type declares, or, on a document type an elected contract moderates, the declared owner part and pricing with the share of the declared moderators part the contract’s seated moderation charter takes; and, for a fee priced by the fee multiplier, accepts the multiplier of the epoch the batch executes in. The inner error is the consensus error of the first transition that did not. Everything it is judged against travels on the action (the charter’s share as the transformer read it), so this reads no state.

Source

pub fn set_gas_sponsor(&mut self, gas_sponsor: Option<ResolvedGasSponsor>)

Records the contract owner who sponsors the batch’s gas, with their balance

Source

pub fn resolve_gas_payer(&self) -> Result<GasPayer, ConsensusError>

Who pays the gas of the batch, or the consensus error explaining why the batch’s requests cannot be honoured: a transition asking for more than its document type’s token cost offers, or a batch whose transitions do not all name the same payer.

Source

pub fn all_purchases_amount(&self) -> Result<Option<Credits>, ProtocolError>

The sum of all purchases amounts for all purchase transitions in the batch

Source

pub fn all_conflicting_index_collateral_voting_funds( &self, ) -> Result<Option<Credits>, ProtocolError>

The sum of all conflicting index collateral voting funds for all document create transitions in the batch

Source

pub fn combined_security_level_requirement( &self, ) -> Result<Vec<SecurityLevel>, ProtocolError>

Determines the security level requirements for the batch transition action.

This method performs the following steps:

  1. Retrieves all document types associated with the state transitions (STs) in the batch.
  2. For each document type, fetches its schema to determine its security level requirement.
    • If the schema specifies a security level, that is used.
    • Otherwise, a default security level is used.

The method then determines the highest security level (which corresponds to the lowest integer value of the SecurityLevel enum) across all documents affected by the state transitions. This highest level becomes the signature requirement for the entire batch transition action.

§Returns
  • Returns a Result containing a Vec<SecurityLevel> which is the list of security levels required for the batch transition action.
  • Returns an Err of type ProtocolError if any error occurs during the process.
§Examples
ⓘ
// Assuming `batch_transition_action` is an instance of `DocumentsBatchTransitionAction`
let required_levels = batch_transition_action.contract_based_security_level_requirement()?;

Trait Implementations§

Source§

impl Clone for BatchTransitionAction

Source§

fn clone(&self) -> BatchTransitionAction

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for BatchTransitionAction

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl DriveHighLevelOperationConverter for BatchTransitionAction

Source§

fn into_high_level_drive_operations<'b>( self, epoch: &Epoch, platform_version: &PlatformVersion, ) -> Result<Vec<DriveOperation<'b>>, Error>

This will get a list of atomic drive operations from a high level operations
Source§

impl From<BatchTransitionAction> for StateTransitionAction

Source§

fn from(value: BatchTransitionAction) -> Self

Converts to this type from the input type.
Source§

impl From<BatchTransitionActionV0> for BatchTransitionAction

Source§

fn from(value: BatchTransitionActionV0) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> CostsExt for T

§

fn wrap_with_cost(self, cost: OperationCost) -> CostContext<Self>
where Self: Sized,

Wraps any value into a CostContext object with provided costs.
§

fn wrap_fn_cost( self, f: impl FnOnce(&Self) -> OperationCost, ) -> CostContext<Self>
where Self: Sized,

Wraps any value into CostContext object with costs computed using the value getting wrapped.
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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
§

impl<T, U> IntoOnNetwork<U> for T
where U: FromOnNetwork<T>,

§

fn into_on_network(self, network: Network) -> U

Calls U::from_on_network(self).

§

impl<T, U> IntoPlatformVersioned<U> for T
where U: FromPlatformVersioned<T>,

§

fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U

Performs the conversion.
§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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.
§

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

§

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

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

fn try_from_versioned( value: U, _grove_version: &GroveVersion, ) -> Result<T, <T as TryFromVersioned<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.
§

impl<T, U> TryIntoPlatformVersioned<U> for T
where U: TryFromPlatformVersioned<T>,

§

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

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

fn try_into_platform_versioned( self, platform_version: &PlatformVersion, ) -> Result<U, <U as TryFromPlatformVersioned<T>>::Error>

Performs the conversion.
§

impl<T, U> TryIntoVersioned<U> for T
where U: TryFromVersioned<T>,

§

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

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

fn try_into_versioned( self, grove_version: &GroveVersion, ) -> Result<U, <U as TryFromVersioned<T>>::Error>

Performs the conversion.
§

impl<T, U> TryIntoWithBlockHashLookup<U> for T
where U: TryFromWithBlockHashLookup<T>,

§

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

§

fn try_into_with_block_hash_lookup<F>( self, block_hash_lookup: F, network: Network, ) -> Result<U, <T as TryIntoWithBlockHashLookup<U>>::Error>
where F: Fn(&BlockHash) -> Option<u32>,

Converts self into T, using a block hash lookup function.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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