-
Notifications
You must be signed in to change notification settings - Fork 985
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DO NOT SQUASH Meta wallet transaction history #8228
Conversation
Pull Request Checklist
|
8d41cbb
to
4593918
Compare
Jenkins BuildsClick to see older builds (86)
|
cabc51c
to
c10b790
Compare
0bb2b84
to
60caa4c
Compare
a395be0
to
5279a68
Compare
98% of end-end tests have passed
Failed tests (1)Click to expand
Passed tests (48)Click to expand |
Great work! I had a quick look; these are some observations.
|
@flexsurfer pls pls tag me for a PR review whenever you're doing UI work 🙏
|
what has changed:
|
Perfect. So wallet update = new tx received, missed block. Would not want to see tokens I had removed reappear in that case. What about when I update Status though? Will it autodetect all tokens then? |
can you file a bug for that describing the expected behavior? I will fix it in a next PR, this is already a bug in develop atm.
|
100% of end-end tests have passed
Passed tests (49)Click to expand |
@annadanchenko is it ok to merge now? |
yes, thanks for waiting! |
- removes fetching of last 100000 blocks of token transfers from the wallet pull loop - fetches the last 100000 blocks of token transfers at startup - replaces pulling by subscriptions to ethlogs for token transfers
- remove the transaction fetching loop entirely to rely only on subscription for live transactions and token transfer updates - fetch token transfers history via etherscan API to lift the 100000 blocks limit on token transfers history - inbound token transfers are catched via a filter on ethlogs - outbound token transfers and other transactions are catched by filtering transaction in current block that have the wallet address as to or from field
fd81b83
to
5cd7b0c
Compare
`wallet-autoconfig-token` is a very expensive call on mainnet because it checks the balance of every known token. it is called: - when wallet is refreshed by pulling - when user goes on any wallet screen this PR changes that by: - calling it only when the wallet is initialized and there is no visible-token configuration it only calls update-wallet when a new transaction arrives
- introduce json-rpc namespace, which provides `call` and `eth-call`, a generic way of calling a json-rpc method taking care of conversions and error handling - remove web3 usage from wallet - clean up effects, reducing the amount of computations when login in
- use `json-rpc/eth-call` and `json-rpc/eth-transaction-call` everywhere - move all conversions to abi-spec
5cd7b0c
to
4d5445d
Compare
- temporary fix before visible assets are fixed - the problem is that you can't hide an asset with the way it currently works, it will come back every time as long as there is a balance for it Signed-off-by: yenda <eric@status.im>
4d5445d
to
4103591
Compare
This PR is a compilation of the reviewed wallet PRs so that they can be tested at once
fixes #8151
#8184 Feature/token transaction signals
part of #8151
the wallet pull loop
#8221 Feature/transaction signals
for live transactions and token transfer updates
limit on token transfers history
transaction in the current block that have the wallet address as
to
orfrom
field#8224 Refactor/transaction details
#8230 Refactor transaction history
#8231 Improve wallet update performances
wallet-autoconfig-token
is a very expensive call on mainnet because it checks the balance of every known token. it is called:This PR changes that by:
#8232 Remove web3 and clean up wallet effects
call
andeth-call
,a generic way of calling a json-rpc method taking care of conversions
and error handling
#8233 Remove call-params usage
json-rpc/eth-call
andwallet/eth-transaction-call
everywhereThe goal of this PR is to unify the way we interact with contracts, so that future improvements can be made and impact all the callees.
json-rpc/eth-call
is for read only calls andwallet/eth-transaction-call
is for transnational calls.Testing
When testing it is important to compare to what the situation is in develop. If things are not perfect but still equal or slightly improved compare to develop, we should treat them as bugs that I will fix asap in separate PRs, but this one is already very big and sets up the basis for faster future improvements of the wallet by cleaning up all the crap.
I tested all of the following points on Android emulator and One Plus 5T over the different PR, I will test again once build is available for the global rebase and merge.
Areas to be tested for improvements:
Areas to be tested for regressions:
Bandwidth consumption
I made the following experiment on Android:
satoshi document engage inflict goddess auction rule unfair bid next buddy shy
status: ready