[Cashtab] Deprecate multi-path utxo support
Summary:
The main advantage of strongly typed utxos from chronik-client is ... using the types. Cashtab though prepares and uses extended type utxos, with a path key, to support collecting and spending utxos from legacy paths.
This was preserved because it was thought such a feature could be useful for eventual HD support, even as wallets stopped being created with legacy paths.
Going forward, there is no reason for Cashtab to continue supporting multiple paths. This type of wallet logic should be handled by ecash-wallet, and we should use strict chronik types to get the full benefit of a strongly typed utxo lib.
This diff is part of an effort to simplify storage and typing in Cashtab as preparation for implementing ecash-wallet instead of Cashtab's customized wallet methods.
While this is ... technically a breaking change, the only potentially impacted users are those who created a wallet ~4 years ago and never spent anything, or those who may still have a mint baton from an SLP token created with such a wallet ~4 years ago. Since this impact is expected to be trivial, I do not think it is worth developing app-level handling for migration. Impacted users, if any, could be guided through a scripted migration.
At the app level, this has been prepared for years with
- All change from all txs going to Path1899 for years
- All new wallets created with only Path1899 for years
Test Plan:
npm test
grep -r "path: " src/ ; we do get some results still, but only in wallet mocks where we still have the possibility of multiple paths in legacy wallets, no results for utxos
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Subscribers: Fabien
Differential Revision: https://reviews.bitcoinabc.org/D18648