core / LedgerTransaction

# LedgerTransaction

`data class LedgerTransaction : NamedByHash`

A LedgerTransaction wraps the data needed to calculate one or more successor states from a set of input states. It is the first step after extraction from a WireTransaction. The signatures at this point have been lined up with the commands from the wire, and verified/looked up.

TODO: This class needs a bit more thought. Should inputs be fully resolved by this point too?

### Constructors

<init>

`LedgerTransaction(inputs: List<StateRef>, attachments: List<Attachment>, outputs: List<ContractState>, commands: List<AuthenticatedObject<CommandData>>, id: SecureHash)`

A LedgerTransaction wraps the data needed to calculate one or more successor states from a set of input states. It is the first step after extraction from a WireTransaction. The signatures at this point have been lined up with the commands from the wire, and verified/looked up.

### Properties

attachments | `val attachments: List<Attachment>` A list of Attachment objects identified by the transaction that are needed for this transaction to verify.
commands | `val commands: List<AuthenticatedObject<CommandData>>` Arbitrary data passed to the program of each input state.
id | `val id: SecureHash` The hash of the original serialised WireTransaction
inputs | `val inputs: List<StateRef>` The input states which will be consumed/invalidated by the execution of this transaction.
outputs | `val outputs: List<ContractState>` The states that will be generated by the execution of this transaction.

### Functions

outRef | `fun <T : ContractState> outRef(index: Int): StateAndRef<T>`