Daml.Finance.Holding - Changelog¶
Version 3.0.0¶
- Update of SDK version and dependencies.
- Added an id : Id field to the Factory.
- Replaced all factories by a single Factory for all holding implementations.
- Added an assert that the custodian remains the same for both the sending and receiving accounts.
- Removed the consistence check that credited and debited holdings must have the same templateTypeRep. They now need to have the same HoldingStandard (but can have different implementations).
- Added a Fungible implementation, and renamed the NonTransferable and Fungible implementations to BaseHolding and TransferableFungible, respectively.
- The holding implementations newly ensure that the desired HoldingStandard is met.
- The locking logic was factored out to a separate Lockable interface (within the Daml.Finance.Interface.Util package), and the acquireImpl and releaseImpl utility functions moved to the Lockable module in the Daml.Finance.Util implementation package.
- The Transfer, Split, Merge, and Debit actions on holdings are prohibited in a locked state, requiring them to be unlocked first. Notably, the type signatures for splitImpl and mergeImpl have been modified, and the re-entrant lock logic of transferImpl removed.
- Renamed the F type synonym to T.
Version 2.0.0¶
- Update of SDK version and dependencies.
- Remove implementation of Remove choice from factory templates.
- Added default splitImpl and mergeImpl for Fungible to Util.daml.
- Generalized the acquireImpl and releaseImpl to not rely on an attribute called “lock”.
- Make use of the requires keyword to enforce the interface hierarchy (in particular the asDisclosure, asBase, and asTransferable implementations were removed).
- The Transfer choice of the Transferable interface now includes the new owner as a choice observer.
- Implementation of Lockable does not allow an empty lockers set.
Version 1.0.2¶
- Dependencies update.
Version 1.0.1¶
- Fix bug in the implementation of Fungible.Merge.
- Improve error message when acquiring a lock.