corda / net.corda.core.transactions / TraversableTransaction

TraversableTransaction

interface TraversableTransaction

Interface implemented by WireTransaction and FilteredLeaves. Property traversableList assures that we always calculate hashes in the same order, lets us define which fields of WireTransaction will be included in id calculation or partial merkle tree building.

Properties

attachments abstract val attachments: List<SecureHash>
commands abstract val commands: List<Command>
inputs abstract val inputs: List<StateRef>
mustSign abstract val mustSign: List<CompositeKey>
notary abstract val notary: Party?
outputs abstract val outputs: List<TransactionState<ContractState>>
timestamp abstract val timestamp: Timestamp?
traversableList open val traversableList: List<Any>

Traversing transaction fields with a list function over transaction contents. Used for leaves hashes calculation and user provided filtering and checking of filtered transaction.

type abstract val type: TransactionType?

Functions

calculateLeavesHashes open fun calculateLeavesHashes(): List<SecureHash>

Inheritors

FilteredLeaves class FilteredLeaves : TraversableTransaction

Class that holds filtered leaves for a partial Merkle transaction. We assume mixed leaf types, notice that every field from WireTransaction can be used in PartialMerkleTree calculation.

WireTransaction class WireTransaction : BaseTransaction, TraversableTransaction

A transaction ready for serialisation, without any signatures attached. A WireTransaction is usually wrapped by a SignedTransaction that carries the signatures over this payload. The hash of the wire transaction is the identity of the transaction, that is, it's possible for two SignedTransactions with different sets of signatures to have the same identity hash.