com.r3corda.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<PublicKey>

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 protocols that manipulate many agreement types.