T3294
We explored creating our own `ecash-coinselect` library, but quickly ran into complications.
IThis diff implementts the existing coinselect library in limited case where it requires no modificationa refactored function to send eCash to one address with no OP_RETURN.
The existing coinselect library may end up supporting all tx cases, provided OP_RETURN can be passed correctly. If this is impractical, `coinselect` can be forked to `ecash-coinselect`, modifying where needed, instead of building new from the ground-up. This is already a sophisticated and well-tested library (https://www.npmjs.com/package/coinselect).
This diff is a starting point for cleaning technical debt in Cashtab related to the organization and unit testing of transaction building functions.
This diff:
1. Creates a new `transactions` directory to hold functions, fixtures, and unit tests related to creating and broadcasting ecash transactions.
2. Creates a streamlined function that implements coinselect to create minimum-fee eCash txs for sending to one address without OP_RETURN (vast majority of Cashtab txs)
3. The existing functions and unit tests need to be refactoredImplements this function
Using a single `transaction.fixtures.js` file to hold fixtures dramatically simplifies the current approach (importing mocks from dozens of files). CBecause Cashtab creating a newes many types of transactions and better organized directorythe existing functions are unit tested and work, then adding to it incrementally,this implementation should be phased in. is the best way to start making progress on this larger taskLegacy functions may be deprecated as they are obsoleted by improved and refactored functions.