TraversableTransaction - corda

corda / net.corda.core.transactions / TraversableTransaction

# TraversableTransaction

`abstract class TraversableTransaction : CoreTransaction`

Implemented by WireTransaction and FilteredTransaction. A TraversableTransaction allows you to iterate over the flattened components of the underlying transaction structure, taking into account that some may be missing in the case of this representing a "torn" transaction. Please see the user guide section "Transaction tear-offs" to learn more about this feature.

### Constructors

#### <init> | Old version of TraversableTransaction constructor for ABI compatibility. `TraversableTransaction(componentGroups: List<ComponentGroup>)` Implemented by WireTransaction and FilteredTransaction. A TraversableTransaction allows you to iterate over the flattened components of the underlying transaction structure, taking into account that some may be missing in the case of this representing a "torn" transaction. Please see the user guide section "Transaction tear-offs" to learn more about this feature. `TraversableTransaction(componentGroups: List<ComponentGroup>, digestService: DigestService)`

### Properties

#### attachments | Hashes of the ZIP/JAR files that are needed to interpret the contents of this wire transaction. `val attachments: List<SecureHash>`
#### availableComponentGroups | Returns a list of all the component groups that are present in the transaction, excluding the privacySalt, in the following order (which is the same with the order in ComponentGroupEnum: `val availableComponentGroups: List<List<Any>>`
#### commands | Ordered list of (CommandData, PublicKey) pairs that instruct the contracts what to do. `val commands: List<Command<*>>`
#### componentGroups | `open val componentGroups: List<ComponentGroup>`
#### digestService | `val digestService: DigestService`
#### inputs | Pointers to the input states on the ledger, identified by (tx identity hash, output index). `open val inputs: List<StateRef>`
#### networkParametersHash | Hash of the network parameters that were in force when the transaction was notarised. Null means, that the transaction was created on older version of Corda (before 4), resolution will default to initial parameters. `open val networkParametersHash: SecureHash?`
#### notary | If present, the notary for this transaction. If absent then the transaction is not notarised at all. This is intended for issuance/genesis transactions that don't consume any other states and thus can't double spend anything. `open val notary: Party?`
#### outputs | Ordered list of states defined by this transaction, along with the associated notaries. `open val outputs: List<TransactionState<ContractState>>`
#### references | Pointers to reference states, identified by (tx identity hash, output index). `open val references: List<StateRef>`
#### timeWindow | `val timeWindow: TimeWindow?`

### Inheritors

#### FilteredTransaction | Class representing merkleized filtered transaction. `class FilteredTransaction : TraversableTransaction`
#### WireTransaction | 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 identity of the transaction is the Merkle tree root of its components (see MerkleTree). `class WireTransaction : TraversableTransaction`