net.corda.core.transactions

## Class TraversableTransaction.DefaultImpls

- net.corda.core.transactions.TraversableTransaction.DefaultImpls

- Enclosing interface:
    TraversableTransaction

      public static class TraversableTransaction.DefaultImpls

  Implemented by `class WireTransaction` and `class FilteredLeaves`. 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.

  The availableComponents property is used for calculation of the transaction's `class MerkleTree`, which is in turn used to derive the ID hash.

  See Also:
    `class WireTransaction`, `class FilteredLeaves`, `class MerkleTree`

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.util.List<net.corda.core.crypto.SecureHash>` | `getAvailableComponentHashes(TraversableTransaction $this)` Calculate the hashes of the sub-components of the transaction, that are used to build its Merkle tree. The root of the tree is the transaction identifier. The tree structure is helpful for privacy, please see the user-guide section "Transaction tear-offs" to learn more about this topic.
    `static java.util.List<java.lang.Object>` | `getAvailableComponents(TraversableTransaction $this)` Returns a flattened list of all the components that are present in the transaction, in the following order:

- - ### Method Detail

    - #### getAvailableComponents

          public static java.util.List<java.lang.Object> getAvailableComponents(TraversableTransaction $this)

      Returns a flattened list of all the components that are present in the transaction, in the following order:

      - Each input that is present

      - Each attachment that is present

      - Each output that is present

      - Each command that is present

      - The notary `class Party`, if present

      - Each required signer (mustSign) that is present

      - The type of the transaction, if present

      - The timestamp of the transaction, if present

      See Also:
        `class Party`

    - #### getAvailableComponentHashes

          public static java.util.List<net.corda.core.crypto.SecureHash> getAvailableComponentHashes(TraversableTransaction $this)

      Calculate the hashes of the sub-components of the transaction, that are used to build its Merkle tree. The root of the tree is the transaction identifier. The tree structure is helpful for privacy, please see the user-guide section "Transaction tear-offs" to learn more about this topic.