pub enum ShieldTransition {
V0(ShieldTransitionV0),
}Variants§
Implementations§
Source§impl ShieldTransition
impl ShieldTransition
pub fn feature_version(&self) -> FeatureVersion
pub fn verify_protocol_version( &self, protocol_version: u32, ) -> Result<bool, ProtocolError>
Trait Implementations§
Source§impl<'__de, __Context> BorrowDecode<'__de, __Context> for ShieldTransition
impl<'__de, __Context> BorrowDecode<'__de, __Context> for ShieldTransition
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 ShieldTransition
impl Clone for ShieldTransition
Source§fn clone(&self) -> ShieldTransition
fn clone(&self) -> ShieldTransition
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ShieldTransition
impl Debug for ShieldTransition
Source§impl<__Context> Decode<__Context> for ShieldTransition
impl<__Context> Decode<__Context> for ShieldTransition
Source§impl<'de> Deserialize<'de> for ShieldTransition
impl<'de> Deserialize<'de> for ShieldTransition
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 ShieldTransition
impl Encode for ShieldTransition
Source§impl FeatureVersioned for ShieldTransition
impl FeatureVersioned for ShieldTransition
fn feature_version(&self) -> FeatureVersion
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 ShieldTransition
impl From<ShieldTransitionV0> for ShieldTransition
Source§fn from(value: ShieldTransitionV0) -> Self
fn from(value: ShieldTransitionV0) -> Self
Source§impl JsonConvertible for ShieldTransition
impl JsonConvertible for ShieldTransition
Source§impl OptionallyAssetLockProved for ShieldTransition
impl OptionallyAssetLockProved for ShieldTransition
Source§fn optional_asset_lock_proof(&self) -> Option<&AssetLockProof>
fn optional_asset_lock_proof(&self) -> Option<&AssetLockProof>
Source§impl PartialEq for ShieldTransition
impl PartialEq for ShieldTransition
Source§impl PlatformDeserializable for ShieldTransition
impl PlatformDeserializable for ShieldTransition
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 ShieldTransition
impl PlatformVersionEncode for ShieldTransition
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 ShieldTransition
impl<'__de> PlatformVersionedBorrowDecode<'__de> for ShieldTransition
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 ShieldTransition
impl PlatformVersionedDecode for ShieldTransition
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 ShieldTransition
impl Serialize for ShieldTransition
Source§impl ShieldTransitionMethodsV0 for ShieldTransition
impl ShieldTransitionMethodsV0 for ShieldTransition
async 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
Source§impl Signable for ShieldTransition
impl Signable for ShieldTransition
fn signable_bytes(&self) -> Result<Vec<u8>, ProtocolError>
Source§impl StateTransitionEstimatedFeeValidation for ShieldTransition
impl StateTransitionEstimatedFeeValidation for ShieldTransition
Source§fn calculate_min_required_fee(
&self,
platform_version: &PlatformVersion,
) -> Result<Credits, ProtocolError>
fn calculate_min_required_fee( &self, platform_version: &PlatformVersion, ) -> Result<Credits, ProtocolError>
Returns an advisory lower bound on a transparent Shield’s fee: the predictable
COMPUTE portion compute_shielded_verification_fee(num_actions) (the per-bundle Halo 2
proof-verification fee + the per-action processing fee).
This is NOT the funding floor and is NOT the full fee. Unlike the asset-lock transitions,
the transparent Shield is excluded from the address-minimum-balance pre-check
(StateTransition::required_asset_lock_balance_for_processing_start does not dispatch to it),
so no consensus or funding path consumes this value — it is only reachable via the generic
SDK advisory StateTransition::calculate_estimated_fee().
Shield is metered + compute: GroveDB meters the real storage and processing of the
note/nullifier writes, and the execution-event layer adds only this compute fee on top (see
validate_fees_of_event / the ExecutionEvent construction). The metered storage/processing
portion depends on live GroveDB tree state and therefore cannot be known statelessly here, so
the real fee a Shield will be charged is strictly greater than this number. A caller that
needs the actual required balance must price the metered portion against state (e.g. via the
fee-validation pass), not rely on this estimate.
Source§impl StateTransitionFieldTypes for ShieldTransition
impl StateTransitionFieldTypes for ShieldTransition
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 ShieldTransition
impl StateTransitionHasUserFeeIncrease for ShieldTransition
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 ShieldTransition
impl StateTransitionLike for ShieldTransition
Source§fn modified_data_ids(&self) -> Vec<Identifier>
fn modified_data_ids(&self) -> Vec<Identifier>
Returns ID of the created contract
Source§fn state_transition_type(&self) -> StateTransitionType
fn state_transition_type(&self) -> StateTransitionType
returns the type of State Transition
Source§fn state_transition_protocol_version(&self) -> FeatureVersion
fn state_transition_protocol_version(&self) -> FeatureVersion
Source§fn unique_identifiers(&self) -> Vec<String>
fn unique_identifiers(&self) -> Vec<String>
Source§fn is_document_state_transition(&self) -> bool
fn is_document_state_transition(&self) -> bool
Source§fn is_data_contract_state_transition(&self) -> bool
fn is_data_contract_state_transition(&self) -> bool
Source§fn is_identity_state_transition(&self) -> bool
fn is_identity_state_transition(&self) -> bool
Source§fn is_voting_state_transition(&self) -> bool
fn is_voting_state_transition(&self) -> bool
Source§impl StateTransitionStructureValidation for ShieldTransition
impl StateTransitionStructureValidation for ShieldTransition
Source§fn validate_structure(
&self,
platform_version: &PlatformVersion,
) -> SimpleConsensusValidationResult
fn validate_structure( &self, platform_version: &PlatformVersion, ) -> SimpleConsensusValidationResult
Source§impl StateTransitionWitnessSigned for ShieldTransition
impl StateTransitionWitnessSigned for ShieldTransition
Source§fn inputs(&self) -> &BTreeMap<PlatformAddress, (AddressNonce, Credits)>
fn inputs(&self) -> &BTreeMap<PlatformAddress, (AddressNonce, Credits)>
Source§fn inputs_mut(
&mut self,
) -> &mut BTreeMap<PlatformAddress, (AddressNonce, Credits)>
fn inputs_mut( &mut self, ) -> &mut BTreeMap<PlatformAddress, (AddressNonce, Credits)>
Source§fn set_inputs(
&mut self,
inputs: BTreeMap<PlatformAddress, (AddressNonce, Credits)>,
)
fn set_inputs( &mut self, inputs: BTreeMap<PlatformAddress, (AddressNonce, Credits)>, )
Source§fn witnesses(&self) -> &Vec<AddressWitness>
fn witnesses(&self) -> &Vec<AddressWitness>
Source§fn set_witnesses(&mut self, witnesses: Vec<AddressWitness>)
fn set_witnesses(&mut self, witnesses: Vec<AddressWitness>)
Source§impl StateTransitionWitnessValidation for ShieldTransition
impl StateTransitionWitnessValidation for ShieldTransition
Source§fn validate_witnesses(&self, signable_bytes: &[u8]) -> WitnessValidationResult
fn validate_witnesses(&self, signable_bytes: &[u8]) -> WitnessValidationResult
Source§impl ValueConvertible for ShieldTransition
impl ValueConvertible for ShieldTransition
fn to_object(&self) -> Result<Value, ProtocolError>where
Self: Sized,
fn into_object(self) -> Result<Value, ProtocolError>where
Self: Sized,
fn from_object(value: Value) -> Result<Self, ProtocolError>where
Self: Sized,
fn from_object_ref(value: &Value) -> Result<Self, ProtocolError>where
Self: Sized,
impl JsonSafeFields for ShieldTransition
impl StructuralPartialEq for ShieldTransition
Auto Trait Implementations§
impl Freeze for ShieldTransition
impl RefUnwindSafe for ShieldTransition
impl Send for ShieldTransition
impl Sync for ShieldTransition
impl Unpin for ShieldTransition
impl UnsafeUnpin for ShieldTransition
impl UnwindSafe for ShieldTransition
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
Source§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>
Source§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.