Canonical way to find transfers for an account in Daml Finance

Hi @huw,

I agree that the current Transfer choice implementation does not fulfill your specific use case where Bob needs to see the payload of the incoming holding from Alice through the ledger API. I was thinking about a third solution which may better address your requirements:

Solution 3
Let the Custodian (for example) create a separate contract called ProxyTransfer for its clients, or specifically for Alice. This contract includes a choice for Alice to transfer holdings. The body of the proxy-transfer choice first adds Bob as an observer before the actual Transfer of the holding is made to Bob.

This solution is similar to Solution 1 ^^, but it separates the process of disclosing the holding (with its payload) from the Transfer choice of the holding. We are hesitant to include this logic directly within the Transfer choice because we understand that the requirement of seeing the payload (through the ledger API) may not always be necessary, especially when the incoming controllers for Bob’s account are empty.

Best,
Johan