fun verify(tx: TransactionForContract, inputs: List<ContractState>, outputs: List<ContractState>, commands: List<AuthenticatedObject<CommandData>>, groupingKey: Unit?): Set<CommandData>
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.
tx
- the full transaction being verified. This is provided for cases where clauses need to access
states or commands outside of their normal scope.inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause,
but may be further reduced by clauses such as GroupClauseVerifier.outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause,
but may be further reduced by clauses such as GroupClauseVerifier.commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause,
but may be further reduced by clauses such as GroupClauseVerifier.groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
TransactionForContract.InOutGroup.Return
the set of commands that are consumed IF this clause is matched, and cannot be used to match a
later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
verify() functions may do further filtering on possible matches, and return a subset. This may also include
commands that were not required (for example the Exit command for fungible assets is optional).