We could address this in Horizon by adding a link from a CB to the Transaction that created it. This would simplify use without expanding the functionality and wouldn't require any changes to Core.
>2. Allow for ability of Source account to reclaim the balance before it is picked up by the claimant - either with a flag on the balance(allow_reclaim=true), or implied. Right now this is done by adding source account as an additional claimant, but it seems like a confusing workaround, and adds unnecessary data into the ledger.
The creator of the CB is not actually stored on the claimable balance in the ledger in any field so to add it would increase ledger space used. The sponsor is stored, but that may not be the creator/sender of the CB if a third party is sponsoring the ledger entry. This is another example of why Horizon needs to include the creating/sending account in its API. It is not intuitive that the sponsor is not always the creator/sender, and it is not trivial to find out who the creator/sender is. This change would make CB less useful in agreements or contracts where the sender is intending to guarantee the claimant can claim the CB for a period of time. A sender may wish to guarantee to the claimant that for 2 days the claimant is the only person who can claim the CB.
In summary, I think if the following things were implemented, they would address these problems, without needing to add a new operation, and without adding memo directly to CB.
- Horizon had the creating transaction of a CB as a field and/or link on the CB API responses.
- Horizon had the creator/sender of a CB as a field and/or link on the CB API responses.
- Any operation could be given their own memo.