Ivan Belyakov
4e51b5ba24
feat(wallet)_: more fixes for rpc_limiter_db and chain client, more
...
tests
2024-05-28 13:44:40 +02:00
Ivan Belyakov
cec11e9313
feat(wallet)_: Fixed account limit period for history to infinite instead of per day
...
Fix rpc stats doubling.
Add test for infinite limit
2024-05-28 13:44:40 +02:00
Ivan Belyakov
ce773b69ce
feat(wallet)_: fixed lint issues. Fixed rpc stats to include tagged
...
requests
2024-05-28 13:44:40 +02:00
Ivan Belyakov
725fef8f24
feat(wallet)_: implemented storing RPC requests in sql table
...
Fixed some tests and minor issues
2024-05-28 13:44:40 +02:00
Ivan Belyakov
cdf80b5300
feat(wallet)_: added group tag for RPC chain client
...
It is needed to be able to set common limits for chain client
Added a test for group tag limiter
Added a mutex to RPC limiter to change counters atomically
Replaced isConnected with atomic.Bool and made it a pointer to
be shared across client instances
2024-05-28 13:44:40 +02:00
Ivan Belyakov
bf7aabfa3e
feat(wallet)_: renamed some methods for clarity
2024-05-28 13:44:40 +02:00
Ivan Belyakov
9fe87657d6
feat(wallet)_: added and fixed tests for findBlocksCommand with limiter.
2024-05-28 13:44:40 +02:00
Ivan Belyakov
78f05f60b2
feat(wallet)_: add limiter to rpc.client
...
Add tests for limiter
Use limiter for transfer history commands
2024-05-28 13:44:40 +02:00
Ivan Belyakov
4a1f751ced
feat(wallet)_: Implemented RPC limiter interface
...
Split ClientInterface to aggregation of multiple interfaces
Added tags to RPC stats API
Use tagged RPC client for transfers commands
Implemented general interface for RPC limiting
2024-05-28 13:44:40 +02:00
Ivan Belyakov
224103d036
fix(wallet): crash on access nil block
2024-03-18 10:56:19 +01:00
Roman Volosovskyi
2be9bfc304
Fix balances cache ( #4890 )
2024-03-11 14:48:40 +01:00
Roman Volosovskyi
6f753617de
[ #4774 ] Use findNewBlocksCommand for checking recent history ( #4795 )
2024-03-07 15:51:21 +01:00
Roman Volosovskyi
cc708ce0ce
[ #4690 ] Nilable block range values for proper ranges management ( #4691 )
2024-02-19 16:50:07 +01:00
Roman Volosovskyi
9e36df449e
Fix range for ERC20/1155/721 tx detection ( #4746 )
2024-02-19 11:50:03 +01:00
Roman Volosovskyi
005e7e6ee4
Fix nonce change detection ( #4679 )
2024-02-08 12:54:04 +01:00
Roman Volosovskyi
d5a10a97f1
[ #4646 ] Return l2 block number when calling BalanceChecker on Arbitrum ( #4668 )
2024-02-02 12:52:52 +01:00
Roman Volosovskyi
241595a871
[ #4649 ] Do not restart reactor when it is already running ( #4663 )
2024-02-01 17:26:40 +01:00
Roman Volosovskyi
dad2ec3f66
[ #4640 ] Temporary fetch l2 block number for Arbitrum networks separately from BalanceChecker ( #4644 )
2024-01-30 10:09:44 +01:00
Ivan Belyakov
f6c219c839
fix(wallet): Made loadBlocksAndTransfers command FiniteCommand to
...
keep restarting on error non-stop, removed some tests accordingly.
Fixed a flaky test for loadBlocksAndTransfers command.
Added tests for async.AtomicGroup.
Made tranfersCommand FiniteCommandWithErrorCounter to prevent infinite
restart.
2024-01-26 17:50:31 +01:00
Ivan Belyakov
95b148a247
fix(wallet): handle errors in findBlocksCommand and
...
findNewBlocksCommand gracefully.
Add ErrorCounter type for async package.
Add tests
Closes https://github.com/status-im/status-desktop/issues/11074
2024-01-26 17:50:31 +01:00
Roman Volosovskyi
71ae7ca1a0
[ #4604 ] Skip balance requests on checking nonce ( #4629 )
2024-01-26 13:57:16 +01:00
Roman Volosovskyi
9b7eec0edb
[ #4603 ] Get rid of fetchLatestBlockNumberCommand ( #4614 )
2024-01-25 13:05:59 +01:00
Roman Volosovskyi
647c3b0fd8
[ #4605 ] Skip nonce check when possible during tx detection
2024-01-24 11:31:14 +01:00
Roman Volosovskyi
9c0526f7d9
[ #4202 ] Detect balance and erc20 transfers by a single contract call ( #4508 )
2024-01-19 16:57:04 +01:00
Roman Volosovskyi
9aef13f83e
[ #4200 ] Enable prevention of tx detection on unrevealed mnemonic/address ( #4444 )
2024-01-16 15:17:02 +01:00
Ivan Belyakov
81073b208e
fix(wallet): Made an interface for BlockRangesSequentialDAO to
...
mock it in tests.
Made a configurable timeout interval for Commander interface.
Added tests to verify loadBlocksAndTransfers command is stopped
correctly on max errors limit reached
2023-12-14 16:49:23 +01:00
Ivan Belyakov
670954b71b
feat(wallet): separated finite and infinite commands in transfers for
...
proper handling of errors and commands restart.
Now:
- Infinite commands started only once and never restarted, stoped on
context.Done.
- Finite commands are joined into AtomicGroup to stop the rest in the
group in case one command fails. Otherwise other commands in the group
will continue running and the failed command is not retried to
restart. Fixed goroutine leakage in case of failure of some commands
2023-12-14 16:49:23 +01:00
Ivan Belyakov
71b27394bb
fix(wallet): fixed BalanceAt not called for all but first account
...
when new blocks are searched
2023-12-09 10:10:01 +01:00
Ivan Belyakov
5882705a21
fix(wallet): quick fix for eating RPC requests. Proper fix TBD
2023-12-09 10:10:01 +01:00
Ivan Belyakov
6e666f7c27
fix(wallet): accessing tokens block range nil on empty acc.
...
Fixed a crash in local notification service on a nil block number
in HistoryReady event
2023-12-07 21:40:02 +01:00
Ivan Belyakov
b8c006843b
fix(wallet): use mnemonic displayed check for 'findNewBlocksCommand'
...
Fixed some tests to use wrong sql DB for account DB
2023-12-06 14:07:52 +01:00
Ivan Belyakov
761aa64e04
test(wallet): add tests for findNewBlocks command
2023-12-06 12:08:18 +01:00
Ivan Belyakov
82185b54b5
feat(wallet): separate ETH and tokens search ranges to allow calling
...
`getLogs` for multiple accounts simultaneously. For now only used for
new transfers detection. Detection of `new` transfers has been changed,
now they are searched from head and forward. Previously they were
searched from last scanned block forward.
2023-12-05 16:09:56 +01:00
Roman Volosovskyi
aee111e5ab
[ #4200 ] Avoid tx watching for addresses which were not exposed
2023-12-01 12:30:42 +01:00
Ivan Belyakov
c0f2f76e9a
feat(wallet): remove transfers data on account removal
...
Closes: #4394
2023-11-29 16:17:21 +01:00
Ivan Belyakov
b6ade53603
feat(wallet): detect ERC1155 batch transfers.
...
Refactored transfers loading to reduce blockchain RPC requests (getBaseFee, getTransaction,
getTransactionReceipt) by reusing preloaded transaction and block fee.
Split extraction of subtransaction from logs and from ETH transfer into
different methods.
Refactored log_parser to extract sender and receiver addresses
uniformly for different transfer types.
Replaced info logs with debug where needed.
closes #4221
2023-11-16 09:37:09 +01:00
Anthony Laibe
5381ec4a76
feat: add token list
2023-11-15 09:02:36 +01:00
Ivan Belyakov
57e370e7b9
feat(wallet): Added detection of ERC1155 SingleTransfer events
2023-11-13 20:19:57 +01:00
Cuteivist
05530f57bd
feat: Return only community tokens ( #4249 )
2023-11-03 13:08:32 +01:00
Roman Volosovskyi
9d59d889f6
[ #3833 ] Increase intreval of new blocks detection command
2023-10-25 14:45:06 +02:00
Roman Volosovskyi
42527723f2
[ #4087 ] Omit history scanning on generated multiacc creation
2023-10-19 15:07:34 +02:00
Roman Volosovskyi
778753bb57
Fix checking of ERC20 tail on new blocks scanning
2023-10-12 16:21:09 +02:00
Ivan Belyakov
01526c344a
fix(wallet): new blocks were not found
2023-10-06 15:51:57 +02:00
Roman Volosovskyi
d82c50b50a
[ #3930 ] Prevent repeated eth_getLogs calls (ERC20 history tail)
2023-10-05 19:45:40 +02:00
Roman Volosovskyi
6a110ca3df
[ #3930 ] Make sure eth_getLogs for outgoing transfers are not executed for erc20 tail
2023-10-05 11:44:09 +02:00
IvanBelyakoff
9d6577049f
Implemented balance history based on transfers ( #4022 )
...
* feat(wallet): implement balance history based on fetched transfers
* Added vendor 'ttlcache'
2023-10-04 15:00:12 +03:00
Roman Volosovskyi
382fcde74e
Scanning of ERC20 tail of transfers history
2023-10-01 10:09:11 +02:00
Roman Volosovskyi
1dca3adb89
Basic test for findBlocksCommand
2023-09-19 13:17:36 +02:00
Ivan Belyakov
81b94b7a4e
fix(wallet): added ChainID to balance cache, as now it is shared between
...
services and contains balances for all addresses and chains.
Made rpc chain client return ChainID property on `NetworkID()` method
2023-09-07 15:00:19 +02:00
Ivan Belyakov
20c585a621
fix(wallet): new transfers were not loaded in real time
2023-09-05 14:19:36 +02:00