com.r3corda.core.contracts.clauses / ConcreteClause

ConcreteClause

abstract class ConcreteClause<in S : ContractState, C : CommandData, in T : Any> : Clause<S, C, T>

Abstract supertype for clauses which provide their own verification logic, rather than delegating to subclauses. By default these clauses are always matched (they have no required commands).

See Also

CompositeClause



Constructors

<init> ConcreteClause()

Abstract supertype for clauses which provide their own verification logic, rather than delegating to subclauses. By default these clauses are always matched (they have no required commands).

Properties

requiredCommands open val requiredCommands: Set<Class<out CommandData>>

Determine whether this clause runs or not

Functions

getExecutionPath open fun getExecutionPath(commands: List<AuthenticatedObject<C>>): List<Clause<*, *, *>>

Determine the subclauses which will be verified as a result of verifying this clause.

Extension Functions

matches fun <C : CommandData> Clause<*, C, *>.matches(commands: List<AuthenticatedObject<C>>): Boolean

Determine if the given list of commands matches the required commands for a clause to trigger.

Inheritors

AbstractConserveAmount abstract class AbstractConserveAmount<S : FungibleAsset<T>, C : CommandData, T : Any> : ConcreteClause<S, C, Issued<T>>

Standardised clause for checking input/output balances of fungible assets. Requires that a Move command is provided, and errors if absent. Must be the last clause under a grouping clause; errors on no-match, ends on match.

AbstractIRSClause abstract class AbstractIRSClause : ConcreteClause<State, Commands, UniqueIdentifier>

Common superclass for IRS contract clauses, which defines behaviour on match/no-match, and provides helper functions for the clauses.

AbstractIssue abstract class AbstractIssue<in S : ContractState, C : CommandData, T : Any> : ConcreteClause<S, C, Issued<T>>

Standard issue clause for contracts that issue fungible assets.

ClauseVerifier class ClauseVerifier<S : LinearState> : ConcreteClause<ContractState, CommandData, Unit>

Standard clause to verify the LinearState safety properties.

GroupClauseVerifier abstract class GroupClauseVerifier<S : ContractState, C : CommandData, K : Any> : ConcreteClause<ContractState, C, Unit>
Move class Move : ConcreteClause<State, Commands, Issued<Terms>>
NetClause open class NetClause<C : CommandData, P> : ConcreteClause<ContractState, C, Unit>

Clause for netting contract states. Currently only supports obligation contract.

NoZeroSizedOutputs open class NoZeroSizedOutputs<in S : FungibleAsset<T>, C : CommandData, T : Any> : ConcreteClause<S, C, Issued<T>>

Clause for fungible asset contracts, which enforces that no output state should have a balance of zero.

Redeem class Redeem : ConcreteClause<State, Commands, Issued<Terms>>
SetLifecycle class SetLifecycle<P> : ConcreteClause<State<P>, Commands, Issued<Terms<P>>>

Obligation-specific clause for changing the lifecycle of one or more states.

Settle class Settle<P> : ConcreteClause<State<P>, Commands, Issued<Terms<P>>>

Obligation-specific clause for settling an outstanding obligation by witnessing change of ownership of other states to fulfil

Timestamped class Timestamped : ConcreteClause<ContractState, Commands, Unit>
VerifyLifecycle class VerifyLifecycle<S : ContractState, C : CommandData, T : Any, P> : ConcreteClause<S, C, T>

Obligation-specific clause for verifying that all states are in normal lifecycle. In a group clause set, this must be run after any lifecycle change clause, which is the only clause that involve non-standard lifecycle states on input/output.