interface GroupClause<S : ContractState, T : Any> : Clause, GroupVerify<S, T>| ifMatched |
abstract val ifMatched: MatchBehaviourBehaviour if this clause is not matches |
| ifNotMatched |
abstract val ifNotMatched: MatchBehaviourBehaviour if this clause is matched |
| requiredCommands |
abstract val requiredCommands: Set<Class<out CommandData>>Classes for commands which must ALL be present in transaction for this clause to be triggered |
| AbstractConserveAmount |
abstract class AbstractConserveAmount<S : FungibleAsset<T>, T : Any> : GroupClause<S, 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. |
| AbstractGroupClause |
abstract class AbstractGroupClause : GroupClause<State, Issued<Terms>> |
| AbstractIRSClause |
abstract class AbstractIRSClause : GroupClause<State, String>Common superclass for IRS contract clauses, which defines behaviour on match/no-match, and provides helper functions for the clauses. |
| AbstractIssue |
abstract class AbstractIssue<S : ContractState, T : Any> : GroupClause<S, Issued<T>>Standard issue clause for contracts that issue fungible assets. |
| NoZeroSizedOutputs |
open class NoZeroSizedOutputs<S : FungibleAsset<T>, T : Any> : GroupClause<S, Issued<T>>Clause for fungible asset contracts, which enforces that no output state should have a balance of zero. |
| SetLifecycle |
class SetLifecycle<P> : GroupClause<State<P>, Issued<Terms<P>>>Obligation-specific clause for changing the lifecycle of one or more states. |
| Settle |
class Settle<P> : GroupClause<State<P>, Issued<Terms<P>>>Obligation-specific clause for settling an outstanding obligation by witnessing change of ownership of other states to fulfil |
| VerifyLifecycle |
class VerifyLifecycle<P> : SingleClause, GroupClause<State<P>, Issued<Terms<P>>>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. |