Hello, this is John Antoniou, CTO of Temple Digital Group. I wanted to share our thoughts regarding Token Standard V2.
This update to the token standard makes the whole flow much better. We are currently using V1 for our CLOB product and there are many functionalities missing there, which forced us to utilize a delegation contract. The V2 changes solve these missing pieces and will make the need for our delegations obsolete.
More specifically, I would love to endorse this update for these specific additions:
1. The Iteration API allows us to have a much better housekeeping on our ACS as it will require only 1 allocation per user.
2. The ability to "grow" an allocation by adding more incoming legs, this allows our users to just grow their "deposited" trading funds without creating additional allocations (saves transactions, better for ACS)
3. The ability to "settle" allocation legs directly, without the need for external contracts. This makes the token standard sufficient for actually settling funds without confirmations on the hot path of the trade.
4. The ability to settle trades between more than 1 counterparty. This makes the settlements faster, saving transactions needed on V1, where we needed to do this per user pair.
5. The ability for the executor to unilaterally call the Cancel choice on allocations. Helps a lot with housekeeping, especially for expired (non-amulet) allocations.
6. The ability to authorize more than one party as executor. This helps a lot in certain situations, for example multiple validators for the same app, without using a multi-host party infra.
This is definitely in the right direction and, speaking on behalf of Temple Digital Group, it will make our product(s) much better and faster.
The only thing I still see missing, is for the executor to gain visibility on the underlying locked assets.
We have some cases where an AmuletAllocation is still active on ledger, but the underlying LockedAmulet has been removed. The V2 will let us handle this case by exercising Cancel on the allocation, without needing the user's authorization. But its still a handler after the fact.
If we could see this LockedAmulet getting archived on our /updates stream, we could handle this before getting an error from the Scan API's transfer context response, effectively allowing us to cancel such allocations before we try to use them.