Commit Graph

91 Commits

Author SHA1 Message Date
dlipicar dd994587a3
chore_: initial steps to decouple rpc chain modules (#5856)
* chore_: moved chain rpclimiter and tagger to separate packages

* chore_: initial steps to decouple rpc chain modules
2024-09-24 14:07:26 +01:00
Sale Djenic 8ddde51445 fix_: browser connect - send transaction command 2024-09-20 15:16:17 +02:00
dlipicar f165103f66
chore_: migrate to uber's mock fork (#5858)
* chore_: migrate to uber's mock fork

* chore_: make vendor
2024-09-20 10:08:11 +01:00
Andrea Maria Piana e07182b3f3 fix_: Don't count error rate for circuit breaker on cancel and handle
not found
2024-08-20 15:26:28 +01:00
Andrea Maria Piana 9e5fa3f22c feat_: Cache GetWalletToken method and split circuits
This commits does a few things:

1) Adds cache of token amount to the GetWalletToken endpoint, used by
   mobile, in case the user is offline.

2) Split circuits by chain-id (when available) and by host+index when
   not

3) It makes GetWalletToken always refresh, as that's directed from an
   user action and we want to respect that. A cool down of 10s should be
   added in the future to avoid spamming.
2024-08-16 14:02:29 +01:00
Samuel Hawksby-Robinson 0e882f1b97 feat(rpc_user_agent)_: Added application version to the RPC user client 2024-08-15 13:18:18 +01:00
Samuel Hawksby-Robinson c97cedba9a feat(rpc-user-agent)_: Added user agent to upstream client 2024-08-13 13:52:14 +01:00
Samuel Hawksby-Robinson bb01332af9 feat(rpc_user_agent)_: Added OS conditioned agent naming 2024-08-13 13:52:14 +01:00
Samuel Hawksby-Robinson f022d9a477 feat(rpc_user_agent)_: Added User Agent to the authed rpc client 2024-08-13 13:52:14 +01:00
Igor Sirotin 01288227d3
fix_: log utc timestamp (#5672)
* fix_: log zone-agnostic time

* chore_: use time.Truncate
2024-08-07 18:54:42 +01:00
Ivan Belyakov b74d9e6b4e feat(wallet)_: add status proxy RPC urls for blockchain providers
Replace the status proxy URL for cryptocompare.
2024-08-01 08:19:20 +02:00
IvanBelyakoff bf6c0c4cc6
fix(wallet)_: fix provider down event happening too often (#5595)
* fix(wallet)_: fix provider down event happening too often

- handle context cancelled error
- do not count expected errors when calling tokenURI as providers
  errors
- use archival not for optimism (was silently added by Grove makeing the
  old URL non-archival)

Closes #5555

* test(wallet)_: add test for collectibles manager to verify that main
circuit is not tripped calling by tokenURI method
2024-07-29 18:07:43 +01:00
Andrea Maria Piana 9a59d6a459 feat(metrics)_: add centralized metrics
This commit adds support for centralized metrics.
There are two providers as of now, and we haven't quite decided which
one to go for, so for the time being both are supported.
It also introduces a new endpoint InitializeApplication that replaces
OpenAccounts
2024-07-11 10:05:31 +01:00
Ivan Belyakov a009855bbb feat(wallet)_: use CircuitBreaker for blockhain RPC calls
fix usage of circuit breaker for collectibles and market data to
match the implementation
2024-07-05 12:39:19 +01:00
Ivan Belyakov 23b185ae2b fix(wallet)_: fixed some errors handling that caused provider up/down
banner
2024-07-05 13:35:44 +02:00
Ivan Belyakov 3983114ae5 test(wallet)_: add unit tests for balance fetcher
replace types with interfaces where necessary to allow mocking
implement fake eth scanner and erc20 contracts
2024-07-04 09:29:49 +02:00
Ivan Belyakov 43c9860491 fix(wallet)_: fix rpc limiter to reset counters on timeout
fix rpc limiter to delete limits on account removal
fix rpc limiter to not overwrite existing account limit on startup
fix providers down banner on limit reached error
2024-06-20 16:48:28 +02:00
Ivan Belyakov bd816f1e29 chore(wallet)_: tests for wallet.Reader fetching balances
chore(wallet)_: split getWalletTokenBalances into multiple functions

Removed some unused balances methods from wallet API

chore(wallet)_: refactored FetchOrGetWalletTokenBalances

- getWalletTokenBalances only returns cached ones
- update of balances is done in a separate method

chore(wallet)_: fix isVisible in getWalletTokenBalances is overwritten

It is overwritten and in some cases its value is desrespected

chore(wallet)_: simplify getWalletTokenBalance even further

chore(wallet)_: remove accountsDB from wallet.Reader

Call GetTestNetworkEnabled from NetworkManager instead

chore(wallet)_: remove rpc.Client from wallet.Reader.

Added GetActiveNetworks() method for NetworkManager
Removed adding native tokens from networks, as this is done already
in NetworkManager

chore(wallet)_: moved Persistence to token package

As it works with token_balances table, moved Persistence to token package.
Fixed TokenManager's Mark/Get previously owned tokens to use persistence
storage instead of direct SQL calls.
Introduced StorageToken that aggregates Token type, because when
Persistence moved to token package, names clash

test(wallet)_: tests for wallet.Reader.FetchorGetCachedBalances
2024-06-19 16:57:50 +01:00
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 c0e922f0af fix(wallet)_: fix crash on nil db for statusd if wallet is enabled
Fixed some other issues with prevented startup of statusd:
- ensure paths for DBs are created
- ensure DBs are opened before calling `StartNode`
- ignore error if multiacc database is not available

Updates #14693
2024-05-15 10:19:25 +02:00
Sale Djenic dcc93dee96 fix_: handling throughput limit error from providers 2024-05-12 14:15:02 +02:00
Igor Sirotin 295685c1fe
fix_: skip tests using infura (#5086) 2024-04-24 16:41:42 +02:00
Anthony Laibe 6e44165b51 fix: sepolia balance 2024-03-07 13:11:51 +01:00
Ivan Belyakov 34f1d26371 feat(wallet): replace RPC client's makeCallReturnSingle, makeCallReturnDouble,
makeCallNoReturn functions with a single makeCall function
2024-03-07 07:43:18 +01:00
Anthony Laibe 004bd4e79a fix: gas estimation error cause network error 2024-03-05 13:56:26 +01:00
Sale Djenic bb3006d747 feat: rpc request limiter 2024-02-29 08:26:10 +01:00
Anthony Laibe 972a4f9df9 feat: sepolia default 2024-02-23 11:26:31 +01:00
Michał Iskierko ba7faea027
fix: Use correct chains when checking permissions: mainnet or testnet (#4793)
Fix #18896
2024-02-22 10:17:35 -05:00
Anthony Laibe 0856efff6f fix: resolve first tx of block
This is a workaround when fetching unknown tx without receiver
2024-02-21 13:28:26 +01:00
Anthony Laibe 0808b780f7 feat: add sepolia optimism 2024-01-30 08:57:06 +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
Siddarth Kumar 926f6a3c72 Revert "test: bump go-libp2p"
This reverts commit d0ca4447c6.
2024-01-18 20:29:33 +00:00
Richard Ramos d0ca4447c6
test: bump go-libp2p 2024-01-18 14:28:06 +00:00
Anthony Laibe 3af8cfc054 fix: allow to update rpc urls
* in all cases update the original urls in case they changed with a new
  api key
* Update current urls only if the current one is the same as the
  previous original one and the original one did change
2024-01-17 09:55:19 +01:00
Sale Djenic 752d1a47f6 fix: networks get updated from a single place now, network.Manager
Runtime networks related env vars are being in use now, updating necessary rpc urls.
2023-11-08 11:31:15 +01:00
Anthony Laibe 21ddaa4b9f feat: arbitrum sepolia 2023-10-17 09:28:13 +02:00
Anthony Laibe 39676c8c01 feat: add sepolia toggle 2023-10-09 12:55:29 +02:00
Roman Volosovskyi 382fcde74e
Scanning of ERC20 tail of transfers history 2023-10-01 10:09:11 +02:00
Anthony Laibe 57c7054dd2 fix: update original url at first login 2023-09-21 09:50:43 +02:00
Roman Volosovskyi 1dca3adb89
Basic test for findBlocksCommand 2023-09-19 13:17:36 +02:00
Anthony Laibe e98952588d feat: original url to networks 2023-09-18 11:30:37 +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