net.corda.core.contracts / LinearState

# LinearState

`interface LinearState : ContractState`

A state that evolves by superseding itself, all of which share the common "linearId".

This simplifies the job of tracking the current version of certain types of state in e.g. a vault.

### Types

ClauseVerifier | `class ClauseVerifier<S : LinearState, C : CommandData> : Clause<S, C, Unit>` Standard clause to verify the LinearState safety properties.

### Properties

linearId | `abstract val linearId: UniqueIdentifier` Unique id shared by all LinearState states throughout history within the vaults of all parties. Verify methods should check that one input and one output share the id in a transaction, except at issuance/termination.

### Inherited Properties

contract | `abstract val contract: Contract` An instance of the contract class that will verify this state.
encumbrance | `open val encumbrance: Int?` All contract states may be encumbered by up to one other state.
participants | `abstract val participants: List<CompositeKey>` A participant is any party that is able to consume this state in a valid transaction.

### Functions

isRelevant | `abstract fun isRelevant(ourKeys: Set<PublicKey>): Boolean` True if this should be tracked by our vault(s).

### Extension Functions

hash | `fun ContractState.hash(): SecureHash` Returns the SHA-256 hash of the serialised contents of this state (not cached)

### Inheritors

DealState | `interface DealState : LinearState` Interface representing an agreement that exposes various attributes that are common. Implementing it simplifies implementation of general flows that manipulate many agreement types.