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 wallet.





Types

ClauseVerifier class ClauseVerifier<S : LinearState> : ConcreteClause<ContractState, CommandData, 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 wallets 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.

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 wallet(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.

State class State : LinearState