pub struct TransactionPlan {
pub actions: Vec<ActionPlan>,
pub transaction_parameters: TransactionParameters,
pub detection_data: Option<DetectionDataPlan>,
pub memo: Option<MemoPlan>,
}Expand description
A declaration of a planned Transaction,
for use in transaction authorization and creation.
Fields§
§actions: Vec<ActionPlan>§transaction_parameters: TransactionParameters§detection_data: Option<DetectionDataPlan>§memo: Option<MemoPlan>Implementations§
Source§impl TransactionPlan
impl TransactionPlan
Authorize this TransactionPlan with the provided SpendKey.
The returned AuthorizationData can be used to build a Transaction.
Source§impl TransactionPlan
impl TransactionPlan
Sourcepub fn build_unauth_with_actions(
self,
actions: Vec<Action>,
witness_data: &WitnessData,
) -> Result<Transaction>
pub fn build_unauth_with_actions( self, actions: Vec<Action>, witness_data: &WitnessData, ) -> Result<Transaction>
Builds a TransactionPlan by slotting in the
provided prebuilt actions instead of using the
ActionPlans in the TransactionPlan.
Sourcepub fn apply_auth_data(
&self,
auth_data: &AuthorizationData,
transaction: Transaction,
) -> Result<Transaction>
pub fn apply_auth_data( &self, auth_data: &AuthorizationData, transaction: Transaction, ) -> Result<Transaction>
Slot in the AuthorizationData and derive the synthetic
blinding factors needed to compute the binding signature
and assemble the transaction.
Sourcepub fn build(
self,
full_viewing_key: &FullViewingKey,
witness_data: &WitnessData,
auth_data: &AuthorizationData,
) -> Result<Transaction>
pub fn build( self, full_viewing_key: &FullViewingKey, witness_data: &WitnessData, auth_data: &AuthorizationData, ) -> Result<Transaction>
Build the serial transaction this plan describes.
Sourcepub async fn build_concurrent(
self,
full_viewing_key: &FullViewingKey,
witness_data: &WitnessData,
auth_data: &AuthorizationData,
) -> Result<Transaction>
Available on crate feature parallel only.
pub async fn build_concurrent( self, full_viewing_key: &FullViewingKey, witness_data: &WitnessData, auth_data: &AuthorizationData, ) -> Result<Transaction>
parallel only.Build the transaction this plan describes while proving concurrently. This can be used in environments that support tokio tasks.
Sourcepub fn witness_data(&self, sct: &Tree) -> Result<WitnessData, Error>
pub fn witness_data(&self, sct: &Tree) -> Result<WitnessData, Error>
Returns a WitnessData, which may be used to build this transaction.
Source§impl TransactionPlan
impl TransactionPlan
Sourcepub fn sort_actions(&mut self)
pub fn sort_actions(&mut self)
Sort the actions in TransactionPlan by type, using the protobuf field number in the ActionPlan.
Sourcepub fn effect_hash(&self, fvk: &FullViewingKey) -> Result<EffectHash>
pub fn effect_hash(&self, fvk: &FullViewingKey) -> Result<EffectHash>
Computes the EffectHash for the [Transaction] described by this
TransactionPlan.
This method does not require constructing the entire [Transaction],
but it does require the associated FullViewingKey to derive
effecting data that will be fed into the EffectHash.
This method is not an EffectingData impl because it needs an extra input,
the FVK, to partially construct the transaction.
pub fn spend_plans(&self) -> impl Iterator<Item = &SpendPlan>
pub fn output_plans(&self) -> impl Iterator<Item = &OutputPlan>
pub fn delegations(&self) -> impl Iterator<Item = &Delegate>
pub fn undelegations(&self) -> impl Iterator<Item = &Undelegate>
pub fn undelegate_claim_plans( &self, ) -> impl Iterator<Item = &UndelegateClaimPlan>
pub fn ibc_actions(&self) -> impl Iterator<Item = &IbcRelay>
pub fn validator_definitions(&self) -> impl Iterator<Item = &Definition>
pub fn proposal_submits(&self) -> impl Iterator<Item = &ProposalSubmit>
pub fn proposal_withdraws(&self) -> impl Iterator<Item = &ProposalWithdraw>
pub fn delegator_vote_plans(&self) -> impl Iterator<Item = &DelegatorVotePlan>
pub fn lqt_vote_plans( &self, ) -> impl Iterator<Item = &ActionLiquidityTournamentVotePlan>
pub fn validator_votes(&self) -> impl Iterator<Item = &ValidatorVote>
pub fn proposal_deposit_claims( &self, ) -> impl Iterator<Item = &ProposalDepositClaim>
pub fn swap_plans(&self) -> impl Iterator<Item = &SwapPlan>
pub fn swap_claim_plans(&self) -> impl Iterator<Item = &SwapClaimPlan>
pub fn community_pool_spends(&self) -> impl Iterator<Item = &CommunityPoolSpend>
pub fn community_pool_deposits( &self, ) -> impl Iterator<Item = &CommunityPoolDeposit>
pub fn community_pool_outputs( &self, ) -> impl Iterator<Item = &CommunityPoolOutput>
pub fn position_openings(&self) -> impl Iterator<Item = &PositionOpenPlan>
pub fn position_closings(&self) -> impl Iterator<Item = &PositionClose>
pub fn position_withdrawals( &self, ) -> impl Iterator<Item = &PositionWithdrawPlan>
pub fn ics20_withdrawals(&self) -> impl Iterator<Item = &Ics20Withdrawal>
Sourcepub fn dest_addresses(&self) -> Vec<Address>
pub fn dest_addresses(&self) -> Vec<Address>
Convenience method to get all the destination addresses for each OutputPlans.
Sourcepub fn num_outputs(&self) -> usize
pub fn num_outputs(&self) -> usize
Convenience method to get the number of OutputPlans in this transaction.
Sourcepub fn num_spends(&self) -> usize
pub fn num_spends(&self) -> usize
Convenience method to get the number of SpendPlans in this transaction.
Sourcepub fn num_proofs(&self) -> usize
pub fn num_proofs(&self) -> usize
Convenience method to get the number of proofs in this transaction.
Sourcepub fn populate_detection_data<R: CryptoRng + Rng>(
&mut self,
rng: R,
precision: Precision,
)
pub fn populate_detection_data<R: CryptoRng + Rng>( &mut self, rng: R, precision: Precision, )
Method to populate the detection data for this transaction plan.
Sourcepub fn with_populated_detection_data<R: CryptoRng + Rng>(
self,
rng: R,
precision_bits: Precision,
) -> Self
pub fn with_populated_detection_data<R: CryptoRng + Rng>( self, rng: R, precision_bits: Precision, ) -> Self
A builder-style version of TransactionPlan::populate_detection_data().
Populates the detection data for this transaction plan.
Sourcepub fn memo_key(&self) -> Option<PayloadKey>
pub fn memo_key(&self) -> Option<PayloadKey>
Convenience method to grab the MemoKey from the plan.
Trait Implementations§
Source§impl Clone for TransactionPlan
impl Clone for TransactionPlan
Source§fn clone(&self) -> TransactionPlan
fn clone(&self) -> TransactionPlan
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TransactionPlan
impl Debug for TransactionPlan
Source§impl Default for TransactionPlan
impl Default for TransactionPlan
Source§fn default() -> TransactionPlan
fn default() -> TransactionPlan
Source§impl<'de> Deserialize<'de> for TransactionPlan
impl<'de> Deserialize<'de> for TransactionPlan
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 DomainType for TransactionPlan
impl DomainType for TransactionPlan
Source§impl From<TransactionPlan> for TransactionPlan
impl From<TransactionPlan> for TransactionPlan
Source§fn from(msg: TransactionPlan) -> Self
fn from(msg: TransactionPlan) -> Self
Source§impl Serialize for TransactionPlan
impl Serialize for TransactionPlan
Source§impl TryFrom<TransactionPlan> for TransactionPlan
impl TryFrom<TransactionPlan> for TransactionPlan
Auto Trait Implementations§
impl !Freeze for TransactionPlan
impl RefUnwindSafe for TransactionPlan
impl Send for TransactionPlan
impl Sync for TransactionPlan
impl Unpin for TransactionPlan
impl UnwindSafe for TransactionPlan
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<T> EventDomainType for Twhere
T: DomainType,
<T as DomainType>::Proto: ProtoEvent,
Error: From<<T as TryFrom<<T as DomainType>::Proto>>::Error>,
impl<T> EventDomainType for Twhere
T: DomainType,
<T as DomainType>::Proto: ProtoEvent,
Error: From<<T as TryFrom<<T as DomainType>::Proto>>::Error>,
§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§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.