[ecash-wallet, cashtab-faucet] Support arbitrary amount SLP burns with automated chained txs
Summary:
A number of desired eCash network actions require more than one transaction to fulfill. The job of ecash-wallet is to translate human-facing dev desires ("actions") into explicit network action. To do this, we will need to support some types of chained tx.
This support should be introduced incrementally as some chained txs will be more complex than others and most will require special dedicated logic.
In this diff we introduce chained txs for one of the easiest use cases: intentionally burning SLP tokens. To do this, we must prepare a utxo of the exact atoms we want to burn, and then burn that utxo.
Cashtab currently burns SLP tokens with "unintentional burns" i.e. a SEND tx where the outputs are less than the inputs. This is a cleaner way of doing it.
ALP allows intentional burns with change, so we do not add this type of chained TX support for ALP burns.
Breaking change as we no longer simply forward chronik's response from chronik-client broadcast() method. We need some more info to be useful for chained txs.
Test Plan: npm test, CI tests
Reviewers: #bitcoin_abc, tobias_ruck
Reviewed By: #bitcoin_abc, tobias_ruck
Subscribers: tobias_ruck, Fabien
Differential Revision: https://reviews.bitcoinabc.org/D18627