Commit Graph

1484 Commits

Author SHA1 Message Date
Sale Djenic 6ed10bce81 fix_: native token not found error when generating a new route issue fixed
This commit fixes `native token not found` issue that occurs only when the input params
of an already successfully generated route for a fast chain (refers to a chain that generates
new block very fast, like optimism, arbitrum) are updated.

The reason of the issue was that active route remains the same until the resolving of a new route
for updated input parameters gets generated, for fast chains that was enough time to generate a new
block and send fees update for the previously active route. This commit fixes that possibility by
aborting updates in a better way.
2024-10-11 18:25:01 +02:00
Sale Djenic 0017567ed4 fix_: packing data for ens release path processor fixed 2024-10-08 21:49:35 +02:00
Sale Djenic 55bad8fd7b fix_: zero value update to be a value, not a function pointer 2024-10-07 17:24:00 +02:00
frank a08319f615
fix(sync)_: sync fallback notification (#5888)
* fix(sync)_: Improve EnableInstallationAndSync and add EnableInstallationV2

- Refactor EnableInstallationAndSync for better error handling and response merging
- Add new EnableInstallationV2 method returning the installation
- Update tests to check for installation in response
- Deprecate old EnableInstallation method

* chore_: remove EnableInstallationV2

* fix(sync)_: create/delete AC notification only when targetInstallationID match

- Add targetInstallationID parameter to SendPairInstallation function
- Update protobuf SyncPairInstallation struct with TargetInstallationId field
- Modify method calls across multiple test files to include new parameter
- Update pairing.proto and pairing.pb.go with new field for local pairing

* chore_: rename stubEnableInstallationAndPair

chore_: move InstallationIDProvider

chore_: revert endpoints.go

test_: check AC with resp

chore_: rename ModifiedInstallationsTargetedToThisDevice

test_: add InstallationIDProvider

chore_: revert endpoints.go

chore_: remove comment

test_: add TestNewInstallationCreatedIsNotDeleted
2024-10-07 22:05:37 +08:00
dlipicar e8bd4d5685
chore_: implement eth service for use in integration tests (#5903) 2024-10-04 09:55:28 -03:00
Igor Sirotin c1dd9397f7
refactor_: remove generated files from source control (#5878)
* fix_: gitignore generated files

* chore_: delete generated files

* fix_: update go generate instructions

* feat(Makefile)_: clean-generated-files target

* feat(Makefile)_: `generate` target

* fix(Makefile)_: dependent generate target

* ci_: run generate, update docker file deps

* fix(Makefile)_: remove `clean-generated-files` target

* fix(Makefile)_: simpler GO_GENERATE_CMD arg

* fix_: temp workspace GO_GENERATE_FAST_DIR
2024-10-03 20:59:44 +01:00
Sale Djenic 04784d18a0 fix_: canceling route generation before the route gets generated doesn't allow subscribing for events 2024-10-02 17:33:00 +02:00
Anton 107e2cb8da test_: added transaction from route test 2024-10-01 14:30:33 +02:00
Sale Djenic 28506bcd17 chore_: improvements of the sending route generated by the router process
This commit simplifies the sending process of the best route suggested by the router.
It also makes the sending process the same for accounts (key pairs) migrated to a keycard
and those stored locally in local keystore files.

Deprecated endpoints:
- `CreateMultiTransaction`
- `ProceedWithTransactionsSignatures`

Deprecated signal:
- `wallet.sign.transactions`

New endpoints:
- `BuildTransactionsFromRoute`
- `SendRouterTransactionsWithSignatures`

The flow for sending the best router suggested by the router:
- call `BuildTransactionsFromRoute`
- wait for the `wallet.router.sign-transactions` signal
- sign received hashes using `SignMessage` call or sign on keycard
- call `SendRouterTransactionsWithSignatures` with the signatures of signed hashes from the previous step
- `wallet.router.transactions-sent` signal will be sent after transactions are sent or if an error occurs

New signals:
- `wallet.router.sending-transactions-started` // notifies client that the sending transactions process started
- `wallet.router.sign-transactions` // notifies client about the list of transactions that need to be signed
- `wallet.router.transactions-sent` // notifies client about transactions that are sent
- `wallet.transaction.status-changed` // notifies about status of sent transactions
2024-10-01 14:30:33 +02:00
Sale Djenic 1128598b03 chore_: build transaction v2 function added to processors 2024-10-01 14:30:33 +02:00
Sale Djenic 741f5d51af chore_: move pack approval and get token id functions to wallet common helper 2024-10-01 14:30:33 +02:00
Sale Djenic 4a7031b455 chore_: move path constants to wallet common location 2024-10-01 14:30:33 +02:00
Igor Sirotin 3e69092ae5
chore_: move uniswap token downloading to makefile target (#5891)
* chore_: move uniswap token downloading to makefile target

* fix_: uniswap url and output path

* feat_: upgrade uniswap tokens
2024-10-01 10:20:03 +01:00
frank 38308d48f2
feat_: log on panic (#5849)
* feat_: log error and stacktrace when panic in goroutine

* test_: add test TestSafeGo

* chore_: rename logAndCall to call

* chore_: rename SafeGo to Go

* chore_: make lint-fix

* chore_: use t.Cleanup

* chore_: Revert "chore_: use t.Cleanup"

This reverts commit 4eb420d179cc0e208e84c13cb941e6b3d1ed9819.

* chore_: Revert "chore_: make lint-fix"

This reverts commit fcc995f157e671a4229b47419c3a0e4004b5fdab.

* chore_: Revert "chore_: rename SafeGo to Go"

This reverts commit a6d73d6df583f313032d79aac62f66328039cb55.

* chore_: Revert "chore_: rename logAndCall to call"

This reverts commit 8fbe993bedb9fbba67349a44f151e2dd5e3bc4cc.

* chore_: Revert "test_: add test TestSafeGo"

This reverts commit a1fa91839f3960398980c6bf456e6462ec944819.

* chore_: Revert "feat_: log error and stacktrace when panic in goroutine"

This reverts commit f612dd828fa2ce410d0e806fe773ecbe3e86a68a.

* feat_: log error and stacktrace when panic in goroutine

* chore_: make lint-fix

* chore_: rename logAndCall to call

* chore_: renaming LogOnPanic

* chore_: update rest goroutine function calls

* chore_: make lint-fix
2024-09-27 06:37:32 +08:00
dlipicar 55d91400b8
fix_: bump go-ethereum to get fix for block hash calculation (#5873)
* fix_: bump go-ethereum to get fix for block hash calculation

* chore_: remove CallBlockHashByTransaction workaround for bad block hash calculation
2024-09-26 08:38:22 -03:00
Igor Sirotin 77ef8f1fb7
chore_: make lint-fix (#5871) 2024-09-24 14:52:29 +01:00
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 d6565375c1 test_: improvements for browser connect tests 2024-09-20 15:16:17 +02:00
Sale Djenic 8ddde51445 fix_: browser connect - send transaction command 2024-09-20 15:16:17 +02:00
Sean Hagstrom 385933a60d
feat: fallback to cache for prices and token market values when calling GetWalletToken (#5832)
This change adapts the market manager to cache the token-market-cap, and modifies the existing `GetWalletToken` function to use the token-price and token-market cache data. Additionally, we choose to use the cached price and market data for roughly 60 seconds when calling the `GetWalletToken` function.
2024-09-20 12:24:43 +01: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
frank f04a9a8726
feat(sync)!: leftovers work for sync fallback (#5794)
* feat(sync)!: remove compatibility with v2.29

* feat(sync)_: add AC notifications when initiating the sync fallback

Needed for https://github.com/status-im/status-desktop/issues/15750

Adds an AC notification when the syncing fails and the user is prompted to use a seed phrase instead.
There is one notification for the initiator (created) and one for the old account (received).
Once the flow is completed, ie the receiver presses Enable and sync,  the notifications are deleted

* test_: update test

* fix_: lint issue

* chore_: ignore tmp file generated by make lint-fix

* chore_: rename EnableAndSyncInstallation to EnableInstallationAndSync

* chore_: address review feedback

* chore_: revert changes to .gitignore

* fix_: simplify code

* fix_: keep old API

---------

Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2024-09-19 16:17:46 +08:00
frank 6e5a32c022
fix(mentions)_: add callID for `OnChangeText` (#3806) 2024-09-19 13:03:56 +08:00
Khushboo Mehta 4816769506 feat!: Return prices array along with SuggestedRoutes 2024-09-11 17:03:33 +02:00
Sale Djenic 0235889e12 feat_: check for balances after each fees update 2024-09-11 13:51:51 +02:00
Sale Djenic 506a76bf9f feat_: recalculate route fees with every new block 2024-09-11 13:51:51 +02:00
Sale Djenic 1bb9cbc573 chore_: router response moved to wallet responses location
Following the approach we did for keeping requests at the same location, these changes introduce
new location for responses. `SuggestedRoutesResponse` is moved there and renamed to
`RouterSuggestedRoutes` and code is updated accordingly.

New type `Route` defined (since a single route is composed of zero or more paths).

Types `Route`, `Path`, `Graph` and `Node` belong to a new `routs` package now.
2024-09-11 13:51:51 +02:00
Sale Djenic 00559692bc chore!: router code organization improvements
It's a breaking change due to errors' changes, the list of mapped old error codes:
- `"WR-001"` is now `"WRR-001"`
- `"WR-002"` is now `"WRR-002"`
- `"WR-003"` is now `"WRR-003"`
- `"WR-004"` is now `"WRR-004"`
- `"WR-005"` is now `"WRR-005"`
- `"WR-006"` is now `"WRR-006"`
- `"WR-007"` is now `"WRR-007"`
- `"WR-008"` is now `"WRR-008"`
- `"WR-009"` is now `"WRR-009"`
- `"WR-010"` is now `"WRR-010"`
- `"WR-011"` is now `"WRR-011"`
- `"WR-012"` is now `"WRR-012"`
- `"WR-013"` is now `"WRR-013"`
- `"WR-014"` is now `"WRR-014"`
- `"WR-015"` is now `"WRR-015"`
- `"WR-019"` is now `"WRR-016"`
- `"WR-020"` is now `"WRR-017"`
- `"WR-021"` is now `"WRR-018"`
- `"WR-025"` is now `"WRR-019"`

- `"WR-016"` is now `"WR-001"`
- `"WR-017"` is now `"WR-002"`
- `"WR-018"` is now `"WR-003"`
- `"WR-022"` is now `"WR-004"`
- `"WR-023"` is now `"WR-005"`
- `"WR-024"` is now `"WR-006"`
- `"WR-026"` is now `"WR-007"`
- `"WR-027"` is now `"WR-008"`

Other changes:
- `RouteInputParams` type moved to `requests` package and code updated accordingly
- `SuggestedFees` type moved to a new `fees` package and code updated accordingly
- `SendType` type moved to a new `sendtype` package and code updated accordingly
- the following functions moved to `common` package
  - `ArrayContainsElement`
  - `ArraysWithSameElements`
  - `SameSingleChainTransfer`
  - `CopyMapGeneric`
  - `GweiToEth`
  - `WeiToGwei`
- the following consts moved to `common` package
  - `HexAddressLength`
  - `SupportedNetworks`
  - `SupportedTestNetworks`
2024-09-11 13:51:51 +02:00
Sale Djenic d10d492515 chore!: removed v2 mark from api endpoints, structs and files marked as router v2
Breaking change!

Since the old router logic is removed, there is no need to have files and structs marked as v2.

Renamed endpoints:
- `GetSuggestedRoutesV2` to `GetSuggestedRoutes`
- `GetSuggestedRoutesV2Async` to `GetSuggestedRoutesAsync`
- `StopSuggestedRoutesV2AsyncCalcualtion` to `StopSuggestedRoutesAsyncCalcualtion`
2024-09-11 13:51:51 +02:00
Sale Djenic e58787536a chore_: old router logic removed 2024-09-11 13:51:51 +02:00
Igor Sirotin bbdf5d5ae0
chore: remove urls package (#5810)
* chore!: remove urls package

* fix_: move encodeDataURL and decodeDataURL to messenger_share_urls
2024-09-09 14:45:21 +01:00
richΛrd 771a0c3562
refactor: remove wakuv1 code from mailserver cycle and add ENR to list of storenodes (#5753)
* test_: remove eth.prod mailservers from cycle
* test_: disable store request for wakuv1
* chore_: add ENR and remove V1 code
* refactor_: storenode cycle and allow ENRs and multiaddresses
2024-09-05 10:25:26 -04:00
Igor Sirotin beaca5faf7
chore_: uncomment tests (#5792)
* chore_: uncomment tests

* chore_: better comment

Co-authored-by: osmaczko <33099791+osmaczko@users.noreply.github.com>
2024-09-03 12:40:50 +01:00
Igor Sirotin c9b777a218
fix_: clean up tests with ResetMobileSignalHandler (#5793) 2024-09-03 09:41:56 +01:00
Dario Gabriel Lipicar 970119af78 feat_: disable tx history fetching for all accounts 2024-09-02 09:24:59 -03:00
Mohamed Javid bd0464d192
fix_: send accounts event on handling backed up accounts (#5739)
This commit moves the "accountsFeed" from "initServices" to the status node config, and adds a reference to messenger config for sending events on handling backed-up data.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-08-31 00:58:03 +05:30
Igor Sirotin 28e7a364c7
chore(test_stats)_: better stats, print skipped tests (#5781)
* chore(test_stats)_: better stats, list skipped tests

* chore_: add skip reasons to some tests
2024-08-29 21:09:26 +01:00
Dario Gabriel Lipicar dc7ca3ddb4 fix(wallet)_: fix single chain operation check 2024-08-29 16:14:15 -03:00
Mohamed Javid c1d94e214a
chore_: create currency store and get currencies RPC (#5541)
This commit

- moves the base currency list from status-desktop to status-go
- introduces a new RPC GetCurrencies to fetch the list which can be shared across platforms

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-08-29 16:03:24 +05:30
Dario Gabriel Lipicar 0809c0b156 feat(wallet)_: upgrade paraswap client to v6.2 2024-08-28 12:53:09 -03:00
Sale Djenic 9b9a91f654 chore_: map insufficient funds error
This commit maps this kind of errors
`status-proxy-0.error: failed with 50011064 gas: insufficient funds for gas * price + value: address 0x4eeB09cf0076F840b38511D808464eE48efD4305 have 0 want 10000000000000`
to this form:
`status-proxy-0.error: failed with 50011064 gas: insufficient funds for gas * price + value: address 0x4eeB09cf0076F840b38511D808464eE48efD4305`

which means that we don't want to display to a user details of how much they have and how much is needed for fees, cause those data are very often
misleading, referring mostly to "how much user has".

New error added in case there is no positive balances across all enabled chains.
2024-08-28 08:23:18 +02:00
Sale Djenic 1418d40a63 feat_: endpoint for getting address details with/without blocking added
`AddressDetails` is added, basically it is the same as `GetAddressDetails`,
but does the check for address activity (if has balance) across all chains if the
chainIDs list is empty. Setting `timeoutInMilliseconds` param ensures that in case
of network congestion or no internet `AddressDetails` will return the response
setting `hasActivity` property to `false`.
2024-08-26 16:11:11 +02:00
Cuteivist c0d1f11ac2
fix_: Fill chain ids for bridge (#5751) 2024-08-26 09:53:21 +02: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
Dario Gabriel Lipicar 479eb71372 fix(wallet)_: prevent backwards range in GetHeadersInRange 2024-08-20 10:49:22 -03:00
Dario Gabriel Lipicar 1d173734a6 fix(wallet)_: set a separate id (and circuit) for the cryptcompare proxy 2024-08-20 14:32:14 +01:00
frank 83aa01c7da
chore_:update route error details (#5749) 2024-08-20 21:14:35 +08:00
Dario Gabriel Lipicar ba005f0d6f chore(wallet)_:make coingeco unit tests not call the real provider 2024-08-20 09:04:30 -03:00
Sale Djenic 759034ec7a fix_: crash when selected token cannot be found is fixed 2024-08-19 09:59:18 +02:00
Sale Djenic 2f08c4c6f9 fix_: crash sending collectibles fixed
When mapping `MultipathProcessorTxArgs` to `ProcessorInputParams` setting `FromChain` was missed.
2024-08-19 09:59:18 +02:00