Try providing a helper interface to encourage enforcing LinearState rules
Fixup after rebase
Change to using Clauses for verifying LinearState standard properties
Fix whitespace change
Tidy up ClauseVerifier after PR comments
Change from SecureHash to a TradeIdentifier class
Change TradeIdentifier to UniqueIdentifier
Changes include:
- LedgerTransaction is now much more central: it represents a fully resolved and looked-up tx, with the inputs available.
- TransactionGroup and TransactionForVerification are gone. There is a temporary TransactionForContract class for backwards
compatibility but it will also be gone soon.
- ResolveTransactionsProtocol is simplified, and now commits a tx to the database as soon as it's determined to be valid.
- ServiceHub is now passed in more consistently to verification code, so we can use more services in future more easily e.g. a sandboxing service.
- A variety of APIs have been tweaked or documented better.
* Rename AggregateCommands to IssuanceCommands
* Reorder comparisons to be consistent
* Rename verifyDefaultCommand to verifySetLifecycleCommand
* Rename currency to issued/product
* Add note about needing to rethink timestamping
* Rename issuer to obligor, and owner to beneficiary
* Move lifecycle inversion code into SetLifecycle command
* Correct comments regarding cash states
* Rework description of contractHash parameter
* Fixes 'netting equal balances due between parties', and add further netting tests
* Separate calculations involving issued products and the underlying product
* Use signed transactions in obligation tests
* Add verification tests for changing lifecycle
Add a new Obligation contract, modelling an obligation to send an amount
of something (currently limited to cash) by some future point. Obligation
contracts introduce the concept of one contract being aware of other
contracts, and common interfaces for state objects so other contracts can
interpret them meaningfully.