com.r3corda.contracts.clause / AbstractIssue

# AbstractIssue

`abstract class AbstractIssue<S : ContractState, T : Any> : GroupClause<S, Issued<T>>`

Standard issue clause for contracts that issue fungible assets.

### Parameters

`S` - the type of contract state which is being issued.
`T` - the token underlying the issued state.
`sum` - function to convert a list of states into an amount of the token. Must error if there are no states in the list.
`sumOrZero` - function to convert a list of states into an amount of the token, and returns zero if there are no states in the list. Takes in an instance of the token definition for constructing the zero amount if needed.

### Constructors

<init> | `AbstractIssue(sum: List<S>.() -> Amount<Issued<T>>, sumOrZero: List<S>.(Issued<T>) -> Amount<Issued<T>>)` Standard issue clause for contracts that issue fungible assets.

### Properties

ifMatched | `open val ifMatched: MatchBehaviour` Behaviour if this clause is not matches
ifNotMatched | `open val ifNotMatched: MatchBehaviour` Behaviour if this clause is matched
sum | `val sum: List<S>.() -> Amount<Issued<T>>`
sumOrZero | `val sumOrZero: List<S>.(Issued<T>) -> Amount<Issued<T>>`

### Functions

verify | `open fun verify(tx: TransactionForContract, inputs: List<S>, outputs: List<S>, commands: Collection<AuthenticatedObject<CommandData>>, token: Issued<T>): Set<CommandData>`

### Inheritors

Issue | `class Issue : AbstractIssue<State, Currency>`
Issue | `class Issue<P> : AbstractIssue<State<P>, Terms<P>>` Generic issuance clause
Issue | `class Issue : AbstractIssue<State, Terms>`