com.r3corda.core.transactions / WireTransaction

WireTransaction

class WireTransaction : BaseTransaction

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, its possible for two SignedTransactions with different sets of signatures to have the same identity hash.



Constructors

<init> WireTransaction(inputs: List<StateRef>, attachments: List<SecureHash>, outputs: List<TransactionState<ContractState>>, commands: List<Command>, notary: Party?, signers: List<PublicKey>, type: TransactionType, timestamp: Timestamp?)

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, its possible for two SignedTransactions with different sets of signatures to have the same identity hash.

Properties

attachments val attachments: List<SecureHash>

Hashes of the ZIP/JAR files that are needed to interpret the contents of this wire transaction.

commands val commands: List<Command>

Ordered list of (CommandData, PublicKey) pairs that instruct the contracts what to do.

id val id: SecureHash
inputs val inputs: List<StateRef>

Pointers to the input states on the ledger, identified by (tx identity hash, output index).

serialized val serialized: SerializedBytes<WireTransaction>

Inherited Properties

mustSign val mustSign: List<PublicKey>

Keys that are required to have signed the wrapping SignedTransaction, ordered to match the list of signatures. There is nothing that forces the list to be the correct list of signers for this transaction until the transaction is verified by using LedgerTransaction.verify. It includes the notary key, if the notary field is set.

notary val notary: Party?

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 dont consume any other states and thus cant double spend anything.

outputs val outputs: List<TransactionState<ContractState>>

Ordered list of states defined by this transaction, along with the associated notaries.

timestamp val timestamp: Timestamp?

If specified, a time window in which this transaction may have been notarised. Contracts can check this time window to find out when a transaction is deemed to have occurred, from the ledgers perspective.

type val type: TransactionType

Pointer to a class that defines the behaviour of this transaction: either normal, or "notary changing".

Functions

equals fun equals(other: Any?): Boolean
hashCode fun hashCode(): Int
outRef fun <T : ContractState> outRef(index: Int): StateAndRef<T>

Returns a StateAndRef for the given output index.

fun <T : ContractState> outRef(state: ContractState): StateAndRef<T>

Returns a StateAndRef for the requested output state, or throws IllegalArgumentException if not found.

toLedgerTransaction fun toLedgerTransaction(services: ServiceHub): LedgerTransaction

Looks up identities and attachments from storage to generate a LedgerTransaction. A transaction is expected to have been fully resolved using the resolution protocol by this point.

toString fun toString(): String

Inherited Functions

checkInvariants fun checkInvariants(): Unit

Companion Object Functions

deserialize fun deserialize(bits: SerializedBytes<WireTransaction>, kryo: <ERROR CLASS> = THREAD_LOCAL_KRYO.get()): WireTransaction