Expand description
Allocations: reserving holdings now so a third party can settle later.
A transfer moves an asset between two parties. An allocation is what a settlement needs instead: the sender commits holdings to one leg of a settlement, and an executor — neither sender nor receiver — settles it afterwards. That is what makes delivery-versus-payment expressible, since both legs can be allocated before either moves.
It follows the same two steps as a transfer, and for the same reason: the factory is the registry’s contract and only the registry knows what the choice needs.
Once an allocation exists, the choices on it — execute, withdraw, cancel — each need a context of their own, and it is fetched per choice. The standard is explicit that a context must not be reused across choices.
Functions§
- allocate
- Resolve the allocation factory and build the exercise that allocates
allocation. - cancel
- Build the exercise that cancels an allocation.
- execute_
transfer - Build the exercise that settles an allocation’s transfer.
- withdraw
- Build the exercise that withdraws an allocation, releasing the holdings.