abstract class GroupClauseVerifier<S : ContractState, C : CommandData, K : Any> : Clause<ContractState, C, Unit>
<init> |
GroupClauseVerifier(clause: Clause<S, C, K>) |
clause |
val clause: Clause<S, C, K> |
requiredCommands |
open val requiredCommands: Set<Class<out CommandData>> Determine whether this clause runs or not |
getExecutionPath |
open fun getExecutionPath(commands: List<AuthenticatedObject<C>>): List<Clause<*, *, *>> Determine the subclauses which will be verified as a result of verifying this clause. |
groupStates |
abstract fun groupStates(tx: TransactionForContract): List<InOutGroup<S, K>> |
verify |
open fun verify(tx: TransactionForContract, inputs: List<ContractState>, outputs: List<ContractState>, commands: List<AuthenticatedObject<C>>, groupingKey: Unit?): Set<C> Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException if any matched. |
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. |
Group |
class Group : GroupClauseVerifier<State, Commands, Issued<Currency>> |
Group |
class Group : GroupClauseVerifier<State, Commands, Issued<Commodity>> Grouping clause to extract input and output states into matched groups and then run a set of clauses over each group. |
Group |
class Group<P> : GroupClauseVerifier<State<P>, Commands, Issued<Terms<P>>> Parent clause for clauses that operate on grouped states (those which are fungible). |
Group |
class Group : GroupClauseVerifier<State, Commands, Issued<Terms>> |
Group |
class Group : GroupClauseVerifier<State, Commands, UniqueIdentifier> |