Commit Graph

1169 Commits

Author SHA1 Message Date
Roman Volosovskyi d5a10a97f1
[#4646] Return l2 block number when calling BalanceChecker on Arbitrum (#4668) 2024-02-02 12:52:52 +01:00
Roman Volosovskyi 9b10b29da2
[#4630] Add wallet_fetchOrGetCachedWalletBalances method (#4666) 2024-02-02 11:42:56 +01:00
Anthony Laibe 9c131edfaa feat: token list updated at global 2024-02-02 11:30:42 +01:00
Stefan 812910f087 feat(wallet): Add session-based activity API for dynamic updates
This commit introduces the first steps towards implementing a session-based activity API to support dynamic updates of the current visualized filter in the wallet activity service. This change is necessary to move away from static paginated filtering, which was previously done in SQL, to a more dynamic approach that can handle updates in real-time.

The main changes include:
- Add basic `EventActivitySessionUpdated` support for pending transactions.
- Added a `TODO.md` file outlining the plan and requirements for dynamic activity updates.
- New session-related API to the `activity.Service`
- `session.go` contains the logic for session management and event processing related to activity updates.
- Add test case for incremental filter updates.

The commit also includes:

- various other minor changes and refactoring to support the new session-based approach.
- Deprecation notices added to the `api.go` file for methods that are no longer used by the status-desktop application.
- Clarification comments added to the `scheduler.go` file regarding replacement policies.

Updates: #12120

ghstack-source-id: a61ef74184
Pull Request resolved: https://github.com/status-im/status-go/pull/4480
2024-02-01 19:55:06 +01:00
Stefan 21e6914a3c fix(wallet) fix reading amount for pending transactions
The reading of the amount for pending transactions was done in the same
way as for transfers table. However, the transfers table has a string
hex representation of the amount, while the pending transactions table
has a binary representation of the amount (*big.Int). This was
triggering the not int warning and value was missing.

Updates status-desktop #12120
2024-02-01 18:28:55 +01:00
Roman Volosovskyi 241595a871
[#4649] Do not restart reactor when it is already running (#4663) 2024-02-01 17:26:40 +01:00
Stefan 31a2d403ef fix(wallet) prioritize type SendAT for pending entries in activity
In case both to/from addresses are present in the list we were using
the same logic as for transfers. However, this doesn't make sense given
that we can have only one entry in pending activity.

The following cases are still covered

- When the receiver is in addresses we get received
- When both receiver and sender are in the list will get sent
- When the sender is on the list we will get sent

Updates status-desktop #12120
2024-02-01 16:59:09 +01:00
Ivan Belyakov e4745d01b4 fix(wallet): handle BlobTxType transaction.
Update go-ethereum version

Closes #4636
2024-01-31 10:06:14 +01:00
Ivan Belyakov 7d1927396a fix(wallet): do not return gas-only ETH entries of transfers table for
activities request

Closes #4618
2024-01-30 11:37:53 +01:00
Roman Volosovskyi dad2ec3f66
[#4640] Temporary fetch l2 block number for Arbitrum networks separately from BalanceChecker (#4644) 2024-01-30 10:09:44 +01:00
Anthony Laibe 0808b780f7 feat: add sepolia optimism 2024-01-30 08:57:06 +01:00
Sale Djenic 6403a7413b feat: new endpoint added which returns accounts of all contacts that match the passed address 2024-01-29 13:15:24 +01:00
Ivan Belyakov f6c219c839 fix(wallet): Made loadBlocksAndTransfers command FiniteCommand to
keep restarting on error non-stop, removed some tests accordingly.
Fixed a flaky test for loadBlocksAndTransfers command.
Added tests for async.AtomicGroup.
Made tranfersCommand FiniteCommandWithErrorCounter to prevent infinite
restart.
2024-01-26 17:50:31 +01:00
Ivan Belyakov 95b148a247 fix(wallet): handle errors in findBlocksCommand and
findNewBlocksCommand gracefully.
Add ErrorCounter type for async package.
Add tests

Closes https://github.com/status-im/status-desktop/issues/11074
2024-01-26 17:50:31 +01:00
Roman Volosovskyi 71ae7ca1a0
[#4604] Skip balance requests on checking nonce (#4629) 2024-01-26 13:57:16 +01:00
Roman Volosovskyi 9b7eec0edb
[#4603] Get rid of fetchLatestBlockNumberCommand (#4614) 2024-01-25 13:05:59 +01:00
Roman Volosovskyi 647c3b0fd8
[#4605] Skip nonce check when possible during tx detection 2024-01-24 11:31:14 +01:00
Anthony Laibe 1017d2bc16 fix: query only header for fees 2024-01-23 15:24:39 +01:00
Patryk Osmaczko bf5dcacdeb refactor: introduce `newTestMessenger`
This avoids duplication and enables better configuration possibilities
for clients.

Next step is to cleanup all `newMessenger` derivatives in tests.
2024-01-22 13:08:58 +01:00
Ibrahem Khalil 436d229856
Add last opened at key for community (#4514) 2024-01-21 12:55:14 +02: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
Dario Gabriel Lipicar 0d2c3cef7c feat: implement token management settings for collectibles 2024-01-18 11:46:35 -03:00
Richard Ramos d0ca4447c6
test: bump go-libp2p 2024-01-18 14:28:06 +00:00
Dario Gabriel Lipicar b38e2c9278 feat(wallet): add collectibles filter option tokenIDs 2024-01-18 11:14:02 -03:00
Roman Volosovskyi 0bd4a06edc Comment out all logged flaky tests 2024-01-18 06:36:12 +00:00
IvanBelyakoff 3a4dfff20b
fix(wallet): fix blocks ranges update error, add tests (#4560)
Fixes #4559
2024-01-17 12:08:56 +01:00
Dario Gabriel Lipicar 1924828f8d fix: disable Goerli in the OpenSea client 2024-01-16 12:05:06 -03:00
Roman Volosovskyi 9aef13f83e
[#4200] Enable prevention of tx detection on unrevealed mnemonic/address (#4444) 2024-01-16 15:17:02 +01:00
Mykhailo Prakhov 94bee02ef7
chore: fetch comunity token metadata during handling community description (#4562) 2024-01-16 09:08:56 +01:00
Dario Gabriel Lipicar ee6621b066 feat: link owned collectibles with latest matching transfer
Part of #12942
2024-01-15 12:55:47 -03:00
Dario Gabriel Lipicar 3a00c3fb9d fix: avoid losing cached community collectibles data 2024-01-12 08:55:38 -03:00
Dario Gabriel Lipicar 250b8eea87 fix: update the list of chains supported by opensea 2024-01-11 19:30:56 -03:00
Dario Gabriel Lipicar d4f4d47cdb fix: properly detect relevant incoming token transfers
Fixes #13132
2024-01-10 16:03:55 -03:00
Sale Djenic 280f48877d chore(savedaddresses)!: favourite property removed and primary key updated
- favourite column removed from the saved_addresses table
- favourite property removed from the SavedAddress struct
- ens name removed from the primary key, the primary key now is composed of address and is_test columns
- ens parameter removed from wakuext_deleteSavedAddress
- wallet_getSavedAddresses moved to wakuext_getSavedAddresses (to keep them all in a single place)
- saved addresses related endpoints removed from the wallet service, even they logically belong there, a reason for that
is avoiding emitting sync message if one uses calls from the wallet service, while that's not the case in ext service. Once
we refactor this and introduce devices syncing mechanism in the wallet service, we should not only these but other wallet
related endpoints move there (removed: wallet_getSavedAddresses, wallet_addSavedAddress and wallet_deleteSavedAddress).

Affected area:
Saved addresses
2024-01-10 19:30:56 +01:00
Dario Gabriel Lipicar 781a2c7c8e fix: ensure needed community tokens are available in the db
Fixes #13171
2024-01-10 12:57:10 -03:00
Dario Gabriel Lipicar 9d9c40b7cf fix: make fetchCommunity return latest available community
Fixes #13145
2024-01-08 18:09:21 -03:00
Anthony Laibe 6599be1721 feat: balance endoint without market data 2024-01-08 10:23:44 +01:00
Cuteivist 846a4e2363
feat: Community token received notification (#4515) 2024-01-04 13:22:06 +01:00
Sale Djenic a8357dceac feat: color field added to saved address
- `color` column added to `saved_addresses` table
- `colorId` parameter exposed via `SavedAddress` struct

Affected area - saved addresses.

The following endpoints return or receive `SavedAddress` instance:
- `UpsertSavedAddress`
- `GetSavedAddresses`
- `AddSavedAddress`
2023-12-29 10:39:52 +01:00
Sale Djenic 6bfc1bed08 chore: read and use nonce from network instead from the local cache when sending tx
Reading the Nonce from the local cache may be incorrect if the tx is made out of the Status app or
if Status app sends a tx prepared by the dapp (via WalletConnect). A submitted tx with a wrong Nonce
results in a failing tx, that's why we need to read the Nonce from the network.
2023-12-29 08:43:03 +01:00
Igor Sirotin 195982c950
fix_(StoreNodeRequestManager): various fixes and improvements (#4509) 2023-12-27 13:53:19 +00:00
Mikhail Rogachev 843bae5659
feat: Return seen/unseen messages count in MessnegerResponse (#4461) 2023-12-25 13:25:22 +07:00
Cuteivist dac7a0daf9
feat: Fetch community data for tokens (#4497) 2023-12-22 10:43:19 +01:00
Godfrain Jacques 29ade0f817
fix (@status-go/stickers) Stickers still show in the recent list after being uninstalled (#4474)
fixes #12677
2023-12-21 10:05:30 -08:00
Cuteivist 6bfe626558
feat: Use media server for community token images (#4493) 2023-12-21 16:05:29 +01:00
Cuteivist 313375e215
feat: Save previously owned tokens (#4482) 2023-12-21 15:12:50 +01:00
Anthony Laibe 8cbdc80758 feat: expose token balance API 2023-12-21 08:52:29 +01:00
Igor Sirotin 92f0479a0c
chore: fetch contact with `StoreNodeRequestManager` (#4484) 2023-12-20 12:49:12 +00:00
Dario Gabriel Lipicar 959dcbdea5 feat: lazy load collectibles metadata 2023-12-19 21:27:20 -03:00
Dario Gabriel Lipicar b1e000ed59 feat: add balance to collectibles api 2023-12-18 18:24:21 -03:00
Dario Gabriel Lipicar 9dea2e8875 feat: always include community image in community collectibles 2023-12-16 08:49:58 -03:00
Dario Gabriel Lipicar b3cc73aa7f feat: use media server for community collectible images 2023-12-16 08:49:58 -03:00
Cuteivist 7af313cd53
feat: Add community manager and fetch cached community metadata (#4450) 2023-12-14 17:50:46 +01:00
Ivan Belyakov 81073b208e fix(wallet): Made an interface for BlockRangesSequentialDAO to
mock it in tests.
Made a configurable timeout interval for Commander interface.
Added tests to verify loadBlocksAndTransfers command is stopped
correctly on max errors limit reached
2023-12-14 16:49:23 +01:00
Ivan Belyakov 670954b71b feat(wallet): separated finite and infinite commands in transfers for
proper handling of errors and commands restart.
Now:
- Infinite commands started only once and never restarted, stoped on
context.Done.
- Finite commands are joined into AtomicGroup to stop the rest in the
  group in case one command fails. Otherwise other commands in the group
  will continue running and the failed command is not retried to
  restart. Fixed goroutine leakage in case of failure of some commands
2023-12-14 16:49:23 +01:00
Sale Djenic d2ae23f466 chore(walletconnect)_: record wallet sessions instead of pairings 2023-12-14 12:58:27 +01:00
Sale Djenic fd16942b20 feat(walletconnect)_: support for eth_signTypedData v3 and v4 2023-12-13 08:15:55 +01:00
Cuteivist dfe6baed9b
feat: Fetch community token image (#4440) 2023-12-12 08:37:57 +01:00
Godfrain Jacques 0f98a1294c
feature(@desktop/chat) Enhance message context menu with mark as unread (#4382)
fixes #10329

linked with PR #12879

- Adds capacity to mark a message as unread
- Adds capacity to mark a message with mention as unread
- Adds persistence to the marking of the message (change can be seen at
  after reboot)
- Adds marking in right click contextual menu
2023-12-11 02:17:01 -06:00
Ivan Belyakov 71b27394bb fix(wallet): fixed BalanceAt not called for all but first account
when new blocks are searched
2023-12-09 10:10:01 +01:00
Ivan Belyakov 5882705a21 fix(wallet): quick fix for eating RPC requests. Proper fix TBD 2023-12-09 10:10:01 +01:00
Ivan Belyakov 6e666f7c27 fix(wallet): accessing tokens block range nil on empty acc.
Fixed a crash in local notification service on a nil block number
in HistoryReady event
2023-12-07 21:40:02 +01:00
Anthony Laibe f502d991b7 fix: prevent crash when erc20 tx is contract creation 2023-12-07 09:50:41 +01:00
Sale Djenic 12ba1bdf69 feat(walletconnect)_: support for auth request 2023-12-06 17:28:09 +01:00
Ivan Belyakov b8c006843b fix(wallet): use mnemonic displayed check for 'findNewBlocksCommand'
Fixed some tests to use wrong sql DB for account DB
2023-12-06 14:07:52 +01:00
Ivan Belyakov 761aa64e04 test(wallet): add tests for findNewBlocks command 2023-12-06 12:08:18 +01:00
Ivan Belyakov 82185b54b5 feat(wallet): separate ETH and tokens search ranges to allow calling
`getLogs` for multiple accounts simultaneously. For now only used for
new transfers detection. Detection of `new` transfers has been changed,
now they are searched from head and forward. Previously they were
searched from last scanned block forward.
2023-12-05 16:09:56 +01:00
Mykhailo Prakhov 04c533b8d5
chore: API for getting all non-approved requests to join for all communities (#4422) 2023-12-05 15:50:45 +01:00
Dario Gabriel Lipicar f08e6f7137 feat: add support for Opt Sepolia in the Alchemy client 2023-12-04 12:21:32 -03:00
Anthony Laibe 485c1d8742 feat: add STT to sepolia 2023-12-04 15:34:05 +01:00
Mohsen 76b6745666
fix: 'Join Community' notification is not getting dismissed (#4267) 2023-12-04 14:48:28 +03:00
Sale Djenic cfa542378d chore(walletconnect)_: various improvements applied
- `WalletConnectTransfer` identified as a new transfer type
- Wallet-related endpoints that logically belong to the wallet moved from the wallet connect service
- Wallet connect service now receives `transfer.TransactionManager` instead of `transactions.Transactor`
- Deadlock issue when trying to send the tx with the wrong nonce fixed
2023-12-04 11:18:38 +01:00
Cuteivist 04873ef880
feat: token order API (#4391) 2023-12-04 11:18:05 +01:00
Roman Volosovskyi aee111e5ab
[#4200] Avoid tx watching for addresses which were not exposed 2023-12-01 12:30:42 +01:00
Ivan Belyakov 9acabc6995 fix(wallet): start transfer controller to activate leftovers cleanup 2023-11-30 12:37:52 +01:00
Cuteivist 79f0d8a5ec
bug: Added missing out chain data (#4303) 2023-11-30 12:37:32 +01:00
Stefan Dunca c433908834 fix(wallet) ignoring err in RowsAffected()
Co-authored-by: saledjenic <86303051+saledjenic@users.noreply.github.com>
2023-11-29 19:22:38 +01:00
Stefan 99f4d621e0 feat(wallet): add Wallet Connect state change API
Updates status-desktop #12858
2023-11-29 19:22:38 +01:00
Ivan Belyakov c0f2f76e9a feat(wallet): remove transfers data on account removal
Closes:  #4394
2023-11-29 16:17:21 +01:00
Sale Djenic 5e6768a42a feat(ens-usernames)_: preparing release transaction data 2023-11-29 15:34:44 +01:00
Sale Djenic adb79c5a82 chore(stickers)_: unused stickers_buy endpoint removed 2023-11-29 15:34:44 +01:00
Sale Djenic dea0b62650 feat(wallet)_: common endpoints added to wallet api
- `SignMessage`
- `BuildTransaction`
- `SendTransactionWithSignature`
2023-11-29 15:34:44 +01:00
Dario Gabriel Lipicar 8b539cd400 feat: refresh balances when Eth or ERC20 transfer is detected 2023-11-29 09:16:03 -03:00
Cuteivist ecbb1cb4e0
fix: Handle balance for all accounts (#4261) 2023-11-29 12:20:18 +01:00
Andrea Maria Piana 3ab1afaae8 feat_: Allow to set custom nodes & log level 2023-11-29 09:31:02 +00:00
Andrea Maria Piana f48f9cccc6 feat_: Allow to set light client 2023-11-29 09:31:02 +00:00
Andrea Maria Piana e1f61515ef feat_: Add sync chat endpoint 2023-11-29 09:31:02 +00:00
Dario Gabriel Lipicar 472e4bdb77 feat: implement support for collectible provider Rarible 2023-11-27 20:30:18 -03:00
Mikhail Rogachev 31d0782f66
feat: Sync Mentions and Replies AC notifications and messages (#4337)
* feat: Marking Mentions and Replies AC notifications as read also marks corresponding message as seen

* feat: Marking message as seen marks as read corresponding notification (if there is so)

* chore: make messenger activity center test less flaky

* Update VERSION
2023-11-27 15:22:24 +04:00
Sale Djenic 8641ec5dd5 feat(walletconnect)_: ethereum rpc calls support
Reference: https://docs.walletconnect.com/advanced/rpc-reference/ethereum-rpc
2023-11-27 10:49:23 +01:00
Sale Djenic d4ca8616fc feat(walletconnect)_: support for session proposal for wc 2.0 2023-11-27 10:49:23 +01:00
Igor Sirotin e32c5546e1
test: request community from storenode (#4364)
* feat: request community info from storenode test

* shutdownWaitGroup

* fix requestCommunityInfoFromMailserver timestamp roundin
2023-11-25 23:24:20 +00:00
Stefan a855f9e3e8 feat(wallet) WalletConnect: track pairings in DB
Add new APIs to track if valid pairings are available to be used
by application not to run WalletConnect SDK if not needed.

Closes status-desktop: #12794
2023-11-24 09:44:27 +01:00
Sale Djenic 5e2af9e4fa feat(walletconnect)_: support the tx and personal signing from within the app or keycard 2023-11-22 09:46:50 +01:00
Sale Djenic 5555f98dd5 chore(accounts)_: added two convenient functions to accounts
- `IsWalletNonWatchOnlyAccount`
- `IsWalletAccountReadyForTransaction`
2023-11-22 09:46:50 +01:00
Sale Djenic e9f11f70dd chore(wallet)_: proper release of locked nonce (unlock function call) 2023-11-22 09:46:50 +01:00
Dario Gabriel Lipicar 03cdb49c4c feat: enable support for Arbitrum Sepolia in Opensea 2023-11-21 16:20:05 -03:00
Dario Gabriel Lipicar 00f412e4ac feat: enable support for Arbitrum Sepolia in Alchemy 2023-11-21 16:20:05 -03:00
Dario Gabriel Lipicar 14a8df8948 feat: support alchemy sepolia api keys 2023-11-21 16:20:05 -03:00