Sale Djenic
378e5741b9
feat_: the router - add candidates, as potential paths, by taking the max amount on enabled chains
2024-07-05 14:51:34 +02:00
Ivan Belyakov
4b19845592
chore(wallet)_: Added a test for Market manager FetchTokenMarketValues
...
Added a nil/empty command test for circuit breaker
2024-07-05 12:39:19 +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
Anthony Laibe
abb570dd3f
fix_: l1 fees at 0 and fix base fees sepolia
2024-07-05 11:04:29 +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
d180e19fa8
test(wallet)_: moved all balance related code from token.Manager to
...
balance_fetcher.BalanceFetcher
Split methods into smaller ones for testability
2024-07-04 09:29:49 +02:00
Anthony Laibe
135ab9a5cf
chore_: add missing token
2024-07-04 09:28:18 +02:00
belalshehab
1e0a24f1b8
fix(wallet)_: use consistent invalid timestamp constant
...
- Replaced `unknownUpdateTimestamp` with `InvalidTimestamp` to maintain consistency.
2024-07-04 02:22:01 +03:00
belalshehab
f98c411b32
feat(wallet)_: add new API to restart the wallet reload timer
...
- Added `restartWalletReloadTimer` method in `api.go` to expose an API for restarting the wallet reload timer.
- Implemented `Restart` method in `reader.go` to stop and start the wallet reader.
- Updated reader_test.go to comply with minimum test coverage threshold
2024-07-03 20:36:17 +03:00
Samuel Hawksby-Robinson
5f666e6ad9
test(router_validation)_: blended my validation with latest develop
2024-07-03 11:47:04 +01:00
Samuel Hawksby-Robinson
3c1326be48
test(router_validation)_: Resolved invalid recursive type aliasing
...
Additionally I've resolved a panic when AmountIn and/or AmountOut is nil
2024-07-03 11:47:04 +01:00
Samuel Hawksby-Robinson
59853fdbe2
test(router_validation)_: integrated the new errors into test loigc
2024-07-03 11:47:04 +01:00
Samuel Hawksby-Robinson
e4420533d6
test(router_validation)_: removed error consts, see #5362
2024-07-03 11:47:04 +01:00
Samuel Hawksby-Robinson
da2af02049
test(router_validation)_: Added test cases for Sticker and Swaps
2024-07-03 11:47:04 +01:00
Samuel Hawksby-Robinson
cdaca322d0
test(router_validation)_: Added Error consts for all tested paths
2024-07-03 11:47:04 +01:00
Samuel Hawksby-Robinson
79d0d08cfd
test(router_validation)_: Added full test cases for validateInputData
2024-07-03 11:47:04 +01:00
Samuel Hawksby-Robinson
f6f1b56cf7
test(router_validation)_: Added validation to prevent all excluded networks
2024-07-03 11:47:04 +01:00
Stefan
a535aedad5
fix(dapps)_: fix session identity
...
The pairing topic was used instead the topic for the session identity
which caused session management issues.
Updates: #15189
2024-07-02 19:17:28 +02:00
Stefan
db8168105d
fix(dapps)_: fix JSON marshaling for walletconnect.DBSession
...
Updates: #15189
2024-07-02 19:17:28 +02:00
Stefan
23aae48a40
feat(dapps)_: expose wallet_GetWalletConnectActiveSessions API
...
Add API test to get the required coverage
Updates: #15189
2024-07-02 19:17:28 +02:00
Dario Gabriel Lipicar
4d7c2683f5
fix_: fix swap in routerV2
2024-07-01 15:07:17 +02:00
Sale Djenic
443cd412f7
feat_: the router returns route there is a balance on even that's not the cheapest route
...
If there are multiple routes across multiple networks, but the user doesn't have a positive balance
on the network which the router initially suggested as the best (cheapest) route, then we are not returning
an error saying there are not enough balance, but instead try to suggest the route on the network where
the user has a positive balance even that's not the cheapest route (it should be the second cheapest route,
but if there are not enough balance on it we proceed with the third cheapest route and so on...).
2024-07-01 15:07:17 +02:00
Sale Djenic
92361d9e20
feat_: new endpoint added for an async route/s calculation
...
- `GetSuggestedRoutesV2Async` calculates the route/s based on input parameters and sends
`wallet.suggested.routes` signal to notify a client.
2024-07-01 15:07:17 +02:00
Sale Djenic
8bcb6ce667
chore!: wallet related signals alignment
...
A signal type `wallet` which had an event `type` set to `sing-transactions` is now a new signal
type `wallt.sing.transactions` with event which represents list of transactions that need to be signed.
2024-07-01 15:07:17 +02:00
Igor Sirotin
49eaabaca5
feat: adapt create/restore/login endpoints for keycard usage ( #5311 )
...
* chore_: remove duplicated `StartNodeWithKey`
* feat(KeycardPairing)_: added GetPairings method
* chore_: simplify startNode... methods
* chore_: added encryption path to be derived
* fix_: error handling in StartNodeWithKey
* feat_: added keycard properties to CreateAccount
* feat_: moved KeycardWhisperPrivateKey to LoginAccount
* fix_: LoginAccount during local pairing
* feat_: added chat key handling to loginAccount
* chore_: struct response from generateOrImportAccount
* fix_: do not store keycard account to keystore
* feat_: added Mnemonic parameter to LoginAccount
* chore_: wrap loginAccount errors
* feat_: RestoreKeycardAccountAndLogin endpoint
* chore_: merge RestoreKeycardAccountRequest into RestoreAccountRequest
* fix_: TestRestoreKeycardAccountAndLogin
* fix_: MessengerRawMessageResendTest
* chore_: cleanup
* chore_: cleanup according to pr comments
* chore_: better doc for Login.Mnemonic
* chore_: add/fix comments
* fix_: lint
2024-06-26 13:14:27 +02:00
Sale Djenic
1cdcc0dcc2
chore_: tests for router candidates added
2024-06-26 11:02:13 +01:00
Sale Djenic
68464d949c
chore_: calculating multi tx candidates improvements
...
- router logic splitted into two more logical functions
- locked amount validation improved
- hop and swap processors cached data kept per from/to chain and from/to token
- Clear function which clears the local cache is added
- process of evaluating `amountToSend` if more than a single network is locked is improved
- optimized params for require approval function
2024-06-26 11:02:13 +01:00
Sale Djenic
d1f8064437
chore_: typo in `disabledToChaindIDs` parameter name resolved
2024-06-26 11:02:13 +01:00
Sale Djenic
e272a0d465
chore_: unnecessary preferred chains input router parameters removed
2024-06-26 11:02:13 +01:00
Mykhailo Prakhov
2cabec66cc
fix(premissions)_: convert balance from GetCachedBalancesByChain ( #5415 )
2024-06-25 10:14:40 +02:00
Ivan Belyakov
ee2330fe5d
feat(wallet)_: add CryptoCompare proxy to market manager as a last
...
resort
2024-06-21 16:39:00 +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
Anthony
fb261e4a0e
feat_: change how we compute fees
2024-06-20 10:30:01 +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
Igor Sirotin
d2f4cae18f
fix: merge coverage reports from each test rerun ( #5360 )
...
* fix_: fix test coverage when rerunning tests
* fix_: make lint-fix
* chore_: change test coverage report artifact name
* chore_: added codeclimate.json to artifacts
* chore_: bring in gocovmerge util
---------
Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>
2024-06-19 11:40:52 +01:00
Ivan Belyakov
b0d103d494
fix(statusd)_: fix panic on nil conversion to interface
...
Fixes #5371
2024-06-18 19:19:17 +02:00
Dario Gabriel Lipicar
7b38a5b6bd
fix_: make use of slippage percentage parameter ( #15096 )
2024-06-17 09:51:29 -03:00
Sale Djenic
f54ed03e50
fix_: incorrect chain set for the destination chain when resolving candidates in router
2024-06-14 15:44:38 +02:00
Sale Djenic
07882d9259
fix_: router crash when packid is nil
2024-06-14 15:44:38 +02:00
Sale Djenic
462013520f
chore_: swap via paraswap improvements
2024-06-14 15:44:38 +02:00
Sale Djenic
9c3b49b866
chore_: celer bridge disabled, due to making correct routes using a single (hop) bridge
2024-06-14 15:44:38 +02:00
Stefan
9901ac9b9d
feat(dapps)_: expose SignTypedDataV4 API to be used by dapps
...
Updates: #14927
2024-06-14 10:06:12 +02:00
Godfrain Jacques
892fcffce4
chore(communities)_: make member use wallet tokens during permission checking ( #5268 )
...
fixes #14913
2024-06-11 14:00:04 -07:00
Sale Djenic
ddc75815eb
chore_: stickers buy added to the router
2024-06-11 19:46:43 +02:00
Cuteivist
6a72afce8e
fix_: Fetch pending tx hash ( #5319 )
2024-06-11 10:36:27 +02:00
Sale Djenic
501b0a06c2
chore_: use the old name for backward compatibility
2024-06-11 10:30:34 +02:00
Sale Djenic
39a7d41135
chore_: making contract type param internal to hop bridge processor type
2024-06-10 16:38:38 +02:00
Sale Djenic
7fa6a68845
fix_: trying to figure correct hop bridge contract type if empty one is provided
2024-06-10 16:38:38 +02:00
Cuteivist
d182fb762a
fix_: Fix cast ( #5287 )
2024-06-10 15:56:06 +02:00
Dario Gabriel Lipicar
fb63f0c1e0
feat(wallet)_: add Approve transaction type
2024-06-10 08:57:45 -03:00
Patryk Osmaczko
ec9e29ef92
chore(communities)_: reevaluate permissions with pre-fetched owners
...
That's an optimisation. Instead of fetching collectibles owners for each
member, it is fetched once, before members iteration.
It should significantly reduce amount of queries to providers.
closes : status-im/status-desktop#14914
2024-06-07 23:46:20 +02:00
Dario Gabriel Lipicar
24da58d7fa
feat(wallet)_: update wallet onramp providers
...
Closes #14818
Removed Latamex, added Mercuryo
2024-06-07 11:04:20 -03:00
Sale Djenic
07cf6cd52d
chore_: `Bridge` interface renamed to `PathProcessor` interface and necessary changes applied due to that change
2024-06-07 15:50:38 +02:00
Sale Djenic
fe21fd9e97
chore_: bridge moved to router
2024-06-07 15:50:38 +02:00
Sale Djenic
a5a83eb74e
chore_: ens set public key improvements
2024-06-07 13:15:40 +02:00
Ivan Belyakov
f6a5f1d740
fix(wallet)_: collectible manager status nil when unknown network (Anvil)
...
Replaced map of statuses with sync.Map
Closes #5300
2024-06-06 18:45:27 +02:00
Sale Djenic
bb5545d430
chore_: ens release improvements
2024-06-06 11:51:14 +02:00
Igor Sirotin
a01ffdbe8e
fix: proper usage of CreateAccount RootDataDir ( #5284 )
...
* fix_: introduce CreateAccount.RootDataDir
* fix_: deprecate and remove ShhextConfig.BackupDisabledDataDir
2024-06-05 14:03:34 +01:00
Sale Djenic
11f83780d1
chore_: ens register improvements
2024-06-05 14:45:46 +02:00
Sale Djenic
2149035619
chore_: rename from and to props of the PathV2 to from and to chain
2024-06-05 14:45:46 +02:00
Ivan Belyakov
99ead2d90c
feat(wallet)_: add support to statusd to create account from seed phrase
...
fixed minor issues
Closes #5175
2024-06-05 13:43:53 +02:00
frank
9e5386955c
chore_: revert import order
2024-06-05 19:36:05 +08:00
frank
763ed552ed
chore_:Don't rely on the master key when generating accounts ( #5279 )
...
* chore_:Don't rely on the master key when generating accounts under the bip 0044 path m/44'/60'/0'/0/0
* fix_: lint issue
* fix_: failed test TestBackendStartNodeConcurrently
2024-06-05 19:36:05 +08:00
Sale Djenic
6f2b02cfdb
fix_: celar bridge fixes
2024-06-04 10:10:35 +02:00
Ivan Belyakov
bf78c15e6f
test(wallet)_: implement build/sign/watch unit tests for multitransaction manager
...
Closes #14848
2024-06-03 15:48:19 +02:00
Sale Djenic
aec567fd9f
fix_: eth and erc20 fixes
2024-06-03 10:45:25 +02:00
Sale Djenic
f41dd35d6c
fix_: erc 721 and 1155 fixes
2024-05-31 14:38:00 +02:00
Ivan Belyakov
a135b27980
test(wallet)_: created Transactor interface
...
- Moved some methods from Transactor to users of it to clean interface.
- Mocked Bridge interface and Transactor interface for tests
- Wrote unit tests for SendTransaction
2024-05-31 09:58:06 +02:00
Ivan Belyakov
4d1149100f
chore(wallet)_: code structure improved for multi_transaction manager
...
- exported API methods left at the same place
- private methods moved to helpers.go
- stuff for testing moved to testutils.go
- created storage interface with clean API and multi transaction related db calls moved
to MultiTransactionDBStorage implementation
- created dummy in-mem storage for tests with multi transactions
- written tests for MultiTransactionDBStorage
2024-05-31 09:58:06 +02:00
Sale Djenic
8d17918c37
chore_: adding snt token for optimism and arbitrum to status token store list
2024-05-29 10:45:59 +02:00
Samuel Hawksby-Robinson
a3514e5d4d
test_: Implemented zap.Logger in debug for filter logging
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
92cd0c1411
test_: Replaced fmt.Printf with 'testing.T' 't.Logf'
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
9b256d1220
test_: Resolved insufficient rest test case issue
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
0d8068f5f4
test_: Addressed feedback from Sale
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
2d242e912f
test_: Fixes and additional test case for robustness
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
40193f4d1d
test_: Implemented some fixes to the filter logic
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
d42a09d638
test_: Added much better coverage for testing for filterNetworkComplianceV2
...
Note there are a number of failing test, this is fine. Need to figure out if these are caused by my tests, my code or the original algorithm
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
987c0b28ec
test_: Added much better coverage for testing for filterCapacityValidationV2
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
a648635d60
test_: Added much better coverage for testing for filterNetworkComplianceV2
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
4f2cd8ff7a
test_: Added testing for filterRoutesV2
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
a91ce6067d
test_: Added testing for filterCapacityValidationV2
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
3a50ce0397
test_: Added testing for filterNetworkComplianceV2
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
69125cd594
test_: Added testing for hasSufficientCapacityV2
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
e1f65fb531
test_: Added testing for isValidForNetworkComplianceV2
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
0f33076ceb
test_: added testing for TestCalculateTotalRestAmountV2
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
dd9e4e787c
test_: added testing for setupRouteValidationMapsV2
2024-05-28 22:05:57 +01:00
Samuel Hawksby-Robinson
889675e42a
test_: Modulised filterRoutesV2 to make more testible
...
This is as per my original draft earlier this week https://github.com/status-im/samyoul-notes/blob/master/analysis/wallet/Router/code/filterRoutes.go
2024-05-28 22:05:57 +01:00
Dario Gabriel Lipicar
717c7df690
feat(wallet)_: added supported chains and recurrent purchase url to onramp providers
2024-05-28 14:51:38 -03:00
Stefan
e06c490ec8
feat(dapps)_: implement basic dApp persistance
...
Implement required basic CRUD APIs
- Add session to wallet connect
- Delete session used in tests only
- Get active dApps: the order of retrieval is
based on the first time the DApp was added
in descending order.
Also add tests to validate the main requirements
Closes : #14615
2024-05-28 19:29:08 +02:00
Stefan
1bd2f119de
chore(dapps)_: remove WalletConnect service POC
...
The clients will all handle separately the wallet connect protocol
and only call static APIs to deal with persistance and blockchain
related operations.
Updates: #14615
2024-05-28 19:29:08 +02:00
Sale Djenic
dd7b3d1af8
fix_: unblocking the router calculation if an approval is required for the gas estimation
2024-05-28 13:55:54 +02:00
Sale Djenic
74b1dfd694
fix_: hop contracts' addresses updated
2024-05-28 13:55:54 +02:00
Sale Djenic
c74931c333
fix_: hop bridge improvements
...
- handling `null` values in the Hop response
- using data returned from the Hop api when preparing data for estimation and calling `swapAndSend` and `sendToL2`
- estimating gas for bridges implemented in the bridges implementation types, avoiding wrong gas for placing bridge transactions
2024-05-28 13:55:54 +02: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