See D11039 for a working alpha of the end goal of this series of diffs.
X Add function isExcludedUtxo with unit tests (determines if a given utxo is in an array of utxos)
_ Add function whichUtxosWereAdded with unit tests
_ Add function whichUtxosWereRemoved with unit tests
_ Add function addNewHydratedUtxos with unit tests
_ Add function removeConsumedUtxos with unit tests
_ Add function validateIncrementedHydratedUtxoDetails with unit tests
_ Using the above functions, modify the update function in useBCH.js to only hydrate (that is, collect eToken info about) the utxos that changed since the last time update ran
_ Reduce the interval between calls to update, speeding up Cashtab refresh rate
Current state of Cashtab:
hydratedUtxoDetails is recreated each time the utxo set changes. This requires a series of slow API calls to SLPDB.
Cashtab after this series of diffs lands:
Only new incoming utxos are parsed by API calls to SLPDB. These are added to hydratedUtxoDetails. Consumed utxos are removed. The resulting hydratedUtxoDetails is then validated to ensure it includes all utxos in the wallet. In testing, this reduces Cashtab UI locktime after sending a tx by about 60%.