[Cashtab] [Alias] pt 6.4 - Update getAliases() to extract both alias and address
Summary:
T2551
Depends on D13049
This diff refactors getAliases() into getAliasAndAddresses() which will now return an array of objects containing both alias name and its corresponding address.
Related functions in chronik.js and useWallet.js have been updated to reflect the new alias caching structure of
aliases: [{alias: 'foo', address: 'ecash:qrjr23zzzz'}...] instead of the previous [aliasString1, aliasString2...]
Similar to the replyAddress function, it assumes the first hash160 in input[0].outputScript will always be the address broadcasting the registration transaction.
Alias unit tests across the board updated to reflect the new alias cache object.
[Cashtab] [Alias] pt 1 - Create scaffold for new Identity component
[Cashtab] [Alias] pt 2 - Upgrade sendXec() to handle alias registration
[Cashtab] [Alias] pt 3 - Implement isAliasAvailable function
[Cashtab] [Alias] pt 4 - Implement isAddressRegistered function
[Cashtab] [Alias] pt 5 - Implement getAddressFromAlias function
[Cashtab] [Alias] pt 6.1 - Get latest alias tx count from payment address
[Cashtab] [Alias] pt 6.1.1 - Apply Promise.All approach for alias history retrieval
[Cashtab] [Alias] pt 6.2 - Implement getAliasesFromLocalForage
[Cashtab] [Alias] pt 6.3 - Implement updateAliases
[Cashtab] [Alias] pt 6.4 - Update getAliases() to extract both alias and address
[Cashtab] [Alias] pt 6.5 - Optimize getAllTxHistory to only make API calls for uncached tx history pages
[Cashtab] [Alias] pt 6.6 - Deprecate caching related mocks, @TODOs and reviewer logs
[Cashtab] [Alias] pt 7 - Mitigate edge cases for registration records
[Cashtab] [Alias] pt 8 - Enable alias lookup for Send XEC component
[Cashtab] [Alias] pt 9 - Enable alias lookup for Send Token component
[Cashtab] [Alias] pt 10 - Upgrade tx history to recognize alias registration txs
[Cashtab] [Alias] pt 11 - Set final registration fees and remove residual dev logs
Test Plan:
- npm test
- npm start
- navigate to the Alias page
- if cached totalPaymentTxCount is out of sync with the onchain count, ensure app still triggers the refresh process and the logs show a list of validated aliases and their addresses matching what is onchain
- attempt to register an existing alias and observe the duplicate alias error is still displayed and registration is not broadcasted
- revisit the Alias page and observe the totalPaymentTxCount is in sync via the logs and no refresh process is triggered
- register a new alias, revisit the Alias page, and observe totalPaymentTxCount is out of sync and the refresh process is triggered again
- revisit the Alias page yet again, observe your new alias is displayed in the logs and totalPaymentTxCount is back in sync
- switch to a new address and observe totalPaymentTxCount is still in sync since this cache is available app-wide
Reviewers: bytesofman, #bitcoin_abc
Reviewed By: bytesofman, #bitcoin_abc
Differential Revision: https://reviews.bitcoinabc.org/D13065