TransactionState - corda

corda / net.corda.core.contracts / TransactionState

# TransactionState

`data class TransactionState<out T : ContractState>`

A wrapper for ContractState containing additional platform-level state information and contract information. This is the definitive state that is stored on the ledger and used in transaction outputs.

### Constructors

#### <init> | A wrapper for ContractState containing additional platform-level state information and contract information. This is the definitive state that is stored on the ledger and used in transaction outputs. `TransactionState(data: T, contract: ContractClassName = requireNotNull(data.requiredContractClassName) { //TODO: add link to docsite page, when there is one. """ Unable to infer Contract class name because state class ${data::class.java.name} is not annotated with @BelongsToContract, and does not have an enclosing class which implements Contract. Either annotate ${data::class.java.name} with @BelongsToContract, or supply an explicit contract parameter to TransactionState(). """.trimIndent().replace('\n', ' ') }, notary: Party, encumbrance: Int? = null, constraint: AttachmentConstraint = AutomaticPlaceholderConstraint)`

### Properties

#### constraint | A validator for the contract attachments on the transaction. `val constraint: AttachmentConstraint`
#### contract | The contract class name that will verify this state that will be created via reflection. The attachment containing this class will be automatically added to the transaction at transaction creation time. `val contract: ContractClassName`
#### data | The custom contract state `val data: T`
#### encumbrance | All contract states may be encumbered by up to one other state. `val encumbrance: Int?`
#### notary | Identity of the notary that ensures the state is not used as an input to a transaction more than once `val notary: Party`