pub struct ShieldTransitionV0 {
pub inputs: BTreeMap<PlatformAddress, (AddressNonce, Credits)>,
pub actions: Vec<SerializedAction>,
pub amount: u64,
pub anchor: [u8; 32],
pub proof: Vec<u8>,
pub binding_signature: [u8; 64],
pub fee_strategy: AddressFundsFeeStrategy,
pub user_fee_increase: UserFeeIncrease,
pub input_witnesses: Vec<AddressWitness>,
}Fields§
§inputs: BTreeMap<PlatformAddress, (AddressNonce, Credits)>Address inputs funding the shield (address -> nonce + max contribution). The total across all inputs must cover |value_balance| + fees. Excess credits remain in the source addresses.
actions: Vec<SerializedAction>Orchard actions (spend-output pairs)
amount: u64Amount of credits being shielded (entering the shielded pool).
anchor: [u8; 32]Sinsemilla root of the note commitment tree (Orchard Anchor)
proof: Vec<u8>Halo2 proof bytes
binding_signature: [u8; 64]RedPallas binding signature
fee_strategy: AddressFundsFeeStrategyFee payment strategy
user_fee_increase: UserFeeIncreaseFee multiplier
input_witnesses: Vec<AddressWitness>Address witness signatures (excluded from sig hash)
Trait Implementations§
Source§impl<'__de, __Context> BorrowDecode<'__de, __Context> for ShieldTransitionV0
impl<'__de, __Context> BorrowDecode<'__de, __Context> for ShieldTransitionV0
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>
Attempt to decode this type with the given BorrowDecode.
Source§impl Clone for ShieldTransitionV0
impl Clone for ShieldTransitionV0
Source§fn clone(&self) -> ShieldTransitionV0
fn clone(&self) -> ShieldTransitionV0
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ShieldTransitionV0
impl Debug for ShieldTransitionV0
Source§impl<__Context> Decode<__Context> for ShieldTransitionV0
impl<__Context> Decode<__Context> for ShieldTransitionV0
Source§impl<'de> Deserialize<'de> for ShieldTransitionV0
impl<'de> Deserialize<'de> for ShieldTransitionV0
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Encode for ShieldTransitionV0
impl Encode for ShieldTransitionV0
Source§impl FeatureVersioned for ShieldTransitionV0
impl FeatureVersioned for ShieldTransitionV0
fn feature_version(&self) -> FeatureVersion
Source§impl<'a> From<&'a ShieldTransitionV0> for ShieldTransitionV0Signable<'a>
impl<'a> From<&'a ShieldTransitionV0> for ShieldTransitionV0Signable<'a>
Source§fn from(original: &'a ShieldTransitionV0) -> Self
fn from(original: &'a ShieldTransitionV0) -> Self
Converts to this type from the input type.
Source§impl From<ShieldTransitionV0> for ShieldTransition
impl From<ShieldTransitionV0> for ShieldTransition
Source§fn from(value: ShieldTransitionV0) -> Self
fn from(value: ShieldTransitionV0) -> Self
Converts to this type from the input type.
Source§impl From<ShieldTransitionV0> for StateTransition
impl From<ShieldTransitionV0> for StateTransition
Source§fn from(value: ShieldTransitionV0) -> Self
fn from(value: ShieldTransitionV0) -> Self
Converts to this type from the input type.
Source§impl PartialEq for ShieldTransitionV0
impl PartialEq for ShieldTransitionV0
Source§impl PlatformDeserializable for ShieldTransitionV0
impl PlatformDeserializable for ShieldTransitionV0
fn deserialize_from_bytes(bytes: &[u8]) -> Result<Self, ProtocolError>
fn deserialize_from_bytes_no_limit(bytes: &[u8]) -> Result<Self, ProtocolError>
Source§impl PlatformVersionEncode for ShieldTransitionV0
impl PlatformVersionEncode for ShieldTransitionV0
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>
Encode a given type.
Source§impl<'__de> PlatformVersionedBorrowDecode<'__de> for ShieldTransitionV0
impl<'__de> PlatformVersionedBorrowDecode<'__de> for ShieldTransitionV0
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>
Attempt to decode this type with the given BorrowDecode.
Source§impl PlatformVersionedDecode for ShieldTransitionV0
impl PlatformVersionedDecode for ShieldTransitionV0
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>
Attempt to decode this type with the given Decode.
Source§impl Serialize for ShieldTransitionV0
impl Serialize for ShieldTransitionV0
Source§impl ShieldTransitionMethodsV0 for ShieldTransitionV0
impl ShieldTransitionMethodsV0 for ShieldTransitionV0
fn try_from_bundle_with_signer<S: Signer<PlatformAddress>>( inputs: BTreeMap<PlatformAddress, (AddressNonce, Credits)>, actions: Vec<SerializedAction>, amount: u64, anchor: [u8; 32], proof: Vec<u8>, binding_signature: [u8; 64], fee_strategy: AddressFundsFeeStrategy, signer: &S, user_fee_increase: UserFeeIncrease, _platform_version: &PlatformVersion, ) -> Result<StateTransition, ProtocolError>
Source§fn get_type() -> StateTransitionType
fn get_type() -> StateTransitionType
Get State Transition Type
Source§impl Signable for ShieldTransitionV0
impl Signable for ShieldTransitionV0
fn signable_bytes(&self) -> Result<Vec<u8>, ProtocolError>
Source§impl StateTransitionFieldTypes for ShieldTransitionV0
impl StateTransitionFieldTypes for ShieldTransitionV0
fn signature_property_paths() -> Vec<&'static str>
fn identifiers_property_paths() -> Vec<&'static str>
fn binary_property_paths() -> Vec<&'static str>
Source§impl StateTransitionHasUserFeeIncrease for ShieldTransitionV0
impl StateTransitionHasUserFeeIncrease for ShieldTransitionV0
Source§fn user_fee_increase(&self) -> UserFeeIncrease
fn user_fee_increase(&self) -> UserFeeIncrease
returns the fee multiplier
Source§fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease)
fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease)
set a fee multiplier
Source§impl StateTransitionLike for ShieldTransitionV0
impl StateTransitionLike for ShieldTransitionV0
Source§fn state_transition_type(&self) -> StateTransitionType
fn state_transition_type(&self) -> StateTransitionType
returns the type of State Transition
Source§fn modified_data_ids(&self) -> Vec<Identifier>
fn modified_data_ids(&self) -> Vec<Identifier>
Returns IDs of modified data (none for shielded transitions)
Source§fn unique_identifiers(&self) -> Vec<String>
fn unique_identifiers(&self) -> Vec<String>
State transitions with the same inputs should not be allowed to overlap
Source§fn state_transition_protocol_version(&self) -> FeatureVersion
fn state_transition_protocol_version(&self) -> FeatureVersion
returns the protocol version
Source§fn is_document_state_transition(&self) -> bool
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
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
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
fn is_voting_state_transition(&self) -> bool
return true if state transition is a voting state transition
Source§impl StateTransitionStructureValidation for ShieldTransitionV0
impl StateTransitionStructureValidation for ShieldTransitionV0
Source§fn validate_structure(
&self,
platform_version: &PlatformVersion,
) -> SimpleConsensusValidationResult
fn validate_structure( &self, platform_version: &PlatformVersion, ) -> SimpleConsensusValidationResult
Validates the structure of the state transition
Source§impl StateTransitionWitnessSigned for ShieldTransitionV0
impl StateTransitionWitnessSigned for ShieldTransitionV0
Source§fn inputs(&self) -> &BTreeMap<PlatformAddress, (AddressNonce, Credits)>
fn inputs(&self) -> &BTreeMap<PlatformAddress, (AddressNonce, Credits)>
Get inputs
Source§fn inputs_mut(
&mut self,
) -> &mut BTreeMap<PlatformAddress, (AddressNonce, Credits)>
fn inputs_mut( &mut self, ) -> &mut BTreeMap<PlatformAddress, (AddressNonce, Credits)>
Get inputs as a mutable map
Source§fn set_inputs(
&mut self,
inputs: BTreeMap<PlatformAddress, (AddressNonce, Credits)>,
)
fn set_inputs( &mut self, inputs: BTreeMap<PlatformAddress, (AddressNonce, Credits)>, )
Set inputs
Source§fn witnesses(&self) -> &Vec<AddressWitness>
fn witnesses(&self) -> &Vec<AddressWitness>
returns the witnesses as an array
Source§fn set_witnesses(&mut self, witnesses: Vec<AddressWitness>)
fn set_witnesses(&mut self, witnesses: Vec<AddressWitness>)
set new witnesses
impl StructuralPartialEq for ShieldTransitionV0
Auto Trait Implementations§
impl Freeze for ShieldTransitionV0
impl RefUnwindSafe for ShieldTransitionV0
impl Send for ShieldTransitionV0
impl Sync for ShieldTransitionV0
impl Unpin for ShieldTransitionV0
impl UnwindSafe for ShieldTransitionV0
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
Mutably borrows from an owned value. Read more
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<T> CostsExt for T
impl<T> CostsExt for T
§fn wrap_with_cost(self, cost: OperationCost) -> CostContext<Self>where
Self: Sized,
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,
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 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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Formats each item in a sequence. Read more
§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>
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 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>
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 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
Performs the conversion.
§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,
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) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
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) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
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
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
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
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
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
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
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
Immutable access to the
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
Mutable access to the
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
Immutable access to the
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
Mutable access to the
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
Immutable access to the
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
Mutable access to the
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
Calls
.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
Calls
.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
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
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
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
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
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
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
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
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T, U> TryIntoPlatformVersioned<U> for Twhere
U: TryFromPlatformVersioned<T>,
impl<T, U> TryIntoPlatformVersioned<U> for Twhere
U: TryFromPlatformVersioned<T>,
§type Error = <U as TryFromPlatformVersioned<T>>::Error
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>
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 Twhere
U: TryFromVersioned<T>,
impl<T, U> TryIntoVersioned<U> for Twhere
U: TryFromVersioned<T>,
§type Error = <U as TryFromVersioned<T>>::Error
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>
fn try_into_versioned( self, grove_version: &GroveVersion, ) -> Result<U, <U as TryFromVersioned<T>>::Error>
Performs the conversion.