Splice.Api.Token.AllocationRequestV1
This module defines the interface for an AllocationRequest
, which is an interface that can
be implemented by an app to request specific allocations from their users
for the purpose of settling a DvP or a payment as part of an app’s workflow.
Interfaces
interface AllocationRequest
A request by an app for allocations to be created to enable the execution of a settlement.
Apps are free to use a single request spanning all senders or one request per sender.
viewtype AllocationRequestView
Choice AllocationRequest_Reject
Reject an allocation request.
Implementations SHOULD allow any sender of a transfer leg to reject the allocation request, and thereby signal that they are definitely not going to create a matching allocation for the settlement.
Controller: actor
Returns: ChoiceExecutionMetadata
Field
Type
Description
actor
The party rejecting the allocation request.
extraArgs
ExtraArgs
Additional context required in order to exercise the choice.
Choice AllocationRequest_Withdraw
Withdraw an allocation request as the executor.
Used by executors to withdraw the allocation request if they are unable to execute it; e.g., because a trade has been cancelled.
Controller: (DA.Internal.Record.getField @"executor" (DA.Internal.Record.getField @"settlement" (view this)))
Returns: ChoiceExecutionMetadata
Field
Type
Description
extraArgs
ExtraArgs
Additional context required in order to exercise the choice.
Choice Archive
Controller: Signatories of implementing template
Returns: ()
(no fields)
Method allocationRequest_RejectImpl : ContractId AllocationRequest -> AllocationRequest_Reject -> Update ChoiceExecutionMetadata
Method allocationRequest_WithdrawImpl : ContractId AllocationRequest -> AllocationRequest_Withdraw -> Update ChoiceExecutionMetadata
Data Types
View of
AllocationRequest
.Implementations SHOULD make sure that at least all senders of the transfer legs are observers of the implementing contract, so that their wallet can show the request to them.
Field
Type
Description
settlement
SettlementInfo
Settlement for which the assets are requested to be allocated.
transferLegs
TextMap TransferLeg
Transfer legs that are requested to be allocated for the execution of the settlement keyed by their identifier. This may or may not be a complete list of transfer legs that are part of the settlement, depending on the confidentiality requirements of the app.
meta
Metadata
Additional metadata specific to the allocation request, used for extensibility.
instance Eq AllocationRequestView
instance Show AllocationRequestView
instance HasFromAnyView AllocationRequest AllocationRequestView
instance HasInterfaceView AllocationRequest AllocationRequestView
instance GetField "meta" AllocationRequestView Metadata
instance GetField "settlement" AllocationRequestView SettlementInfo
instance GetField "transferLegs" AllocationRequestView (TextMap TransferLeg)
instance SetField "meta" AllocationRequestView Metadata
instance SetField "settlement" AllocationRequestView SettlementInfo
instance SetField "transferLegs" AllocationRequestView (TextMap TransferLeg)
Functions
- allocationRequest_RejectImpl
: AllocationRequest -> ContractId AllocationRequest -> AllocationRequest_Reject -> Update ChoiceExecutionMetadata
- allocationRequest_WithdrawImpl
: AllocationRequest -> ContractId AllocationRequest -> AllocationRequest_Withdraw -> Update ChoiceExecutionMetadata
Comments