pub struct TransactionIntentV2 {
pub transaction_header: TransactionHeaderV2,
pub root_intent_core: IntentCoreV2,
pub non_root_subintents: NonRootSubintentsV2,
}
Expand description
This is the root intent of a NotarizedTransactionV2
.
It may have 0 or more SubintentV2
children, which themselves may have children…
This forms an intent tree, which is subject to a depth limit, and a limit on the
total number of intents.
All the subintent descendents are flattened and are stored in the non_root_subintents
field. To be valid, these intents must form a tree, with the transaction intent at its root.
There are a few reasons for the flattening:
- It means the models have a fixed depth, allowing avoiding recursion.
- It aligns with the runtime model.
- It allows the signatures to be attached in one layer as per the
SignedTransactionIntentV2
.
§Similar models
A PartialTransactionV2
is a similar structure for a partial subtree
of a transaction, but with a subintent root. Whilst useful for constructing a
transaction, it doesn’t appear under a NotarizedTransactionV2
because the subintents
get flattened.
Fields§
§transaction_header: TransactionHeaderV2
§root_intent_core: IntentCoreV2
§non_root_subintents: NonRootSubintentsV2
Trait Implementations§
Source§impl Clone for TransactionIntentV2
impl Clone for TransactionIntentV2
Source§fn clone(&self) -> TransactionIntentV2
fn clone(&self) -> TransactionIntentV2
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 TransactionIntentV2
impl Debug for TransactionIntentV2
Source§impl<D> Decode<ManifestCustomValueKind, D> for TransactionIntentV2where
D: Decoder<ManifestCustomValueKind>,
impl<D> Decode<ManifestCustomValueKind, D> for TransactionIntentV2where
D: Decoder<ManifestCustomValueKind>,
Source§fn decode_body_with_value_kind(
decoder: &mut D,
value_kind: ValueKind<ManifestCustomValueKind>,
) -> Result<TransactionIntentV2, DecodeError>
fn decode_body_with_value_kind( decoder: &mut D, value_kind: ValueKind<ManifestCustomValueKind>, ) -> Result<TransactionIntentV2, DecodeError>
Decodes the type from the decoder, which should match a preloaded value kind. Read more
Source§impl Describe<ScryptoCustomTypeKind> for TransactionIntentV2
impl Describe<ScryptoCustomTypeKind> for TransactionIntentV2
Source§const TYPE_ID: RustTypeId
const TYPE_ID: RustTypeId
The
TYPE_ID
should give a unique identifier for its SBOR schema type.
An SBOR schema type capture details about the SBOR payload, how it should be interpreted, validated and displayed. Read moreSource§fn type_data() -> TypeData<ScryptoCustomTypeKind, RustTypeId>
fn type_data() -> TypeData<ScryptoCustomTypeKind, RustTypeId>
Returns the local schema for the given type. Read more
Source§fn add_all_dependencies(aggregator: &mut TypeAggregator<ScryptoCustomTypeKind>)
fn add_all_dependencies(aggregator: &mut TypeAggregator<ScryptoCustomTypeKind>)
For each type referenced in
get_local_type_data
, we need to ensure that the type and all of its own references
get added to the aggregator. Read moreSource§impl<E> Encode<ManifestCustomValueKind, E> for TransactionIntentV2where
E: Encoder<ManifestCustomValueKind>,
impl<E> Encode<ManifestCustomValueKind, E> for TransactionIntentV2where
E: Encoder<ManifestCustomValueKind>,
Source§fn encode_value_kind(&self, encoder: &mut E) -> Result<(), EncodeError>
fn encode_value_kind(&self, encoder: &mut E) -> Result<(), EncodeError>
Encodes the SBOR value’s kind to the encoder
Source§fn encode_body(&self, encoder: &mut E) -> Result<(), EncodeError>
fn encode_body(&self, encoder: &mut E) -> Result<(), EncodeError>
Encodes the SBOR body of the type to the encoder. Read more
Source§impl PartialEq for TransactionIntentV2
impl PartialEq for TransactionIntentV2
Source§impl SborEnumVariantFor<AnyTransaction, ManifestCustomValueKind> for TransactionIntentV2
impl SborEnumVariantFor<AnyTransaction, ManifestCustomValueKind> for TransactionIntentV2
const DISCRIMINATOR: u8 = 9u8
const IS_FLATTENED: bool = true
Source§type VariantFields = TransactionIntentV2
type VariantFields = TransactionIntentV2
VariantFields is either
Self
if IS_FLATTENED
else is (Self,)
Source§type VariantFieldsRef<'a> = &'a TransactionIntentV2
type VariantFieldsRef<'a> = &'a TransactionIntentV2
VariantFieldsRef is either
&Self
if IS_FLATTENED
else is (&Self,)
Source§type OwnedVariant = SborFixedEnumVariant<radix_transactions::::model::any_transaction::{impl#21}::OwnedVariant::{constant#0}, <TransactionIntentV2 as SborEnumVariantFor<AnyTransaction, ManifestCustomValueKind>>::VariantFields>
type OwnedVariant = SborFixedEnumVariant<radix_transactions::::model::any_transaction::{impl#21}::OwnedVariant::{constant#0}, <TransactionIntentV2 as SborEnumVariantFor<AnyTransaction, ManifestCustomValueKind>>::VariantFields>
This should always be
SborFixedEnumVariant<{ [DISCRIMINATOR] as u8 }, Self::VariantFields>
Read moreSource§type BorrowedVariant<'a> = SborFixedEnumVariant<radix_transactions::::model::any_transaction::{impl#21}::BorrowedVariant::{constant#0}, <TransactionIntentV2 as SborEnumVariantFor<AnyTransaction, ManifestCustomValueKind>>::VariantFieldsRef<'a>>
type BorrowedVariant<'a> = SborFixedEnumVariant<radix_transactions::::model::any_transaction::{impl#21}::BorrowedVariant::{constant#0}, <TransactionIntentV2 as SborEnumVariantFor<AnyTransaction, ManifestCustomValueKind>>::VariantFieldsRef<'a>>
Should always be
SborFixedEnumVariant<{ [DISCRIMINATOR] as u8 }, &'a Self::VariantFields>
Read morefn from_variant_fields( variant_fields: <TransactionIntentV2 as SborEnumVariantFor<AnyTransaction, ManifestCustomValueKind>>::VariantFields, ) -> TransactionIntentV2
fn as_variant_fields_ref( &self, ) -> <TransactionIntentV2 as SborEnumVariantFor<AnyTransaction, ManifestCustomValueKind>>::VariantFieldsRef<'_>
fn into_enum(self) -> AnyTransaction
Source§fn as_encodable_variant<'a>(&'a self) -> Self::BorrowedVariant<'a>
fn as_encodable_variant<'a>(&'a self) -> Self::BorrowedVariant<'a>
Can be used to encode the type as a variant under
TEnum
, like this:
encoder.encode(x.as_encodable_variant())
. Read moreSource§fn from_decoded_variant(variant: Self::OwnedVariant) -> Selfwhere
Self: Sized,
fn from_decoded_variant(variant: Self::OwnedVariant) -> Selfwhere
Self: Sized,
Can be used to decode the type from an encoded variant, like this:
T::from_decoded_variant(decoder.decode()?)
. Read moreSource§impl SborTuple<ManifestCustomValueKind> for TransactionIntentV2
impl SborTuple<ManifestCustomValueKind> for TransactionIntentV2
fn get_length(&self) -> usize
Source§impl TransactionPayload for TransactionIntentV2
impl TransactionPayload for TransactionIntentV2
type Prepared = PreparedTransactionIntentV2
type Raw = RawTransactionIntent
fn discriminator() -> u8
fn to_raw(&self) -> Result<Self::Raw, EncodeError>
fn from_raw(raw: &Self::Raw) -> Result<Self, DecodeError>
fn from_payload_variant(payload_variant: Self::OwnedVariant) -> Self
fn prepare( &self, settings: &PreparationSettingsV1, ) -> Result<Self::Prepared, PrepareError>
impl Eq for TransactionIntentV2
impl StructuralPartialEq for TransactionIntentV2
Auto Trait Implementations§
impl Freeze for TransactionIntentV2
impl RefUnwindSafe for TransactionIntentV2
impl Send for TransactionIntentV2
impl Sync for TransactionIntentV2
impl Unpin for TransactionIntentV2
impl UnwindSafe for TransactionIntentV2
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,
Source§impl<T, U> ContextualTryInto<U> for Twhere
U: ContextualTryFrom<T>,
impl<T, U> ContextualTryInto<U> for Twhere
U: ContextualTryFrom<T>,
type Error = <U as ContextualTryFrom<T>>::Error
type Context = <U as ContextualTryFrom<T>>::Context
fn contextual_try_into( self, context: &<U as ContextualTryFrom<T>>::Context, ) -> Result<U, <U as ContextualTryFrom<T>>::Error>
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.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