leather-io / extension

Leather browser extension
https://leather.io
MIT License
290 stars 139 forks source link

Make sure recent activity loads even when the transaction is send from another wallet. #4976

Open 314159265359879 opened 5 months ago

314159265359879 commented 5 months ago

Original report _It is possible to use a different app to make a transaction. Even when it is the same on-chain wallet, it does not get reflected in the Leather browser extension’s activity. Perhaps the extension could periodically check api.hiro.so/extended/v1/address API and, if the “total” does not match what’s in the extension, it can go collect the missing transactions. Then, any app can be used to make a transaction and the Leather/Hiro extension can still reflect that transaction. Here is an example. I made a CC NYC mine-many call from my iPhone using the XVerse app. When I tried to check it later in the Leather browser extension to determine what first/last end blocks were used, the transaction was not listed in my activity. I had to use the above API call to find the txid to go look up the transaction. It was quite disconcerting to look at my activity and not see the transaction. I wondered what happened to it and if it had somehow failed or disappeared. Having all transactions appear in the activity list would be very helpful.

I noticed a similar thing using just the Leather wallet but as I switched between accounts, for a while the data from the other account was still displayed in the activity tab or the latest transactions were not displayed. I suspected this was caused by hitting a rate limit.

Were there any recent changes to loading this?

If you encounter this please try opening Leather in a new tab (via the top right menu) and reload the page "with Ctrl+F5" to also clear cache/memory.

Retesting this by sending STX with Xverse the transaction pops up in Leather seconds after it is transmitted image

314159265359879 commented 5 months ago

Seeing some more issues, I am starting to think this issue was an effect of the user hitting an API limit and being temporarily blocked from making new requests (429 errors).