Igor Sirotin
9175e45e61
fix_: block on logout ( #5696 )
...
* fix_: check context on processAndPushTelemetry
* fix_: fix waitgroup add/done in Waku
* fix(pendingTracker)_: stop the pending transacitonTracker on logout
* chore_: lint fix
---------
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2024-08-12 22:30:13 +01:00
Sale Djenic
4a78d7c1e9
fix_: when preparing a balance map skip chains where cannot get the balance, instead of returning the error
2024-08-12 17:35:19 +02:00
Sale Djenic
db5e5832d1
fix_: calculating route for erc721 checks one more call if the function doesn't exist on the contract
...
Old ERC721 contracts do not have `safeTransferFrom` function, because of that we couldn't estimate the gas
and we couldn't resolve the right route. Now we firstly check for `safeTransferFrom` function which is supported
by ERC721A contracts and if the contract doesn't have it then we do `transferFrom` function call.
Example of ERC721A contract:
- https://etherscan.io/address/0x0024bc1035d30ae229a4712189b32131758cb000#code
Example of ERC721 contract:
- https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code
2024-08-12 17:26:56 +02:00
saledjenic
79b1c547d1
Improvements on resolving nonce ( #5658 )
...
* chore_: unused `BuildTx` function removed from the processor interface and types that are implement it
Since the `BuildTx` function is not used anywhere, it's removed from the code.
* fix_: resolving nonce improvements
When the app sends more than a single tx from the same account on the same chain, some
chains do not return appropriate nonce (they do not consider pending txs), because of
that we place more tx with the same nonce, where all but the first one fail.
Changes in this PR keep track of nonces being used in the same sending/bridging flow, which means
for the first tx from the multi txs the app asks the chain for the nonce, and every next nonce is resolved
by incrementing the last used nonce by 1.
2024-08-12 08:07:32 -04:00
dlipicar
d7fcbd3444
feat(wallet)_: handle paraswap price impact error ( #5622 )
2024-08-07 23:33:44 +01:00
Sale Djenic
cf1a6631f8
fix_: the last known route with positive balance returned if no route without balance/bonder error
...
The Router algorithm is checking all the routes in order to find one the user has a balance to execute it
even that one is not the cheapest one. But if the user has some balances, but not enough to execute any
of suggested routes, we we're returning the last route which was checked, with the changes from this commit
we will return the last route for which the user has some balance, but not enough.
2024-08-01 15:26:01 +02: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
Sale Djenic
8787da1b89
feat_: added new error which will be returned in case bonder fee is higher than the amount being sent
2024-07-31 15:12:05 +02:00
IvanBelyakoff
5b34cd9e9f
feat(wallet)_: add basic auth for cryptocompare proxy ( #5536 )
...
* feat(wallet)_: add basic auth for cryptocompare proxy
* test(wallet)_: add a test for httpclient used in market clients
2024-07-30 14:48:22 +01:00
Sale Djenic
18885b3663
test_: flaky router tests fixed
...
Closes https://github.com/status-im/status-go/issues/5601
2024-07-29 16:53:56 +02:00
Sale Djenic
20c1b83b7c
chore_: when returning errors, give precedence to custom (network) errors
2024-07-29 10:05:56 +02:00
Sale Djenic
9472e18315
fix_: setting best route only when we have it
2024-07-29 10:05:56 +02:00
Igor Sirotin
e76d93d340
chore: skip flaky tests ( #5606 )
...
* chore_: skip TestPeerCount
* chore_: skip flaky wallet tests
* chore_: skip flaky TestMemberReceivesPendingRequestToJoinAfterAfterGettingTokenMasterRole
2024-07-27 10:27:26 +01:00
belalshehab
03cb3ad0ab
fix(Wallet)_: Add quotes around token symbol in insufficient balance error messages to ensure valid JSON parsing
2024-07-26 13:16:23 +03:00
Igor Sirotin
870ede0829
fix_: tests ( #5585 )
...
* fix_: router tests errors sprintf
* chore_: skip flaky tests
2024-07-25 23:27:12 +01:00
saledjenic
2bbdb35f6c
Added improvements in resolving the best route ( #5569 )
...
* fix_: filtering out routes which do not match the amount in
* fix_: finding the best route logic updated
* fix_: "to" chains being used in sending bridge tx via hop are more explicit
Using `ChainIDTo` depicts better an intention which chain should be used.
* chore_: checking for required balance improved
An error contains now more details, for which token on which chain there is not enough balance for
executing a tx. Also check for required balance now calculates in fees for all tx that possibly can be
sent from the same chain.
2024-07-25 08:15:30 -04:00
Dario Gabriel Lipicar
7c4b43b4d9
feat(wallet)_: incorporate partner fees for L1 paraswap swaps
2024-07-23 15:27:43 -03:00
Sale Djenic
4d2d20cff4
fix_: allow sending 0 value transactions
2024-07-23 18:19:10 +02:00
Dario Gabriel Lipicar
afc6e7bcb9
feat(router)_: return processor error when no routes are found
2024-07-19 17:44:08 +02:00
Emil Sawicki
094d26dc66
fix_: Add pending tx for collectibles
2024-07-15 13:00:21 +01:00
Dario Gabriel Lipicar
21101c9444
feat(wallet)!: return routerV2 suggested routes whenever available, on top of error if the best route doesn't pass all checks
2024-07-12 17:59:41 -03:00
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
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
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
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
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
Anthony
fb261e4a0e
feat_: change how we compute fees
2024-06-20 10:30:01 +02: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
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
Sale Djenic
ddc75815eb
chore_: stickers buy added to the router
2024-06-11 19:46:43 +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