public class ObligationUtils
public static ObligationUtils INSTANCE
@JvmStatic public static void generateCashIssue(@NotNull TransactionBuilder tx, @NotNull AbstractParty obligor, @NotNull SecureHash acceptableContract, @NotNull Amount<net.corda.core.contracts.Issued> amount, @NotNull java.time.Instant dueBefore, @NotNull AbstractParty beneficiary, @NotNull Party notary)
Puts together an issuance transaction for the specified currency obligation amount that starts out being owned by the given pubkey.
tx
- transaction builder to add states and commands to.obligor
- the party who is expected to pay some currency amount to fulfil the obligation (also the owner ofthe obligation).amount
- currency amount the obligor is expected to pay.dueBefore
- the date on which the obligation is due. The default time tolerance is used (currently this is30 seconds).beneficiary
- the party the obligor is expected to pay.notary
- the notary for this transaction's outputs.@NotNull public <P> java.util.Set<java.security.PublicKey> generateIssue(@NotNull TransactionBuilder tx, @NotNull AbstractParty obligor, @NotNull net.corda.finance.contracts.asset.Obligation.Terms<P> issuanceDef, long pennies, @NotNull AbstractParty beneficiary, @NotNull Party notary)
Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.
tx
- transaction builder to add states and commands to.obligor
- the party who is expected to pay some amount to fulfil the obligation.issuanceDef
- the terms of the obligation, including which contracts and underlying assets are acceptableforms of payment.pennies
- the quantity of the asset (in the smallest normal unit of measurement) owed.beneficiary
- the party the obligor is expected to pay.notary
- the notary for this transaction's outputs.@JvmStatic public static <P> void generateCloseOutNetting(@NotNull TransactionBuilder tx, @NotNull AbstractParty signer, @NotNull net.corda.core.contracts.StateAndRef... inputs)
Generate a transaction performing close-out netting of two or more states.
signer
- the party which will sign the transaction. Must be one of the obligor or beneficiary.inputs
- two or more states, which must be compatible for bilateral netting (same issuance definitions,and same parties involved).@JvmStatic public static <P> void generatePaymentNetting(@NotNull TransactionBuilder tx, @NotNull Issued<net.corda.finance.contracts.asset.Obligation.Terms> issued, @NotNull Party notary, @NotNull net.corda.core.contracts.StateAndRef... inputs)
@JvmStatic public static <P> void generateSetLifecycle(@NotNull TransactionBuilder tx, @NotNull java.util.List<net.corda.core.contracts.StateAndRef> statesAndRefs, @NotNull net.corda.finance.contracts.asset.Obligation.Lifecycle lifecycle, @NotNull Party notary)
Generate a transaction changing the lifecycle of one or more state objects.
statesAndRefs
- a list of state objects, which MUST all have the same issuance definition. This avoidspotential complications arising from different deadlines applying to different states.@JvmStatic public static <P> void generateSettle(@NotNull TransactionBuilder tx, @NotNull java.lang.Iterable<net.corda.core.contracts.StateAndRef> statesAndRefs, @NotNull java.lang.Iterable<? extends net.corda.core.contracts.StateAndRef<? extends net.corda.core.contracts.FungibleAsset<P>>> assetStatesAndRefs, @NotNull MoveCommand moveCommand, @NotNull Party notary)
statesAndRefs
- a list of state objects, which MUST all have the same aggregate state. This is done asonly a single settlement command can be present in a transaction, to avoid potential problems with allocatingassets to different obligation issuances.assetStatesAndRefs
- a list of fungible asset state objects, which MUST all be of the same issued product.It is strongly encouraged that these all have the same beneficiary.moveCommand
- the command used to move the asset state objects to their new owner.@JvmStatic @NotNull public static <P> java.util.Set<java.security.PublicKey> generateExit(@NotNull TransactionBuilder tx, @NotNull Amount<net.corda.core.contracts.Issued> amountIssued, @NotNull java.util.List<net.corda.core.contracts.StateAndRef> assetStates)
Generate an transaction exiting an obligation from the ledger.
tx
- transaction builder to add states and commands to.amountIssued
- the amount to be exited, represented as a quantity of issued currency.assetStates
- the asset states to take funds from. No checks are done about ownership of these states, it isthe responsibility of the caller to check that they do not exit funds held by others.