Working alpha - supersedes D9570
This diff optimizes cashtab so that only changed utxos are "hydrated," that is, only changed utxos are processed with SLPDB to determine whether or not they are eTokens.
Cashtab currently checks all utxos every time something has changed. This is inefficient, but persisted for some time because
- Non-trivial array manipulation required to make this work
- Even with this optimization, Cashtab is slower than a mobile wallet. This can and will be fixed (tx processing should be instant). However the fix will involve a more significant refactor.
In testing, this reduces the wait time on receiving a new tx (or UI lock time on sending a new tx) by about 60%.
This diff is intended as info only. The actual implementation will be submitted in easier to review stacks, incrementally including each function and unit tests. Wanted to get this up to save the work.