pub struct TransactionOutputListWithProof {
pub transactions_and_outputs: Vec<(Transaction, TransactionOutput)>,
pub first_transaction_output_version: Option<Version>,
pub proof: TransactionInfoListWithProof,
}Expand description
This differs from TransactionListWithProof in that TransactionOutputs are stored (no transactions). Events are stored inside each TransactionOutput.
Note: the proof cannot verify the TransactionOutputs themselves. This requires speculative execution of each TransactionOutput to verify that the resulting state matches the expected state in the proof (for each version).
Fields
transactions_and_outputs: Vec<(Transaction, TransactionOutput)>first_transaction_output_version: Option<Version>proof: TransactionInfoListWithProofImplementations
sourceimpl TransactionOutputListWithProof
impl TransactionOutputListWithProof
pub fn new(
transactions_and_outputs: Vec<(Transaction, TransactionOutput)>,
first_transaction_output_version: Option<Version>,
proof: TransactionInfoListWithProof
) -> Self
sourcepub fn new_empty() -> Self
pub fn new_empty() -> Self
A convenience function to create an empty proof. Mostly used for tests.
sourcepub fn verify(
&self,
ledger_info: &LedgerInfo,
first_transaction_output_version: Option<Version>
) -> Result<()>
pub fn verify(
&self,
ledger_info: &LedgerInfo,
first_transaction_output_version: Option<Version>
) -> Result<()>
Verifies the transaction output list with proof using the given ledger_info.
This method will ensure:
- All transaction infos exist on the given
ledger_info. - If
first_transaction_output_versionis None, the transaction output list is empty. Otherwise, the list starts atfirst_transaction_output_version. - Events, gas, status in each transaction output match the expected event root hashes, the gas used and the transaction execution status in the proof, respectively.
- The transaction hashes match those of the transaction infos.
Note: the proof cannot verify the TransactionOutputs themselves. This requires speculative execution of each TransactionOutput to verify that the resulting state matches the expected state in the proof (for each version).
Trait Implementations
sourceimpl Clone for TransactionOutputListWithProof
impl Clone for TransactionOutputListWithProof
sourcefn clone(&self) -> TransactionOutputListWithProof
fn clone(&self) -> TransactionOutputListWithProof
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl<'de> Deserialize<'de> for TransactionOutputListWithProof
impl<'de> Deserialize<'de> for TransactionOutputListWithProof
sourcefn 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
sourceimpl PartialEq<TransactionOutputListWithProof> for TransactionOutputListWithProof
impl PartialEq<TransactionOutputListWithProof> for TransactionOutputListWithProof
sourcefn eq(&self, other: &TransactionOutputListWithProof) -> bool
fn eq(&self, other: &TransactionOutputListWithProof) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourcefn ne(&self, other: &TransactionOutputListWithProof) -> bool
fn ne(&self, other: &TransactionOutputListWithProof) -> bool
This method tests for !=.
impl Eq for TransactionOutputListWithProof
impl StructuralEq for TransactionOutputListWithProof
impl StructuralPartialEq for TransactionOutputListWithProof
Auto Trait Implementations
impl RefUnwindSafe for TransactionOutputListWithProof
impl Send for TransactionOutputListWithProof
impl Sync for TransactionOutputListWithProof
impl Unpin for TransactionOutputListWithProof
impl UnwindSafe for TransactionOutputListWithProof
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key and return true if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> TestOnlyHash for T where
T: Serialize + ?Sized,
impl<T> TestOnlyHash for T where
T: Serialize + ?Sized,
sourcefn test_only_hash(&self) -> HashValue
fn test_only_hash(&self) -> HashValue
Generates a hash used only for tests.
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more