pub enum StateTransition {
Show 20 variants
DataContractCreate(DataContractCreateTransition),
DataContractUpdate(DataContractUpdateTransition),
Batch(BatchTransition),
IdentityCreate(IdentityCreateTransition),
IdentityTopUp(IdentityTopUpTransition),
IdentityCreditWithdrawal(IdentityCreditWithdrawalTransition),
IdentityUpdate(IdentityUpdateTransition),
IdentityCreditTransfer(IdentityCreditTransferTransition),
MasternodeVote(MasternodeVoteTransition),
IdentityCreditTransferToAddresses(IdentityCreditTransferToAddressesTransition),
IdentityCreateFromAddresses(IdentityCreateFromAddressesTransition),
IdentityTopUpFromAddresses(IdentityTopUpFromAddressesTransition),
AddressFundsTransfer(AddressFundsTransferTransition),
AddressFundingFromAssetLock(AddressFundingFromAssetLockTransition),
AddressCreditWithdrawal(AddressCreditWithdrawalTransition),
Shield(ShieldTransition),
ShieldedTransfer(ShieldedTransferTransition),
Unshield(UnshieldTransition),
ShieldFromAssetLock(ShieldFromAssetLockTransition),
ShieldedWithdrawal(ShieldedWithdrawalTransition),
}Variants§
DataContractCreate(DataContractCreateTransition)
DataContractUpdate(DataContractUpdateTransition)
Batch(BatchTransition)
IdentityCreate(IdentityCreateTransition)
IdentityTopUp(IdentityTopUpTransition)
IdentityCreditWithdrawal(IdentityCreditWithdrawalTransition)
IdentityUpdate(IdentityUpdateTransition)
IdentityCreditTransfer(IdentityCreditTransferTransition)
MasternodeVote(MasternodeVoteTransition)
IdentityCreditTransferToAddresses(IdentityCreditTransferToAddressesTransition)
IdentityCreateFromAddresses(IdentityCreateFromAddressesTransition)
IdentityTopUpFromAddresses(IdentityTopUpFromAddressesTransition)
AddressFundsTransfer(AddressFundsTransferTransition)
AddressFundingFromAssetLock(AddressFundingFromAssetLockTransition)
AddressCreditWithdrawal(AddressCreditWithdrawalTransition)
Shield(ShieldTransition)
ShieldedTransfer(ShieldedTransferTransition)
Unshield(UnshieldTransition)
ShieldFromAssetLock(ShieldFromAssetLockTransition)
ShieldedWithdrawal(ShieldedWithdrawalTransition)
Implementations§
Source§impl StateTransition
impl StateTransition
pub fn deserialize_many( raw_state_transitions: &[Vec<u8>], ) -> Result<Vec<Self>, ProtocolError>
Source§impl StateTransition
impl StateTransition
pub fn deserialize_from_bytes_in_version( bytes: &[u8], platform_version: &PlatformVersion, ) -> Result<Self, ProtocolError>
pub fn active_version_range(&self) -> RangeInclusive<ProtocolVersion>
pub fn is_identity_signed(&self) -> bool
pub fn required_asset_lock_balance_for_processing_start( &self, platform_version: &PlatformVersion, ) -> Result<Credits, ProtocolError>
Sourcepub fn required_number_of_private_keys(&self) -> u16
pub fn required_number_of_private_keys(&self) -> u16
returns the number of private keys
Sourcepub fn user_fee_increase(&self) -> UserFeeIncrease
pub fn user_fee_increase(&self) -> UserFeeIncrease
returns the fee_increase additional percentage multiplier, it affects only processing costs
Sourcepub fn transaction_id(&self) -> Result<[u8; 32], ProtocolError>
pub fn transaction_id(&self) -> Result<[u8; 32], ProtocolError>
The transaction id is a single hash of the data with the signature
Sourcepub fn signature_public_key_id(&self) -> Option<KeyID>
pub fn signature_public_key_id(&self) -> Option<KeyID>
returns the signature as a byte-array
Sourcepub fn security_level_requirement(
&self,
purpose: Purpose,
) -> Option<Vec<SecurityLevel>>
pub fn security_level_requirement( &self, purpose: Purpose, ) -> Option<Vec<SecurityLevel>>
returns the key security level requirement for the state transition
Sourcepub fn purpose_requirement(&self) -> Option<Vec<Purpose>>
pub fn purpose_requirement(&self) -> Option<Vec<Purpose>>
returns the key purpose requirement for the state transition
Sourcepub fn owner_id(&self) -> Option<Identifier>
pub fn owner_id(&self) -> Option<Identifier>
returns the signature as a byte-array
Sourcepub fn inputs(
&self,
) -> Option<&BTreeMap<PlatformAddress, (AddressNonce, Credits)>>
pub fn inputs( &self, ) -> Option<&BTreeMap<PlatformAddress, (AddressNonce, Credits)>>
returns the signature as a byte-array
Sourcepub fn state_transition_type(&self) -> StateTransitionType
pub fn state_transition_type(&self) -> StateTransitionType
returns the state transition type
Sourcepub fn unique_identifiers(&self) -> Vec<String>
pub fn unique_identifiers(&self) -> Vec<String>
returns the unique identifiers for the state transition
Sourcepub fn set_signature(&mut self, signature: BinaryData) -> bool
pub fn set_signature(&mut self, signature: BinaryData) -> bool
set a new signature
Sourcepub fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease)
pub fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease)
set fee multiplier
Sourcepub fn set_signature_public_key_id(&mut self, public_key_id: KeyID)
pub fn set_signature_public_key_id(&mut self, public_key_id: KeyID)
set a new signature
pub async fn sign_external<S: Signer<IdentityPublicKey>>( &mut self, identity_public_key: &IdentityPublicKey, signer: &S, get_data_contract_security_level_requirement: Option<impl Fn(Identifier, String) -> Result<SecurityLevel, ProtocolError>>, ) -> Result<(), ProtocolError>
pub async fn sign_external_with_options<S: Signer<IdentityPublicKey>>( &mut self, identity_public_key: &IdentityPublicKey, signer: &S, get_data_contract_security_level_requirement: Option<impl Fn(Identifier, String) -> Result<SecurityLevel, ProtocolError>>, options: StateTransitionSigningOptions, ) -> Result<(), ProtocolError>
pub fn sign( &mut self, identity_public_key: &IdentityPublicKey, private_key: &[u8], bls: &impl BlsModule, ) -> Result<(), ProtocolError>
pub fn sign_with_options( &mut self, identity_public_key: &IdentityPublicKey, private_key: &[u8], bls: &impl BlsModule, options: StateTransitionSigningOptions, ) -> Result<(), ProtocolError>
Sourcepub fn sign_by_private_key(
&mut self,
private_key: &[u8],
key_type: KeyType,
bls: &impl BlsModule,
) -> Result<(), ProtocolError>
pub fn sign_by_private_key( &mut self, private_key: &[u8], key_type: KeyType, bls: &impl BlsModule, ) -> Result<(), ProtocolError>
Signs data with the private key
Sourcepub async fn sign_with_core_signer<S: Signer>(
&mut self,
path: &DerivationPath,
signer: &S,
) -> Result<(), ProtocolError>
pub async fn sign_with_core_signer<S: Signer>( &mut self, path: &DerivationPath, signer: &S, ) -> Result<(), ProtocolError>
Sign self.signable_bytes() with an external Core-wallet signer and
store the resulting Core-ECDSA signature in the transition’s wrapper
signature field.
§Position in the signing-primitive family
This is a primitive in the same family as
Self::sign_by_private_key — it performs no validation of the
transition variant, the key, or the relationship between them. It is
the external-custody sibling of sign_by_private_key:
| Primitive | Key source | Validation |
|---|---|---|
Self::sign_by_private_key | raw &[u8] in host memory | none |
sign_with_core_signer | external signer (HSM / hardware wallet / secure enclave / remote signing service), key reached via BIP32 [DerivationPath] | none |
Both produce byte-identical wrapper signatures over the same
digest when given the same underlying private key (proven by
sign_with_signer_matches_sign_by_private_key_byte_for_byte in this
file’s tests). The only difference is where the key bytes live: in
host memory vs inside the signer’s trust boundary. The signer
performs the derive + sign + zeroise sequence atomically; this
function never sees raw key material, only a 32-byte digest and the
resulting signature.
§Scope (what the BIP32 path means)
The path parameter selects a key in the signer’s Core wallet
(BIP32-derived). For that path’s signature to be meaningful the
transition’s wrapper signature field must itself carry a Core-key
signature. Today that is exactly the four asset-lock-signed
variants — IdentityCreate, IdentityTopUp,
AddressFundingFromAssetLock, ShieldFromAssetLock — where the
wrapper signature is the asset-lock proof signed by the credit
output’s Core key.
For identity-signed variants (DataContractCreate, Batch,
IdentityCreditTransfer, etc.) the wrapper signature is an
identity-key signature paired with a signature_public_key_id,
and the right external-signer entry point is Self::sign_external
with a Signer<IdentityPublicKey>.
Calling sign_with_core_signer on such a variant compiles and
produces a structurally valid 65-byte signature, but the signature
is semantically meaningless — Platform validation will reject
the transition because the signature doesn’t match the expected
identity public key and signature_public_key_id isn’t set. The
same caveat applies to misusing sign_by_private_key, the sibling
primitive — both rely on the caller passing a key the wrapper
signature is meant to carry.
§Wire-format parity with sign_by_private_key
The byte layout of the stored signature mirrors
dashcore::signer::sign:
digest = double_sha256(self.signable_bytes()?)signer.sign_ecdsa(path, digest).await→ non-recoverable(secp256k1::ecdsa::Signature, secp256k1::PublicKey).- Recover the recovery id by trying all four candidates against the
returned public key (libsecp256k1 normalises both signing paths to
low-s form so the 64-byte
r||spayload is bit-identical). - Serialise as a 65-byte compact recoverable signature with the
compressedprefix convention used byCompactSignature— i.e.[recovery_id + 27 + 4, r (32) || s (32)].
§Errors
- Returns
ProtocolError::ExternalSignerErrorwrapping the signer’sDisplayerror when the underlying signer fails. - Returns
ProtocolError::ExternalSignerErrorif no recovery id matches the public key returned by the signer — this should be unreachable for a conformant signer (invariant violation by a non-conformant signer) but is surfaced rather than panicked on. - Returns
ProtocolError::Genericif the SHA-256 transform did not yield a 32-byte digest (defensive — should never happen). - Returns
ProtocolError::InvalidVerificationWrongNumberOfElementsifset_signaturerejects the result (matchessign_by_private_key).
pub fn verify_identity_signed_signature( &self, public_key: &IdentityPublicKey, bls: &impl BlsModule, ) -> Result<(), ProtocolError>
Trait Implementations§
Source§impl<'__de, __Context> BorrowDecode<'__de, __Context> for StateTransition
impl<'__de, __Context> BorrowDecode<'__de, __Context> for StateTransition
Source§fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>(
decoder: &mut __D,
) -> Result<Self, DecodeError>
fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>
Source§impl Clone for StateTransition
impl Clone for StateTransition
Source§fn clone(&self) -> StateTransition
fn clone(&self) -> StateTransition
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StateTransition
impl Debug for StateTransition
Source§impl<__Context> Decode<__Context> for StateTransition
impl<__Context> Decode<__Context> for StateTransition
Source§impl<'de> Deserialize<'de> for StateTransition
impl<'de> Deserialize<'de> for StateTransition
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Encode for StateTransition
impl Encode for StateTransition
Source§impl From<&DataContractCreateTransitionV0> for StateTransition
impl From<&DataContractCreateTransitionV0> for StateTransition
Source§fn from(value: &DataContractCreateTransitionV0) -> Self
fn from(value: &DataContractCreateTransitionV0) -> Self
Source§impl From<&DataContractUpdateTransitionV0> for StateTransition
impl From<&DataContractUpdateTransitionV0> for StateTransition
Source§fn from(value: &DataContractUpdateTransitionV0) -> Self
fn from(value: &DataContractUpdateTransitionV0) -> Self
Source§impl From<AddressCreditWithdrawalTransition> for StateTransition
impl From<AddressCreditWithdrawalTransition> for StateTransition
Source§fn from(value: AddressCreditWithdrawalTransition) -> Self
fn from(value: AddressCreditWithdrawalTransition) -> Self
Source§impl From<AddressCreditWithdrawalTransitionV0> for StateTransition
impl From<AddressCreditWithdrawalTransitionV0> for StateTransition
Source§fn from(value: AddressCreditWithdrawalTransitionV0) -> Self
fn from(value: AddressCreditWithdrawalTransitionV0) -> Self
Source§impl From<AddressFundingFromAssetLockTransition> for StateTransition
impl From<AddressFundingFromAssetLockTransition> for StateTransition
Source§fn from(value: AddressFundingFromAssetLockTransition) -> Self
fn from(value: AddressFundingFromAssetLockTransition) -> Self
Source§impl From<AddressFundingFromAssetLockTransitionV0> for StateTransition
impl From<AddressFundingFromAssetLockTransitionV0> for StateTransition
Source§fn from(value: AddressFundingFromAssetLockTransitionV0) -> Self
fn from(value: AddressFundingFromAssetLockTransitionV0) -> Self
Source§impl From<AddressFundsTransferTransition> for StateTransition
impl From<AddressFundsTransferTransition> for StateTransition
Source§fn from(value: AddressFundsTransferTransition) -> Self
fn from(value: AddressFundsTransferTransition) -> Self
Source§impl From<AddressFundsTransferTransitionV0> for StateTransition
impl From<AddressFundsTransferTransitionV0> for StateTransition
Source§fn from(value: AddressFundsTransferTransitionV0) -> Self
fn from(value: AddressFundsTransferTransitionV0) -> Self
Source§impl From<BatchTransition> for StateTransition
impl From<BatchTransition> for StateTransition
Source§fn from(value: BatchTransition) -> Self
fn from(value: BatchTransition) -> Self
Source§impl From<BatchTransitionV0> for StateTransition
impl From<BatchTransitionV0> for StateTransition
Source§fn from(value: BatchTransitionV0) -> Self
fn from(value: BatchTransitionV0) -> Self
Source§impl From<BatchTransitionV1> for StateTransition
impl From<BatchTransitionV1> for StateTransition
Source§fn from(value: BatchTransitionV1) -> Self
fn from(value: BatchTransitionV1) -> Self
Source§impl From<DataContractCreateTransition> for StateTransition
impl From<DataContractCreateTransition> for StateTransition
Source§fn from(value: DataContractCreateTransition) -> Self
fn from(value: DataContractCreateTransition) -> Self
Source§impl From<DataContractCreateTransitionV0> for StateTransition
impl From<DataContractCreateTransitionV0> for StateTransition
Source§fn from(value: DataContractCreateTransitionV0) -> Self
fn from(value: DataContractCreateTransitionV0) -> Self
Source§impl From<DataContractUpdateTransition> for StateTransition
impl From<DataContractUpdateTransition> for StateTransition
Source§fn from(value: DataContractUpdateTransition) -> Self
fn from(value: DataContractUpdateTransition) -> Self
Source§impl From<DataContractUpdateTransitionV0> for StateTransition
impl From<DataContractUpdateTransitionV0> for StateTransition
Source§fn from(value: DataContractUpdateTransitionV0) -> Self
fn from(value: DataContractUpdateTransitionV0) -> Self
Source§impl From<IdentityCreateFromAddressesTransition> for StateTransition
impl From<IdentityCreateFromAddressesTransition> for StateTransition
Source§fn from(value: IdentityCreateFromAddressesTransition) -> Self
fn from(value: IdentityCreateFromAddressesTransition) -> Self
Source§impl From<IdentityCreateFromAddressesTransitionV0> for StateTransition
impl From<IdentityCreateFromAddressesTransitionV0> for StateTransition
Source§fn from(value: IdentityCreateFromAddressesTransitionV0) -> Self
fn from(value: IdentityCreateFromAddressesTransitionV0) -> Self
Source§impl From<IdentityCreateTransition> for StateTransition
impl From<IdentityCreateTransition> for StateTransition
Source§fn from(value: IdentityCreateTransition) -> Self
fn from(value: IdentityCreateTransition) -> Self
Source§impl From<IdentityCreateTransitionV0> for StateTransition
impl From<IdentityCreateTransitionV0> for StateTransition
Source§fn from(value: IdentityCreateTransitionV0) -> Self
fn from(value: IdentityCreateTransitionV0) -> Self
Source§impl From<IdentityCreditTransferToAddressesTransition> for StateTransition
impl From<IdentityCreditTransferToAddressesTransition> for StateTransition
Source§fn from(value: IdentityCreditTransferToAddressesTransition) -> Self
fn from(value: IdentityCreditTransferToAddressesTransition) -> Self
Source§impl From<IdentityCreditTransferToAddressesTransitionV0> for StateTransition
impl From<IdentityCreditTransferToAddressesTransitionV0> for StateTransition
Source§fn from(value: IdentityCreditTransferToAddressesTransitionV0) -> Self
fn from(value: IdentityCreditTransferToAddressesTransitionV0) -> Self
Source§impl From<IdentityCreditTransferTransition> for StateTransition
impl From<IdentityCreditTransferTransition> for StateTransition
Source§fn from(value: IdentityCreditTransferTransition) -> Self
fn from(value: IdentityCreditTransferTransition) -> Self
Source§impl From<IdentityCreditTransferTransitionV0> for StateTransition
impl From<IdentityCreditTransferTransitionV0> for StateTransition
Source§fn from(value: IdentityCreditTransferTransitionV0) -> Self
fn from(value: IdentityCreditTransferTransitionV0) -> Self
Source§impl From<IdentityCreditWithdrawalTransition> for StateTransition
impl From<IdentityCreditWithdrawalTransition> for StateTransition
Source§fn from(value: IdentityCreditWithdrawalTransition) -> Self
fn from(value: IdentityCreditWithdrawalTransition) -> Self
Source§impl From<IdentityCreditWithdrawalTransitionV0> for StateTransition
impl From<IdentityCreditWithdrawalTransitionV0> for StateTransition
Source§fn from(value: IdentityCreditWithdrawalTransitionV0) -> Self
fn from(value: IdentityCreditWithdrawalTransitionV0) -> Self
Source§impl From<IdentityCreditWithdrawalTransitionV1> for StateTransition
impl From<IdentityCreditWithdrawalTransitionV1> for StateTransition
Source§fn from(value: IdentityCreditWithdrawalTransitionV1) -> Self
fn from(value: IdentityCreditWithdrawalTransitionV1) -> Self
Source§impl From<IdentityTopUpFromAddressesTransition> for StateTransition
impl From<IdentityTopUpFromAddressesTransition> for StateTransition
Source§fn from(value: IdentityTopUpFromAddressesTransition) -> Self
fn from(value: IdentityTopUpFromAddressesTransition) -> Self
Source§impl From<IdentityTopUpFromAddressesTransitionV0> for StateTransition
impl From<IdentityTopUpFromAddressesTransitionV0> for StateTransition
Source§fn from(value: IdentityTopUpFromAddressesTransitionV0) -> Self
fn from(value: IdentityTopUpFromAddressesTransitionV0) -> Self
Source§impl From<IdentityTopUpTransition> for StateTransition
impl From<IdentityTopUpTransition> for StateTransition
Source§fn from(value: IdentityTopUpTransition) -> Self
fn from(value: IdentityTopUpTransition) -> Self
Source§impl From<IdentityTopUpTransitionV0> for StateTransition
impl From<IdentityTopUpTransitionV0> for StateTransition
Source§fn from(value: IdentityTopUpTransitionV0) -> Self
fn from(value: IdentityTopUpTransitionV0) -> Self
Source§impl From<IdentityUpdateTransition> for StateTransition
impl From<IdentityUpdateTransition> for StateTransition
Source§fn from(value: IdentityUpdateTransition) -> Self
fn from(value: IdentityUpdateTransition) -> Self
Source§impl From<IdentityUpdateTransitionV0> for StateTransition
impl From<IdentityUpdateTransitionV0> for StateTransition
Source§fn from(value: IdentityUpdateTransitionV0) -> Self
fn from(value: IdentityUpdateTransitionV0) -> Self
Source§impl From<MasternodeVoteTransition> for StateTransition
impl From<MasternodeVoteTransition> for StateTransition
Source§fn from(value: MasternodeVoteTransition) -> Self
fn from(value: MasternodeVoteTransition) -> Self
Source§impl From<MasternodeVoteTransitionV0> for StateTransition
impl From<MasternodeVoteTransitionV0> for StateTransition
Source§fn from(value: MasternodeVoteTransitionV0) -> Self
fn from(value: MasternodeVoteTransitionV0) -> Self
Source§impl From<ShieldFromAssetLockTransition> for StateTransition
impl From<ShieldFromAssetLockTransition> for StateTransition
Source§fn from(value: ShieldFromAssetLockTransition) -> Self
fn from(value: ShieldFromAssetLockTransition) -> Self
Source§impl From<ShieldFromAssetLockTransitionV0> for StateTransition
impl From<ShieldFromAssetLockTransitionV0> for StateTransition
Source§fn from(value: ShieldFromAssetLockTransitionV0) -> Self
fn from(value: ShieldFromAssetLockTransitionV0) -> Self
Source§impl From<ShieldTransition> for StateTransition
impl From<ShieldTransition> for StateTransition
Source§fn from(value: ShieldTransition) -> Self
fn from(value: ShieldTransition) -> Self
Source§impl From<ShieldTransitionV0> for StateTransition
impl From<ShieldTransitionV0> for StateTransition
Source§fn from(value: ShieldTransitionV0) -> Self
fn from(value: ShieldTransitionV0) -> Self
Source§impl From<ShieldedTransferTransition> for StateTransition
impl From<ShieldedTransferTransition> for StateTransition
Source§fn from(value: ShieldedTransferTransition) -> Self
fn from(value: ShieldedTransferTransition) -> Self
Source§impl From<ShieldedTransferTransitionV0> for StateTransition
impl From<ShieldedTransferTransitionV0> for StateTransition
Source§fn from(value: ShieldedTransferTransitionV0) -> Self
fn from(value: ShieldedTransferTransitionV0) -> Self
Source§impl From<ShieldedWithdrawalTransition> for StateTransition
impl From<ShieldedWithdrawalTransition> for StateTransition
Source§fn from(value: ShieldedWithdrawalTransition) -> Self
fn from(value: ShieldedWithdrawalTransition) -> Self
Source§impl From<ShieldedWithdrawalTransitionV0> for StateTransition
impl From<ShieldedWithdrawalTransitionV0> for StateTransition
Source§fn from(value: ShieldedWithdrawalTransitionV0) -> Self
fn from(value: ShieldedWithdrawalTransitionV0) -> Self
Source§impl From<UnshieldTransition> for StateTransition
impl From<UnshieldTransition> for StateTransition
Source§fn from(value: UnshieldTransition) -> Self
fn from(value: UnshieldTransition) -> Self
Source§impl From<UnshieldTransitionV0> for StateTransition
impl From<UnshieldTransitionV0> for StateTransition
Source§fn from(value: UnshieldTransitionV0) -> Self
fn from(value: UnshieldTransitionV0) -> Self
Source§impl OptionallyAssetLockProved for StateTransition
impl OptionallyAssetLockProved for StateTransition
Source§fn optional_asset_lock_proof(&self) -> Option<&AssetLockProof>
fn optional_asset_lock_proof(&self) -> Option<&AssetLockProof>
Source§impl PartialEq for StateTransition
impl PartialEq for StateTransition
Source§impl PlatformDeserializable for StateTransition
impl PlatformDeserializable for StateTransition
fn deserialize_from_bytes(data: &[u8]) -> Result<Self, ProtocolError>where
Self: Sized,
fn deserialize_from_bytes_no_limit(data: &[u8]) -> Result<Self, ProtocolError>where
Self: Sized,
Source§impl PlatformVersionEncode for StateTransition
impl PlatformVersionEncode for StateTransition
Source§fn platform_encode<__E: Encoder>(
&self,
encoder: &mut __E,
platform_version: &PlatformVersion,
) -> Result<(), EncodeError>
fn platform_encode<__E: Encoder>( &self, encoder: &mut __E, platform_version: &PlatformVersion, ) -> Result<(), EncodeError>
Source§impl<'__de> PlatformVersionedBorrowDecode<'__de> for StateTransition
impl<'__de> PlatformVersionedBorrowDecode<'__de> for StateTransition
Source§fn platform_versioned_borrow_decode<__D: BorrowDecoder<'__de, Context = BincodeContext>>(
decoder: &mut __D,
platform_version: &PlatformVersion,
) -> Result<Self, DecodeError>
fn platform_versioned_borrow_decode<__D: BorrowDecoder<'__de, Context = BincodeContext>>( decoder: &mut __D, platform_version: &PlatformVersion, ) -> Result<Self, DecodeError>
Source§impl PlatformVersionedDecode for StateTransition
impl PlatformVersionedDecode for StateTransition
Source§fn platform_versioned_decode<__D: Decoder<Context = BincodeContext>>(
decoder: &mut __D,
platform_version: &PlatformVersion,
) -> Result<Self, DecodeError>
fn platform_versioned_decode<__D: Decoder<Context = BincodeContext>>( decoder: &mut __D, platform_version: &PlatformVersion, ) -> Result<Self, DecodeError>
Source§impl Serialize for StateTransition
impl Serialize for StateTransition
Source§impl Signable for StateTransition
impl Signable for StateTransition
fn signable_bytes(&self) -> Result<Vec<u8>, ProtocolError>
Source§impl StateTransitionStructureValidation for StateTransition
Available on crate feature state-transition-validation only.
impl StateTransitionStructureValidation for StateTransition
state-transition-validation only.Source§fn validate_structure(
&self,
platform_version: &PlatformVersion,
) -> SimpleConsensusValidationResult
fn validate_structure( &self, platform_version: &PlatformVersion, ) -> SimpleConsensusValidationResult
Source§impl TryFromPlatformVersioned<CreatedDataContract> for StateTransition
impl TryFromPlatformVersioned<CreatedDataContract> for StateTransition
Source§type Error = ProtocolError
type Error = ProtocolError
Source§fn try_from_platform_versioned(
value: CreatedDataContract,
platform_version: &PlatformVersion,
) -> Result<Self, Self::Error>
fn try_from_platform_versioned( value: CreatedDataContract, platform_version: &PlatformVersion, ) -> Result<Self, Self::Error>
impl StructuralPartialEq for StateTransition
Auto Trait Implementations§
impl Freeze for StateTransition
impl RefUnwindSafe for StateTransition
impl Send for StateTransition
impl Sync for StateTransition
impl Unpin for StateTransition
impl UnsafeUnpin for StateTransition
impl UnwindSafe for StateTransition
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<'de, T> DefaultBorrowDecode<'de> for Twhere
T: BorrowDecode<'de, ()>,
impl<'de, T> DefaultBorrowDecode<'de> for Twhere
T: BorrowDecode<'de, ()>,
fn borrow_decode<D>(decoder: &mut D) -> Result<Self, DecodeError>
§impl<T> DefaultDecode for T
impl<T> DefaultDecode for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T, U> IntoOnNetwork<U> for Twhere
U: FromOnNetwork<T>,
impl<T, U> IntoOnNetwork<U> for Twhere
U: FromOnNetwork<T>,
§fn into_on_network(self, network: Network) -> U
fn into_on_network(self, network: Network) -> U
Calls U::from_on_network(self).
§impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
§fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U
fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
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) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
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
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
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
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
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
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.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
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.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
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.