T2551
Depends on D13025
This diff implements the logic in Alias.js to detect when the cached totalPaymentTxCount is out of sync with the onchain count, and then proceeds to refresh the caching object in localForage via updateAliases.
Key considerations
- updateAliases takes in a previously retrieved aliasPaymentTxHistory from the initial loading of Alias.js, hence does not need to make any further API calls.
- Since aliasPaymentTxHistory is retrieved up front, the totalPaymentTxCount figure is simply calculated via aliasPaymentTxHistory.length with no further API calls.
- In order to generate the final form of the alias cache object where aliases is an array of both alias and addresses, I will need to update getAliases() to extract both alias and addresses. Due to its complexity this is planned separately as part 6.4, coming up next.
- Part 6.5 will optimize getAllTxHistory to only make API calls for uncached history pages as per feedback.
Updated diff stack
[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