Implement AbstractLedger using Indigo
Clarification and motivation
In order to showcase Indigo we should fully implement some contract using it. It should be something non-trivial, but can be something small. I propose to start with AbstractLedger
, it's probably the smallest Lorentz contract that we currrently have and it is basis for our other contracts: ManagedLedger
and some private contracts for our customers. So later we'll be able to expand it to ManagedLedger
and further.
Currently Indigo lacks some features that we need to implement AbstractLedger
. At the very least we need:
We may discover that we need some other features as well.
We can work on this issue in multiple steps:
- Implement
transfer
first, presumably Indigo already has everything we need for that. - Implement getters when TM-222 is done.
- Implement top-level
case
when TM-223 is done.
Also I propose to do a part of TM-309 before that: move abstract ledger and managed ledger into their own package. This way we won't have to add indigo
dependency to lorentz-contracts
(or rename it to indigo-contracts
).
Acceptance criteria
AbstractLedger
contract should be implemented using Indigo and there should be only one call which converts it to Lorentz/Michelson/whatever.