Skip to main content

BatchTransition

Enum BatchTransition 

Source
pub enum BatchTransition {
    V0(BatchTransitionV0),
    V1(BatchTransitionV1),
}

Variants§

Implementations§

Source§

impl BatchTransition

Source

pub fn requests_gas_sponsorship(&self) -> bool

Whether every transition of the batch asks the contract owner to pay its gas: each one is a document transition whose token payment info requests ContractOwner or PreferContractOwner. Only the data contracts can say whether that request is honoured, so this is what the minimum balance pre-check can know before they are loaded.

Source

pub fn validate_estimated_principal( &self, identity_known_balance: Credits, ) -> Result<SimpleConsensusValidationResult, ProtocolError>

The minimum balance pre-check of a batch that asks the contract owner to pay its gas: the document owner still funds the principal (document purchases and the collateral of contested creates) from their own balance, but not the per-transition fee minimum, which fee validation then judges against whoever ends up paying.

Source

pub fn validate_estimated_principal_with_shielded_compute( &self, identity_known_balance: Credits, platform_version: &PlatformVersion, ) -> Result<SimpleConsensusValidationResult, ProtocolError>

The principal a sponsored batch’s signer funds, plus the compute fee of the Orchard bundles it carries.

A sponsor pays the gas of a batch that executes, but a sub-transition its state validation replaces with a nonce bump takes the sponsor off the whole batch, and the signer pays for the work that ran on it. So the signer has to hold what the verification costs even while a sponsor is expected to pay it: whichever way the batch ends, somebody can be charged for the proofs already verified. A batch carrying no bundle adds nothing and is asked for its principal alone, as before.

Source

pub fn shielded_bundle_compute_fee( &self, platform_version: &PlatformVersion, ) -> Result<Credits, ProtocolError>

The shielded compute fee the batch’s Orchard bundles will be charged: one bundle verification plus the per-action work, summed over the sub-transitions that carry a bundle, each priced exactly as the transformer that builds it prices it.

A bundle is carried either by a token transition against a shielded pool or by a document whose token cost is paid out of the payment token’s pool.

Source

pub fn validate_estimated_fee_with_shielded_compute( &self, identity_known_balance: Credits, platform_version: &PlatformVersion, ) -> Result<SimpleConsensusValidationResult, ProtocolError>

The minimum balance pre-check of a batch, reserving the shielded compute fee of the bundles it carries on top of the flat per-sub-transition minimum.

The flat minimum is orders of magnitude below what one bundle costs, and reserving only that leaves the Halo 2 verification unfunded. A claim into a pool makes the gap exploitable: its claimable amount is only known against state, so its proof is skipped in check tx, and a signer holding only the flat minimum passes the mempool without any verification running. Every validator then runs it inside block validation, where the concurrency permit that guards admission does not apply, and the batch is refused unpaid — nothing charged, the identity contract nonce untouched — so the same bytes replay. Reserving the fee here refuses the batch before the proof work is done, and refuses nothing that could have been executed: every bundle-carrying sub-transition is charged this same fee as its action is built, before anything about it can fail, so a signer who cannot cover it is refused by fee validation in any case.

That last claim rests on a number, not on the structure. The floor asks for flat_minimum + compute_fee where fee validation asks for metered_fee + compute_fee, so the floor refuses somebody fee validation would not exactly when metered_fee < flat_minimum. A sub-transition carrying a bundle writes notes and nullifiers, whose metered storage alone prices it two orders of magnitude above the flat minimum, so no such batch exists. Anything that lets a bundle ride on a sub-transition cheaper than the flat minimum reopens that band; the same reasoning is recorded on SystemLimits::max_transitions_in_documents_batch, which is where the shape of a batch is decided.

The caller decides whether to ask for it. A batch that asks the contract owner to pay its gas is not asked, because the compute fee is gas.

Source§

impl BatchTransition

Source§

impl BatchTransition

Source

pub fn feature_version(&self) -> FeatureVersion

Source

pub fn verify_protocol_version( &self, protocol_version: u32, ) -> Result<bool, ProtocolError>

Trait Implementations§

Source§

impl<'__de, __Context> BorrowDecode<'__de, __Context> for BatchTransition

Source§

fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given BorrowDecode.
Source§

impl<'__de, __Context> BorrowDecodeUntrusted<'__de, __Context> for BatchTransition

Source§

fn borrow_decode_untrusted<__D: BorrowUntrustedDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Borrow-decode with explicit untrusted field dispatch and resource handling.
Source§

impl Clone for BatchTransition

Source§

fn clone(&self) -> BatchTransition

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 BatchTransition

Source§

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

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

impl<__Context> Decode<__Context> for BatchTransition

Source§

fn decode<__D: Decoder<Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given Decode.
Source§

impl<__Context> DecodeUntrusted<__Context> for BatchTransition

Source§

fn decode_untrusted<__D: UntrustedDecoder<Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Decode with explicit untrusted field dispatch and resource handling.
Source§

impl<'de> Deserialize<'de> for BatchTransition

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl DocumentsBatchTransitionAccessorsV0 for BatchTransition

Source§

fn transitions_iter(&self) -> Self::IterType<'_>

Iterator for BatchedTransitionRef items.

Source§

type IterType<'a> = DocumentBatchIterator<'a> where Self: 'a

Associated type for the iterator.
Source§

fn transitions_len(&self) -> usize

Source§

fn transitions_are_empty(&self) -> bool

Source§

fn first_transition(&self) -> Option<BatchedTransitionRef<'_>>

Source§

fn first_transition_mut(&mut self) -> Option<BatchedTransitionMutRef<'_>>

Source§

fn contains_document_transition(&self) -> bool

Source§

fn contains_token_transition(&self) -> bool

Source§

impl DocumentsBatchTransitionMethodsV0 for BatchTransition

Source§

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

Source§

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

Source§

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

Source§

fn set_identity_contract_nonce( &mut self, identity_contract_nonce: IdentityNonce, )

Source§

async fn new_document_creation_transition_from_document<S: Signer<IdentityPublicKey>>( document: Document, document_type: DocumentTypeRef<'_>, entropy: [u8; 32], identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, token_payment_info: Option<TokenPaymentInfo>, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Source§

async fn new_document_replacement_transition_from_document<S: Signer<IdentityPublicKey>>( document: Document, document_type: DocumentTypeRef<'_>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, token_payment_info: Option<TokenPaymentInfo>, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Source§

async fn new_document_transfer_transition_from_document<S: Signer<IdentityPublicKey>>( document: Document, document_type: DocumentTypeRef<'_>, recipient_owner_id: Identifier, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, token_payment_info: Option<TokenPaymentInfo>, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Source§

async fn new_document_deletion_transition_from_document<S: Signer<IdentityPublicKey>>( document: Document, document_type: DocumentTypeRef<'_>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, token_payment_info: Option<TokenPaymentInfo>, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Source§

async fn new_document_update_price_transition_from_document<S: Signer<IdentityPublicKey>>( document: Document, document_type: DocumentTypeRef<'_>, price: Credits, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, token_payment_info: Option<TokenPaymentInfo>, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Source§

async fn new_document_purchase_transition_from_document<S: Signer<IdentityPublicKey>>( document: Document, document_type: DocumentTypeRef<'_>, new_owner_id: Identifier, price: Credits, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, token_payment_info: Option<TokenPaymentInfo>, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Source§

fn combined_security_level_requirement( &self, get_data_contract_security_level_requirement: Option<impl Fn(Identifier, String) -> Result<SecurityLevel, ProtocolError>>, ) -> Result<Vec<SecurityLevel>, ProtocolError>

Source§

impl DocumentsBatchTransitionMethodsV1 for BatchTransition

Source§

async fn new_token_mint_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: TokenContractPosition, amount: TokenAmount, issued_to_identity_id: Option<Identifier>, public_note: Option<String>, using_group_info: Option<GroupStateTransitionInfoStatus>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition to mint new tokens. Read more
Source§

async fn new_token_burn_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, amount: TokenAmount, public_note: Option<String>, using_group_info: Option<GroupStateTransitionInfoStatus>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition to burn tokens, permanently removing them from circulation. Read more
Source§

async fn new_token_transfer_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, amount: TokenAmount, recipient_id: Identifier, public_note: Option<String>, shared_encrypted_note: Option<SharedEncryptedNote>, private_encrypted_note: Option<PrivateEncryptedNote>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition to transfer tokens from one identity to another. Read more
Source§

async fn new_token_shield_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, amount: TokenAmount, bundle: OrchardBundleParams, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition moving amount of a token from owner_id’s identity token balance into the token’s shielded pool. Read more
Source§

async fn new_token_mint_to_pool_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, amount: TokenAmount, bundle: OrchardBundleParams, public_note: Option<String>, using_group_info: Option<GroupStateTransitionInfoStatus>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition minting amount of a token straight into the token’s shielded pool as the notes in bundle. owner_id must be authorized to mint; it signs and pays the credits fee. A group action is set up exactly like a transparent mint. Read more
Source§

async fn new_token_burn_from_pool_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, amount: TokenAmount, bundle: OrchardBundleParams, public_note: Option<String>, using_group_info: Option<GroupStateTransitionInfoStatus>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition destroying amount of a token held in the token’s shielded pool by spending the notes in bundle. owner_id must be authorized to burn; it signs and pays the credits fee. Read more
Source§

async fn new_token_claim_to_pool_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, distribution_type: TokenDistributionType, claim_up_to: Option<u64>, bundle: OrchardBundleParams, public_note: Option<String>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition claiming a distribution straight into the token’s shielded pool as the notes in bundle. claim_up_to names the cycle-aligned moment a perpetual claim pays out to, so the bundle’s value can be predicted; owner_id signs and pays the credits fee.
Source§

async fn new_token_direct_purchase_to_pool_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, token_count: TokenAmount, total_agreed_price: Credits, bundle: OrchardBundleParams, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition buying token_count tokens for at most total_agreed_price credits and receiving them shielded as the notes in bundle. owner_id pays the price and the credits fee.
Source§

async fn new_token_unshield_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, amount: TokenAmount, recipient_id: Identifier, bundle: OrchardBundleParams, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition moving amount of a token out of the token’s shielded pool into recipient_id’s identity token balance. owner_id signs and pays the credits fee. Read more
Source§

async fn new_token_shielded_transfer_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, bundle: OrchardBundleParams, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition transferring a token inside its shielded pool. owner_id signs and pays the credits fee. Read more
Source§

async fn new_token_freeze_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, freeze_identity_id: Identifier, public_note: Option<String>, using_group_info: Option<GroupStateTransitionInfoStatus>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition to freeze tokens belonging to a specific identity. Read more
Source§

async fn new_token_unfreeze_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, unfreeze_identity_id: Identifier, public_note: Option<String>, using_group_info: Option<GroupStateTransitionInfoStatus>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition to unfreeze tokens previously frozen for a specific identity. Read more
Source§

async fn new_token_destroy_frozen_funds_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, frozen_identity_id: Identifier, public_note: Option<String>, using_group_info: Option<GroupStateTransitionInfoStatus>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition to destroy previously frozen tokens, removing them permanently from supply. Read more
Source§

async fn new_token_emergency_action_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, emergency_action: TokenEmergencyAction, public_note: Option<String>, using_group_info: Option<GroupStateTransitionInfoStatus>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition to execute an emergency action for a token. Read more
Source§

async fn new_token_config_update_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, update_token_configuration_item: TokenConfigurationChangeItem, public_note: Option<String>, using_group_info: Option<GroupStateTransitionInfoStatus>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition to update the configuration of a token. Read more
Source§

async fn new_token_claim_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, distribution_type: TokenDistributionType, public_note: Option<String>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition to claim tokens from a distribution source. Read more
Source§

async fn new_token_change_direct_purchase_price_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, token_pricing_schedule: Option<TokenPricingSchedule>, public_note: Option<String>, using_group_info: Option<GroupStateTransitionInfoStatus>, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition to set or update the price of a token for direct purchase. Read more
Source§

async fn new_token_direct_purchase_transition<S: Signer<IdentityPublicKey>>( token_id: Identifier, owner_id: Identifier, data_contract_id: Identifier, token_contract_position: u16, amount: TokenAmount, total_agreed_price: Credits, identity_public_key: &IdentityPublicKey, identity_contract_nonce: IdentityNonce, user_fee_increase: UserFeeIncrease, signer: &S, platform_version: &PlatformVersion, options: Option<StateTransitionCreationOptions>, ) -> Result<StateTransition, ProtocolError>

Creates a StateTransition to perform a direct purchase of tokens by a user. Read more
Source§

impl Encode for BatchTransition

Source§

fn encode<__E: Encoder>(&self, encoder: &mut __E) -> Result<(), EncodeError>

Encode a given type.
Source§

impl FeatureVersioned for BatchTransition

Source§

impl From<BatchTransition> for StateTransition

Source§

fn from(value: BatchTransition) -> Self

Converts to this type from the input type.
Source§

impl From<BatchTransitionV0> for BatchTransition

Source§

fn from(value: BatchTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<BatchTransitionV1> for BatchTransition

Source§

fn from(value: BatchTransitionV1) -> Self

Converts to this type from the input type.
Source§

impl JsonConvertible for BatchTransition

Available on crate features json-conversion and serde-conversion only.
Source§

impl OptionallyAssetLockProved for BatchTransition

Source§

fn optional_asset_lock_proof(&self) -> Option<&AssetLockProof>

Returns asset lock proof if state transition implements it
Source§

impl PartialEq for BatchTransition

Source§

fn eq(&self, other: &BatchTransition) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PlatformDeserializableTrusted for BatchTransition

Source§

fn deserialize_from_bytes_trusted_with_bytes_len( data: &[u8], ) -> Result<(Self, usize), ProtocolError>
where Self: Sized,

Decodes under the type’s configured byte budget, returning the value and the number of bytes it took.
Source§

fn deserialize_from_bytes_trusted_no_limit_with_bytes_len( data: &[u8], ) -> Result<(Self, usize), ProtocolError>
where Self: Sized,

Source§

fn deserialize_from_bytes_trusted(data: &[u8]) -> Result<Self, ProtocolError>
where Self: Sized,

Decodes under the type’s configured byte budget. Bytes left over after the value are ignored; Self::deserialize_from_bytes_trusted_exact refuses them.
Source§

fn deserialize_from_bytes_trusted_no_limit( data: &[u8], ) -> Result<Self, ProtocolError>
where Self: Sized,

Source§

fn deserialize_from_bytes_trusted_exact( data: &[u8], ) -> Result<Self, ProtocolError>
where Self: Sized,

Self::deserialize_from_bytes_trusted that also refuses bytes left over after the value.
Source§

impl PlatformDeserializableUntrusted for BatchTransition

Source§

fn deserialize_from_bytes_untrusted_with_bytes_len( data: &[u8], ) -> Result<(Self, usize), ProtocolError>
where Self: Sized,

Decodes under the type’s configured byte budget, returning the value and the number of bytes it took.
Source§

fn deserialize_from_bytes_untrusted_no_limit_with_bytes_len( data: &[u8], ) -> Result<(Self, usize), ProtocolError>
where Self: Sized,

Source§

fn deserialize_from_bytes_untrusted(data: &[u8]) -> Result<Self, ProtocolError>
where Self: Sized,

Decodes under the type’s configured byte budget. Bytes left over after the value are ignored; Self::deserialize_from_bytes_untrusted_exact refuses them.
Source§

fn deserialize_from_bytes_untrusted_no_limit( data: &[u8], ) -> Result<Self, ProtocolError>
where Self: Sized,

Source§

fn deserialize_from_bytes_untrusted_exact( data: &[u8], ) -> Result<Self, ProtocolError>
where Self: Sized,

Self::deserialize_from_bytes_untrusted that also refuses bytes left over after the value. Read more
Source§

impl PlatformSerializable for BatchTransition

Source§

type Error = ProtocolError

Source§

fn serialize_to_bytes(&self) -> Result<Vec<u8>, Self::Error>

Source§

fn serialize_consume_to_bytes(self) -> Result<Vec<u8>, Self::Error>

If the trait is not used just do a simple serialize
Source§

impl PlatformVersionEncode for BatchTransition

Source§

fn platform_encode<__E: Encoder>( &self, encoder: &mut __E, platform_version: &PlatformVersion, ) -> Result<(), EncodeError>

Encode a given type.
Source§

impl<'__de> PlatformVersionedBorrowDecode<'__de> for BatchTransition

Source§

fn platform_versioned_borrow_decode<__D: BorrowDecoder<'__de, Context = BincodeContext>>( decoder: &mut __D, platform_version: &PlatformVersion, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given BorrowDecode.
Source§

impl PlatformVersionedDecode for BatchTransition

Source§

fn platform_versioned_decode<__D: Decoder<Context = BincodeContext>>( decoder: &mut __D, platform_version: &PlatformVersion, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given Decode.
Source§

impl Serialize for BatchTransition

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Signable for BatchTransition

Source§

impl StateTransitionEstimatedFeeValidation for BatchTransition

Source§

fn calculate_min_required_fee( &self, platform_version: &PlatformVersion, ) -> Result<Credits, ProtocolError>

Calculates the estimated minimum fee required for this state transition. Read more
Source§

impl StateTransitionFieldTypes for BatchTransition

Source§

impl StateTransitionHasUserFeeIncrease for BatchTransition

Source§

fn user_fee_increase(&self) -> UserFeeIncrease

returns the fee multiplier
Source§

fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease)

set a fee multiplier
Source§

impl StateTransitionIdentityEstimatedFeeValidation for BatchTransition

Source§

fn validate_estimated_fee( &self, identity_known_balance: Credits, platform_version: &PlatformVersion, ) -> Result<SimpleConsensusValidationResult, ProtocolError>

Validates that sufficient identity balance is available to cover the estimated fee. Read more
Source§

impl StateTransitionIdentitySigned for BatchTransition

Source§

fn signature_public_key_id(&self) -> KeyID

Source§

fn set_signature_public_key_id(&mut self, key_id: KeyID)

Source§

fn security_level_requirement(&self, purpose: Purpose) -> Vec<SecurityLevel>

Returns minimal key security level that can be used to sign this ST. Override this method if the ST requires a different security level.
Source§

fn purpose_requirement(&self) -> Vec<Purpose>

The purpose requirement for the signing key The default is authentication However for Withdrawals and Fund Transfers the requirement is TRANSFER
Source§

fn verify_public_key_level_and_purpose( &self, public_key: &IdentityPublicKey, options: StateTransitionSigningOptions, ) -> Result<(), ProtocolError>

Verifies that the supplied public key has the correct security level and purpose to sign the state transition This should only be used for authentication
Source§

fn verify_public_key_is_enabled( &self, public_key: &IdentityPublicKey, ) -> Result<(), ProtocolError>

Source§

impl StateTransitionLike for BatchTransition

Source§

fn modified_data_ids(&self) -> Vec<Identifier>

Returns ID of the created contract

Source§

fn state_transition_type(&self) -> StateTransitionType

returns the type of State Transition

Source§

fn state_transition_protocol_version(&self) -> FeatureVersion

returns the protocol version
Source§

fn unique_identifiers(&self) -> Vec<String>

unique identifiers for the state transition This is often only one String except in the case of a documents batch state transition
Source§

fn is_document_state_transition(&self) -> bool

returns true if state transition is a document state transition
Source§

fn is_data_contract_state_transition(&self) -> bool

returns true if state transition is a data contract state transition
Source§

fn is_identity_state_transition(&self) -> bool

return true if state transition is an identity state transition
Source§

fn is_voting_state_transition(&self) -> bool

return true if state transition is a voting state transition
Source§

impl StateTransitionOwned for BatchTransition

Source§

fn owner_id(&self) -> Identifier

Get owner ID
Source§

impl StateTransitionSingleSigned for BatchTransition

Source§

fn signature(&self) -> &BinaryData

returns the signature as a byte-array

Source§

fn set_signature(&mut self, signature: BinaryData)

set a new signature

Source§

fn set_signature_bytes(&mut self, signature: Vec<u8>)

sets the signature bytes
Source§

impl StructuralPartialEq for BatchTransition

Source§

impl ValueConvertible for BatchTransition

Available on crate features serde-conversion and value-conversion only.
Source§

fn to_object(&self) -> Result<Value, ProtocolError>
where Self: Sized,

Source§

fn into_object(self) -> Result<Value, ProtocolError>
where Self: Sized,

Source§

fn from_object(value: Value) -> Result<Self, ProtocolError>
where Self: Sized,

Source§

fn from_object_ref(value: &Value) -> Result<Self, ProtocolError>
where Self: Sized,

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<'de, T> DefaultBorrowDecode<'de> for T
where T: BorrowDecode<'de, ()>,

§

fn borrow_decode<D>(decoder: &mut D) -> Result<Self, DecodeError>
where D: BorrowDecoder<'de, Context = ()>, Self: Sized,

§

impl<T> DefaultDecode for T
where T: Decode<()>,

§

fn decode<D>(decoder: &mut D) -> Result<Self, DecodeError>
where D: Decoder<Context = ()>, Self: Sized,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

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

§

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

§

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