Hi Finance team!
Suppose we have a batch and a list of instructions. What is the best way to cancel them all?
So if one party wants to cancel, what can it do? Archive the Instruction. Who will archive others? And who archives the batch?
Thanks!
Victor
2 Likes
Hi Victor,
In the current implementation, the individuals or entities who sign the Batch
, known as the requestors
, have the ability to use the consuming Cancel
choice of the Batch
to cancel all associated Instruction
s.
It’s important to note that the requestors
could be a variety of parties, such as the {buyer, seller}
of a trade or a third-party like a trade registration party. However, it is generally not desirable for a single trading party, such as the buyer
, to unilaterally be able to cancel a trade (as the Batch
and its Instruction
s generally represent an obligation to settle). Instead, if a single trading party wishes to cancel a trade, it could be handled with a separate “propose-accept” workflow which gathers sufficient authorization to cancel.
Furthermore, while it’s possible for the requestors
to Cancel
each Instruction
individually and then archive the Batch
, the Cancel
choice of the Batch
does so atomically.
I hope that helps.
Johan
1 Like
Thanks for the answer, Johan. It helps a lot!
But what if I have Instructions
where requestors
are not taking action? Routed Steps case. Alice sends tokens to Bob through a chain:
Alice → AliceBank → CentralBank → BobBank → Bob
I have an instruction (AliceBank-BobBank leg) where the sender
and receiver
are not in the requestors
. How can I effectively cancel the transfer from their perspective? For example, AliceBank rejects allocation and wants to stop the transfer.
Thanks!
Victor
1 Like
If any Instruction
in the Batch
is either not approved or not allocated, the settlement of the Batch
will fail. Therefore, if AliceBank
leaves their Instruction
s unapproved or unallocated, the transfer will not take place. Currently, the only way to indicate rejection is by leaving the corresponding instructions unapproved or unallocated.
For the particular case where AliceBank
should be able to reject acting as an intermediary for a particular transfer (after the batch has been instantiated), it may be necessary to implement a separate workflow initiated by AliceBank
which requests that the requestors
amend the route or cancel the entire Batch
(including its Instructions).
1 Like