Commit Graph

1518 Commits

Author SHA1 Message Date
Stefan 5336c47f1b feat(dapps)_: extend and improve sign
Add `wallet_SafeSignTypedDataForDApps` with support for
`eth_signTypedData` and `eth_signTypedData_v4`
Reject if the chain to sign doesn't matches the target chain
for typed data signing

Add `wallet_HashMessageForSigning` with to support hashing messages
for signing in a safe way as per EIP-191 v45 and supporting
to hash messages for signing on the client side (keycard)

Deprecate `wallet_SignTypedDataV4``

Updates: #15361
2024-07-09 09:01:36 +02:00
Michal Iskierko 3145ab05ff feat(community tokens)_: Upgrade ERC721 contract to enable batch transfers
Add version field to proto and database.

Issue #4947
2024-07-08 11:30:51 +02: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
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
Mykhailo Prakhov f8984b26e0 fix(communities)_: do not auto-delete tracking SetSignerPubKey transaction 2024-07-03 18:33:16 +01: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
Arseniy Klempner 5934233266
feat_: call telemetry upon error pushing envelope (#5430)
* feat_: call telemetry upon error pushing envelope

* feat_: call telemetry upon error pushing envelope

---------

Co-authored-by: Václav Pavlín <vaclav.pavlin@gmail.com>
2024-06-28 13:24:04 +03: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
Mikhail Rogachev 1362d10620
feat_: implement connector service (#5375) (#5403) 2024-06-24 07:29:40 -07:00
frank e0673ad1ff
feat(community)_: Move images from community data to MediaServer (#5336)
* feat(community)_: Move images from community data to MediaServer

* test_: fix lint issue

* test_: add more test statements

* feat_: deprecate old API

* test_: addressed review feedback from Icaro

* fix_: addressed review feedback from Jonathan

* chore_:wrap image url in an object
2024-06-24 17:37:44 +08:00
Ivan Belyakov ee2330fe5d feat(wallet)_: add CryptoCompare proxy to market manager as a last
resort
2024-06-21 16:39:00 +02:00
Igor Sirotin 13ade7ccff
chore_: Revert: implement connector service (#5375) (#5397)
This reverts commit b25ff41e51.
2024-06-21 13:16:41 +01:00
Godfrain Jacques b25ff41e51
feat_: implement connector service (#5375) 2024-06-20 14:11:55 -07: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
richΛrd a300e12853
feat_: wakuext_enr (#5367) 2024-06-18 15:48:49 -04: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
Arseniy Klempner 1bbb2537b4
feat_: batch all telemetry data and send request every 10 seconds (#5251)
* fix_: add status telemetry client to cli

* feat_: call telemetry when pushing an envelope

* feat_: log status version in all telemetry calls

* feat_: batch all telemetry data and send request every 10 seconds
2024-06-13 15:31:09 -07: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
Icaro Motta dbed69d155
perf(login)!: Set-up messenger filters outside login flow (#5229)
Fixes the slow login in mobile devices when users have joined large communities,
such as the Status one. A user would get stuck for almost 20s in some devices.

We identified that the step to set-up filters in the messenger is potentially
expensive and that it is not critical to happen before the node.login signal is
emitted. The solution presented in this PR is to set-up filters inside
messenger.Start(), which the client already calls immediately after login.

With this change, users of the mobile app can login pretty fast even when they
joined large communities. They can immediately interact with other parts of the
app even if filter initialization is running in the background, like Wallet,
Activity Center, Settings, and Profile.

Breaking changes: in the mobile repository, we had to change where the endpoint
wakuext_startMessenger was called and the order of a few events to process
chats. So essentially ordering, but no data changes.

- Root issue https://github.com/status-im/status-mobile/issues/20059
- Related mobile PR https://github.com/status-im/status-mobile/pull/20173
2024-06-10 12:02:42 -03: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
Samuel Hawksby-Robinson 9b458c63e0 chore(no-torrent)_: I've fully split Manager from TorrentManager
I've removed any mention or dependency of TorrentManager from Manager. There is still more work to do, but Messenger now communicates directly with a TorrentManager rather than asking the communities Manager to handle it. I've ensured that LogStdout() is only called from TorrentManager and removed entirely from Manager, this functionality seems to be some kind of debug tool specifically for torrent related functionality. Next I need to focus on functions within Messenger that call a TorrentManager and see how to isolate these from the main flows, following that I also need fix the tests that are broken. I will also need to refactor torrentClientReady() so that it is a function of TorrentManager, this may allow for pushing more functions into TorrentManager which will lead to better torrent encapsulation.
2024-06-07 13:44:12 +01: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
Andrey Bocharnikov fe25d97052 fix(config)_: add API calls to set new waku node and max backups
* add waku nodeaddr and max log backups validation
* Allow to set new waku node
* Allow to set custom max backups
* add tests
2024-06-04 22:52:18 +07: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
Michal Iskierko b38a9f5878 fix_: Publish token actions to privileged members
Send information to owners and token masters about operations: burn, airdrop, remote destruct.
Add CommunityTokenActionSignal to signalize client side.

Fix #13371
2024-06-03 12:19:19 +02:00
Sale Djenic aec567fd9f fix_: eth and erc20 fixes 2024-06-03 10:45:25 +02:00
Jonathan Rainville 64d2860571
chore_: remove Light permission checks that are no longer needed (#5267) 2024-05-31 10:22:08 -04: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
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
Michal Iskierko ad9032d036 feat_: recovery retracking pending transsactions
Add ReTrackOwnerTokenDeploymentTransaction function which will runs community tokens transactions listening.
Add deployment transaction hash to community_tokens table.

Issue #14699
2024-05-28 13:06:24 +02:00
Ivan Belyakov d2343ee03e fix(wallet)_: fixed disconnected event sent for all providers ignoring
type of error
2024-05-28 08:39:36 +02:00
Mikhail Rogachev 4f493a533e
chore(identity)_: remove old social links implementation (#5214) 2024-05-24 10:35:34 +02:00
Sale Djenic 534c756bf5 fix_: re-trying http requests up to the predefined max retries
This commit should fix the issue with Cryptocompare and CoinGecko providers down.
Often happens that the first request fails and because of that:
- the Router cannot complete calculation successfully
- some tests are failing
- some users very often see a red banner line saying the providers are down
2024-05-23 16:28:50 +02:00
Sale Djenic dcef87af3f fix_: token store clearing
This commit fixes issue with having a multiple contract addresses for the same symbols at the same networks.
An issue we had with this was that when we're searching for a token by symbol, always the first one from the
list was returned. That thing may result later in not having enough balance for that token on certain network,
even the user actually has it.
2024-05-23 14:39:46 +02:00
Michal Iskierko 6f1b82966a feat_: light, no-network versions of permission checking functions
Light functions are based on the fact that permissions are met if the user is on community/channel member list.
If the user is not on the list, permissions will not be met and the client is responsible to use regular permissions-check functions.
For all permissions-check functions, corresponding light versions are added: CheckAllChannelsPermissionsLight,
CheckChannelPermissionsLight, CheckPermissionToJoinLight.

Issue #14220
2024-05-20 14:17:40 +02:00
Ivan Belyakov 16171c9dc8 fix(wallet)_: fix crash on cbridge fee calculation 2024-05-20 06:38:35 +02:00
Sale Djenic 4a1a29b6a5 chore_: checks per sending type added (part3) 2024-05-18 00:00:23 +02:00
Sale Djenic 7a016d0859 chore_: router moved to router package (part2) 2024-05-18 00:00:23 +02:00
Sale Djenic 4894808839 chore_: review comments applied (part1) 2024-05-18 00:00:23 +02:00
Sale Djenic 08fef4afde chore_: the router implementation simplification 2024-05-18 00:00:23 +02:00
Sale Djenic 437ad499c8 chore_: `SendType` moved to another file 2024-05-18 00:00:23 +02:00
Jakub Sokołowski c7397e18dd
chore(all)_: remove obsolete eth.staging fleet
And leftovers of `eth.test` fleet which no longer exists.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-05-17 20:21:00 +02:00
Anton Iakimov 92ef58d420
chore_: drop wakuv2 fleets, use waku fleets
See https://github.com/status-im/infra-nim-waku/issues/91 for details.

Mostly done automatically. Some parts manually.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-05-17 18:53:40 +02:00
Michal Iskierko c3ab8bd658 feat_: add l1 transaction fee to community token contracts operations
Move estimation funtions to a estimations.go
Compute gas, suggested fees and l1 fee in one status-go call

Issue #14166
2024-05-17 09:57:03 +02:00
Michal Iskierko 574450289c feat_: Move community tokens transaction listening to status-go
Use EventWatcher to catch wallet events.
Handling all community tokens wallet events in communitytokens service (database and messenger operations).
Adding new signal to nim: CommunityTokenTransactionSignal, which is emitted everytime when the event is received.

Issue #4351
2024-05-16 16:18:15 +02:00
Cuteivist 6b680f0722
feat_: Correct opt short names (#5163) 2024-05-16 16:01:30 +02:00
richΛrd bc8b6d24f0
feat_: shards.staging fleet (#5160) 2024-05-15 20:09:28 -04:00
richΛrd 9e0fb30f8d
chore_: bump go-waku (#5150) 2024-05-15 19:15:00 -04:00
Sale Djenic c9ee0e04c2 fix_: logic for checking if the route can be established updated 2024-05-15 17:36:28 +02:00
Ivan Belyakov 5be610e653 fix(wallet)_: reduce block range size for `eth_getLogs` request for
Sepolia
2024-05-15 17:24:06 +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
Cuteivist 838311e902
fix_: Prioritize tokens on eth platform (#5151) 2024-05-15 07:33:12 +02:00
Khushboo-dev-cpp 867cd1f14b
feat(api)_: add api and functionality to get collection website and twitter handle from alchemy (#5007) 2024-05-14 08:58:08 +02:00
Jonathan Rainville 8f50b578d1
refactor(chat)_: remove concept of ChannelGroup and remove api functions (#4997)
For status-im/status-desktop#12595
2024-05-13 15:06:21 -04:00
Ivan Belyakov 3b6b38a414 chore(wallet)_: Fix tests after wallet api sign and send clean up
- Get rid of InsertTestMultiTransaction function in test utils and
use InsertMultiTransaction method of transaction manager
- Use MultiTransaction type instead of TestMultiTransaction

Added a missing wallet DB migration file for multi transactions
2024-05-09 18:11:58 +02:00
Ivan Belyakov ed164e4ac5 chore(wallet)_: clean up wallet API send and sign transactions 2024-05-09 18:11:58 +02:00
Dario Gabriel Lipicar 8a0b7ddbb5 feat(wallet)_: switch rarible client to eth sepolia 2024-05-03 08:49:20 -03:00
Ivan Belyakov 12d2a1ac2d fix(wallet)_: fixed crash when bridging and chain id not set 2024-04-26 09:45:40 +02:00
Cuteivist eb1ed696f6
fix_: Fix timestamo integer cast (#5092) 2024-04-25 14:15:07 +02:00
Igor Sirotin 295685c1fe
fix_: skip tests using infura (#5086) 2024-04-24 16:41:42 +02:00
Siddarth Kumar d6c4682479
chore_: bump go to 1.20 (#5027)
This commit attempts to upgrade go version to 1.20.12
This commit also removes the following items from lint checks :
* `goconst`
* `structcheck`
* `deadcode`
* `golint`
* `varcheck`

Mobile PR for QA purposes -> https://github.com/status-im/status-mobile/pull/19564
2024-04-18 18:48:02 +02:00
Andrey Bocharnikov 78db9054fc
fix_: Add contact to removeTrustStatus response (#5058)
* Split function for reseting trust status and verification+trust status
* Refactoring: extract setTrustStatusForContact, setContactVerificationStatus functions
* Tests
2024-04-18 19:28:44 +04:00
Ivan Belyakov 12deb23360 chore(wallet)_: removed all addresses parameter as redundant.
Instead we check directly if passed addresses are all wallet addresses that
we have in accounts DB.
2024-04-12 14:36:44 +02:00
Ivan Belyakov a549529637 fix(wallet)_: balances were not updated for accounts not checked during
initial balance fetch, as cache was considered valid and in case
balance was previously stored in DB for this account, it was returned
though it was not up to date.
2024-04-11 19:29:55 +02:00
Patryk Osmaczko 759e5e5c7b fix_: improve `fetchCommunityAssets` performance
fixes: #5038
2024-04-10 21:00:28 +02:00
Ibrahem Khalil 18cc3a16d5
Return request to join acceptance notifications (#4909) 2024-04-09 21:32:03 +02:00
Patryk Osmaczko 1ceb180e8a fix: fetch community only when assets metadata is missing
fixes: status-im/status-desktop#14296
2024-04-09 10:51:21 -04:00
Cuteivist d3d155a5b2
Added soulbound field for collectibles (#5026) 2024-04-09 16:16:20 +02:00
Anthony Laibe 6823870b01 fix: update ramp network link
fix: https://github.com/status-im/status-desktop/issues/14359
2024-04-09 11:39:37 +02:00
Sale Djenic 7b09ee073d feat: swap via paraswap 2024-04-08 10:14:48 +02:00
Michal Iskierko debc1485de fix: omit l1GasFee in json 2024-04-07 20:58:17 +02:00
Stefan 9986125982 chore(wallet) minor improvement to matching transactions
Made while hunting for the hash used for matching ID madness.

Updates: #14071
2024-04-05 11:04:13 +02:00
Stefan 62405b4def fix(wallet): activity duplicate in case of non-native transfer
The "hash" (a.k.a. ID) column was used for matching transfer entry which
works only for native transfers which have the `ID` same as hash.

Closes: #14071
2024-04-05 11:04:13 +02:00
Anthony Laibe e1cd91fafe Fix for erc20 transfer + other type of tx
This is 2 fix:
- ENS interaction + stickers don't need L1 fees as they are only executed on mainnet
- ERC20 data needs to be built when making the tx
2024-04-04 13:40:04 +02:00
yqrashawn aa73a0512c
feat: add contact customization color (#4869) 2024-04-03 22:49:57 +08:00
Stefan ef0e17e0f5 fix(wallet) fix erc721 transfer router
Changes

- Use token's contract address for `ERC1155TransferTxArgs.to` because it
is used as such later on.
- Extract Token ID from the symbol as we encoded and set the corresponding
value in the `ERC1155TransferTxArgs`.
- Set ChainID in `ERC1155TransferTxArgs`

Updates status-desktop #14212
2024-04-01 15:17:41 +02:00
Stefan ff6fb81beb fix(wallet) fix erc721 transfer router
Changes

Use token's contract address for `ERC721TransferTxArgs.to` because it
is used as such later on.
Extract Token ID from the symbol as we encoded and set the corresponding
value in the `ERC721TransferTxArgs`.
Set ChainID in `ERC721TransferTxArgs`
Fix wrong order of arguments in `BuildTx`.

Updates status-desktop #14212
2024-04-01 15:17:41 +02:00
Mikhail Rogachev 30e143ca40
Fix(Profile): Remove profile showcase from general response via signal (#4982)
* Fix(Profile): Remove profile showcase from general responce via signal

* Fix(Profile): Restore community membership validation for the prodile showcase

* feat: Make profile validation optional

* fix: review fixes
2024-03-29 11:22:44 +01:00
Sale Djenic caf3de1190 feat: suggested derivation path endpoint added 2024-03-27 17:20:40 +01:00
Ivan Belyakov e9a2f19c17 fix(wallet): cleanup multi_transactions table on account removed
Updates #4937
2024-03-27 14:54:30 +01:00
Ivan Belyakov c21e6430a2 fix(wallet): cleanup token_balances table on account removed
Updates #4937
2024-03-27 14:54:30 +01:00
Ivan Belyakov cc839ad7bc fix(wallet): cleanup balance_history table on account removed
Updates #4937
2024-03-27 14:54:30 +01:00
Stefan 48af7a6f49 chore(wallet) remove unused multi-transaction-update event
A leftover after migrating to incremental activity updates session-based
We now use pending instead of `multi-transaction-update`, there is no
multi-transaction update without an equivalent pending or transfer update
2024-03-27 13:36:40 +01:00
Sale Djenic 98c3be55b9 feat: l1 gas price estimation when placing l2 transaction 2024-03-27 08:24:39 +01:00
Igor Sirotin 1a2880b365
Fix/community tags indices (#4992)
* fix: strict order of community tags

* make tags containers private

* fix RandomCommunityTags implementation
2024-03-26 20:02:12 +00:00
Cuteivist 2aa306ef4c
fix: Pass additional data when community token is received (#4954) 2024-03-25 18:30:59 +01:00
Roman Volosovskyi 8086b24a9e
Refresh balance cache on login (#4950) 2024-03-20 12:32:04 +01:00
Mykhailo Prakhov ad342c8887
feat: get and delete community member messages API (#4932) 2024-03-19 20:44:49 +01:00
Dario Gabriel Lipicar bcca75dc9d feat(wallet): add EURC to the tokenstore 2024-03-19 12:56:15 -03:00
Michal Iskierko 8bf03609fc feat: Add HideIfPermissionsNotMet to CommunityChat struct
Issue #13291
2024-03-18 15:01:29 +01:00
Dario Gabriel Lipicar 58b57b12a3 feat: implement search api
Issue #13921
2024-03-18 10:22:00 -03:00
Dario Gabriel Lipicar 6e5c91f2d7 fix(wallet): flaky test TestUpdateCollectiblesData 2024-03-18 10:05:46 -03:00
Ivan Belyakov b0a0f078c4 feat(wallet): refactored collectibles manager using circuit breaker
Removed goerli from rarible and opt-goerli from alchemy clients as
not supported any more
2024-03-18 11:49:03 +01:00
Ivan Belyakov 224103d036 fix(wallet): crash on access nil block 2024-03-18 10:56:19 +01:00
Cuteivist d35a73a94f
chore: Optimize number of sql calls (#4928) 2024-03-18 09:37:05 +01:00
Roman Volosovskyi 38183ab335
Fix balance cache on switching to testnet (#4924) 2024-03-15 13:37:00 +01:00
Ivan Belyakov 2c634a2b45 fix(wallet): flaky test TestUpdateCollectionsData 2024-03-15 13:35:32 +01:00
Cuteivist afd72ace28
Chore: Remove fetching community data (#4794) 2024-03-13 17:33:01 +01:00
Sale Djenic f69ee07593 fix: calculating next nonce for optimism chain improved to align with calculation on mainnet and arbitrum 2024-03-13 15:21:33 +01:00
Michal Iskierko 43bc6e4b83 fix: Compute deployment fees dynamically
Issue #13646
2024-03-12 20:05:25 +01:00
Jonathan Rainville 3da9abfeb5 fix: set canPost to true for non-community channels 2024-03-12 11:04:45 -04:00
Jonathan Rainville e3810148d8 feat: add ViewersCanPostReactions to Chat object
Needed https://github.com/status-im/status-desktop/issues/13523
2024-03-12 11:04:45 -04:00
Roman Volosovskyi 2be9bfc304
Fix balances cache (#4890) 2024-03-11 14:48:40 +01:00
Anthony Laibe 2dfbe3099a fix: swap and send to l1 2024-03-11 12:04:14 +01:00
Stefan e1c7c715aa fix(wallet): fix activity filter updates special case
This commit fixes a special case where the activity filter incremental
updates were reported as new even that they were present in a previous
update.

Updates status-desktop #12120
2024-03-11 09:37:05 +01:00
Mikhail Rogachev 6522d52016
Feat: Simplify profile showcase preferences (#4854)
* Feat: simplify profile showcase preferences

* Feat: remove old profile showcase preferences on save

* Feat: add getters for showcase entries limits
2024-03-08 17:20:23 +01:00
Dario Gabriel Lipicar fcde7ccafe fix: ensure no duplicate results when checking for missing collectible/collection ids in the db 2024-03-08 10:49:06 -03:00
Cuteivist 6c792a0e73
feat: Pass 1 day balance change (#4858) 2024-03-08 13:52:39 +01:00
Anthony Laibe 477283e960 fix: buying ens from sepolia 2024-03-08 09:43:26 +01:00
Roman Volosovskyi 6f753617de
[#4774] Use findNewBlocksCommand for checking recent history (#4795) 2024-03-07 15:51:21 +01:00
Dario Gabriel Lipicar 4bf6f27b26 fix: handle collectibles owned by multiple accounts 2024-03-06 20:45:42 -03:00