[Cashtab] Support agora partial listings, cancels, and buys
Summary:
Support for SLP partial agora offers (listing fungible SLP tokens)
This diff is large. I think I have split out everything that can be split out.
Reviewer notes
For practical purposes, it's best to review this diff in some component parts. It's not practical to stack the diff into these parts, as these things need to happen at the same time (i.e. a user needs to be able to list, buy, and cancel an offer as soon as we launch support for this feature).
- Addition of a new screen, Agora, and its navigation / icon (see assets/doge.svg, components/App/App.js, App.test.js, components/Common/CustomIcons.js)
- Changes to the Token screen, where users can now create Agora offers to sell their tokens (see components/Etokens/Token/index.js and tests)
- Associated validation functions for agora partial offer creation in validation/index.js and tests
- The Agora screen, where users can see active offers and cancel their own offers (see components/Agora/index.js, components/Agora/OrderBook.js, and tests in same dir
- new formatting functions in formatting.js
Test Plan:
npm test (new integration tests cover expected behavior or listing, buying, and canceling agora offers; as well as validation)
ping me on telegram for the test URL, make some offers, cancel some offers, partial accept offers, full accept offers, note any UX complaints for future, note any UX complaints that are MVP-critical
Reviewers: #bitcoin_abc, emack
Reviewed By: #bitcoin_abc, emack
Subscribers: emack
Differential Revision: https://reviews.bitcoinabc.org/D16846