Splice.Testing.Apps.TradingApp
An example of how to build an OTC trading app for multi-leg standard token trades.
Used as part of the testing infrastructure to test the DvP workflows based on the token standard.
Templates
template OTCTrade
Signatory: venue, tradingParties transferLegs
Field
Type
Description
venue
transferLegs
TextMap TransferLeg
tradeCid
createdAt
prepareUntil
settleBefore
Choice Archive
Controller: venue, tradingParties transferLegs
Returns: ()
(no fields)
Choice OTCTrade_Cancel
Controller: venue
Returns: TextMap (Optional Allocation_CancelResult)
Field
Type
Description
allocationsWithContext
TextMap (ContractId Allocation, ExtraArgs)
Choice OTCTrade_Settle
Controller: venue
Returns: TextMap Allocation_ExecuteTransferResult
Field
Type
Description
allocationsWithContext
TextMap (ContractId Allocation, ExtraArgs)
interface instance AllocationRequest for OTCTrade
template OTCTradeProposal
Signatory: approvers
Field
Type
Description
venue
tradeCid
transferLegs
TextMap TransferLeg
approvers
[Party]
Parties that have approved the proposal
Choice Archive
Controller: approvers
Returns: ()
(no fields)
Choice OTCTradeProposal_Accept
Controller: approver
Returns: ContractId OTCTradeProposal
Field
Type
Description
approver
Choice OTCTradeProposal_InitiateSettlement
Controller: venue
Returns: ContractId OTCTrade
Field
Type
Description
prepareUntil
settleBefore
Choice OTCTradeProposal_Reject
Controller: trader
Returns: ()
Field
Type
Description
trader
Functions
- tradeAllocations
: SettlementInfo -> TextMap TransferLeg -> TextMap AllocationSpecification
- require
: CanAssert m => Text -> Bool -> m ()
Check whether a required condition is true. If it’s not, abort the transaction with a message saying that the requirement was not met.
- makeTradeRef
: ContractId OTCTradeProposal -> Reference
- forTextMapWithKey
: Applicative f => TextMap a -> (Text -> a -> f b) -> f (TextMap b)
Comments