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
Ivan Belyakov
d2343ee03e
fix(wallet)_: fixed disconnected event sent for all providers ignoring
...
type of error
2024-05-28 08:39:36 +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
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
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
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
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
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
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
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
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
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
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
Dario Gabriel Lipicar
bcca75dc9d
feat(wallet): add EURC to the tokenstore
2024-03-19 12:56:15 -03: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
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
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
Dario Gabriel Lipicar
55e8fd4554
fix: ensure atomic collectibles ownership updates
2024-03-06 20:45:42 -03:00
Dario Gabriel Lipicar
71377a50d7
feat: fetch collectibles balances
2024-03-06 20:45:42 -03:00
Sale Djenic
846a59b40f
chore: tokenstore details for usdc for sepolia and arbitrum sepolia updated
2024-03-06 19:38:35 +01:00
Khushboo-dev-cpp
580f697f57
fix: Fix send Erc 1155 flow ( #4865 )
2024-03-06 11:16:20 +01:00
Ivan Belyakov
440779fc8c
fix: flaky test TestController_watchAccountChanges by making sure
...
to check the database transfer after removal event is processed.
2024-03-04 10:36:33 +01:00
Anthony Laibe
011a170a03
fix: dup tx
...
Remove duplicate gas only TX
Remove Send and Receive from self, only the send row is kept
2024-03-01 09:43:47 +01:00
Stefan
a63d33e04a
feat(wallet) process all the events and debounce updates
...
Process missing events
Throttle down downloader's events to avoid overloading the CPU with
change detection.
Updates status-desktop #12120
2024-02-29 17:06:40 +01:00
Stefan
eecde4c27f
feat(wallet) activity filter incremental updates on filter clear
...
Add an intermediary state to the session to keep track of the changes
made when the filter was applied.
Updates status-desktop #12120
2024-02-29 13:27:05 +01:00
Cuteivist
03b903fd64
feat: Pass community id for wallet activity ( #4757 )
2024-02-29 11:22:14 +01:00
Sale Djenic
bb3006d747
feat: rpc request limiter
2024-02-29 08:26:10 +01:00
Stefan
ae9b697eda
feat(wallet) implement mixed incremental updates for activity filter
...
Refactor the activity filter session API to account for the new structure
Also:
- Refactor test helpers to mock for different chains with mixed answers
- Test implementation
Updates status-desktop #12120
2024-02-28 22:14:21 +01:00
Dario Gabriel Lipicar
9fef2d3558
fix: properly setup collectible providers exponential backoff
2024-02-27 18:26:55 -03:00
Dario Gabriel Lipicar
54ea0981a5
fix: properly handle tokenID 0 when filtering activity by collectibles
2024-02-23 09:43:20 -03:00
Anthony Laibe
972a4f9df9
feat: sepolia default
2024-02-23 11:26:31 +01:00
Cuteivist
83678042f4
chore: Pass tx ID instead of hash ( #4769 )
2024-02-22 23:40:36 +01:00
Sale Djenic
0e8143db76
feat(savedaddresses): mixedcase address added to the saved address struct
2024-02-22 10:16:12 +01:00
Mikhail Rogachev
eb5bad4868
Feat: Profile showcase validate collectible ownership ( #4737 )
...
* feat: profile showcase checks then presenting collectibles
* chore: more obvious CollectiblesManager configuration
2024-02-22 11:08:58 +03:00
Anthony Laibe
0856efff6f
fix: resolve first tx of block
...
This is a workaround when fetching unknown tx without receiver
2024-02-21 13:28:26 +01:00
Roman Volosovskyi
cc708ce0ce
[ #4690 ] Nilable block range values for proper ranges management ( #4691 )
2024-02-19 16:50:07 +01:00
Cuteivist
a866b8025e
feat: Community token received notification ( #4682 )
2024-02-19 14:55:38 +01:00
Roman Volosovskyi
9e36df449e
Fix range for ERC20/1155/721 tx detection ( #4746 )
2024-02-19 11:50:03 +01:00
Igor Sirotin
789ee81201
fix: saved addresses sync (`TestSyncDeletesOfSavedAddresses` flaky test) ( #4742 )
2024-02-16 09:45:10 +00:00
Dario Gabriel Lipicar
12d70e0ce4
fix: notify collectible data update when transferID is set
2024-02-15 12:05:07 -03:00
Roman Volosovskyi
7f6f8b3f7c
Add tokens metadata on FetchOrGetCachedWalletBalances call
2024-02-15 14:19:19 +01:00
Anthony Laibe
e0814a488f
feat: add sepolia token
2024-02-14 11:11:46 +01:00
Sale Djenic
598d58f0d6
fix: a proper clock set when dispatching saved addresses
2024-02-13 17:39:10 +01:00
Stefan
e9ff0fbefe
feat(wallet) add GetMoreForFilterSession API method
...
Also fix StopFilterSession to always notify client
Updates #12120
2024-02-13 17:37:44 +01:00
Stefan
ca973b4aa6
feat(wallet) use sql activity filter for incremental updates
...
Switch from the prototype of duplicating the SQL filter as a runtime
and keeping them in sync on each event that might invalidate the current
filtered entries to a simpler approach of requesting the filter again
and doing the diff to detect the new changes.
Also add a new reset API to model the new entries design requirements.
The new approach shows less corner-case to handle and follows one source
of truth concept making debugging and future maintenance easier.
Other changes
- Fix pending mocking to work with multiple calls
- Refactor tests to account for the new changes
Updates status-desktop #12120
2024-02-12 19:29:15 +01:00
Roman Volosovskyi
af16669787
Fetch balances when db cache doesn't exist (second attempt) ( #4714 )
2024-02-12 13:29:31 +01:00
Roman Volosovskyi
76d58ba7f0
Fetch balances when db cache doesn't exist ( #4710 )
2024-02-12 10:10:28 +01:00
Roman Volosovskyi
005e7e6ee4
Fix nonce change detection ( #4679 )
2024-02-08 12:54:04 +01:00
Dario Gabriel Lipicar
9c89409c94
fix: use opensea only as last resort collectibles provider
...
Fixes #13442
2024-02-07 12:27:23 -03:00
Anthony Laibe
101f1aeca3
feat: add support for erc1155
2024-02-07 11:59:32 +01:00
Dario Gabriel Lipicar
058fa629a0
feat(wallet): add contract type to collectibles
2024-02-06 13:35:01 -03:00
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
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
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
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
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
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
Cuteivist
dac7a0daf9
feat: Fetch community data for tokens ( #4497 )
2023-12-22 10:43:19 +01: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
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
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
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
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
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
Dario Gabriel Lipicar
472e4bdb77
feat: implement support for collectible provider Rarible
2023-11-27 20:30:18 -03: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
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
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
Dario Gabriel Lipicar
c88ab45d76
fix: pass context in FindOrCreateTokenByAddress
2023-11-17 16:17:50 -03:00
Dario Gabriel Lipicar
5933376eda
feat: unify collectibles struct
2023-11-17 16:17:50 -03:00
Dario Gabriel Lipicar
6f84207d3a
feat: allow specifying fetch criteria for owned collectibles
2023-11-17 16:17:50 -03:00
Dario Gabriel Lipicar
823fe76fc3
feat: allow different data types in collectibles requests
2023-11-17 16:17:50 -03:00
Dario Gabriel Lipicar
a51f8aa13c
feat: backoff wallet community fetches after a failure
2023-11-17 10:35:30 -03:00
Dario Gabriel Lipicar
e17d4606b1
fix: implement cancellable collectibles requests
2023-11-17 10:35:30 -03:00
Dario Gabriel Lipicar
92a604f471
fix: fix alchemy collectible traits parsing
2023-11-16 15:49:13 -03:00
Anthony Laibe
cd03dd949e
fix: send erc20
2023-11-16 13:40:04 +01:00
Ivan Belyakov
f4fc0ea324
feat(wallet): remove old OnDemand transfer fetch strategy as it not
...
functional and not maintained any more and we will work on improvement
of SequentialFetchStrategy
2023-11-16 12:59:47 +01:00
Ivan Belyakov
b6ade53603
feat(wallet): detect ERC1155 batch transfers.
...
Refactored transfers loading to reduce blockchain RPC requests (getBaseFee, getTransaction,
getTransactionReceipt) by reusing preloaded transaction and block fee.
Split extraction of subtransaction from logs and from ETH transfer into
different methods.
Refactored log_parser to extract sender and receiver addresses
uniformly for different transfer types.
Replaced info logs with debug where needed.
closes #4221
2023-11-16 09:37:09 +01:00
Stefan
b994cedfc3
feat(wallet) implement Wallet Connect sign APIs
...
add WalletConnect support for signing session events
- implement `eth_sendTransaction`
- implement `personal_sign`
Also fix exposing unusable accounts
Updates status-desktop #12637
2023-11-15 15:52:02 +01:00
Anthony Laibe
5381ec4a76
feat: add token list
2023-11-15 09:02:36 +01:00
Anthony Laibe
0345612a31
fix: use real id of token to estimate gas
2023-11-14 14:24:51 +01:00
Ivan Belyakov
57e370e7b9
feat(wallet): Added detection of ERC1155 SingleTransfer events
2023-11-13 20:19:57 +01:00
Stefan
36da204282
feat(wallet) add WalletConnect pair API
...
Updates #12551
2023-11-13 10:19:06 +01:00
Anthony Laibe
dc2d179692
fix: estimate gas for erc721
2023-11-10 16:11:05 +01:00
Dario Gabriel Lipicar
337f3aefec
fix: add missing error check in currency service
2023-11-09 13:12:25 -03:00
Sale Djenic
ce121710d9
fix: unlock local nonce when an error occurs and increment only when the tx is sent for real
2023-11-06 18:30:42 +01:00
Sale Djenic
05baec8bec
fix: estimate gas function resoved that it uses real network estimation instead of hardcoded value
2023-11-06 18:30:42 +01:00
Cuteivist
05530f57bd
feat: Return only community tokens ( #4249 )
2023-11-03 13:08:32 +01:00
Anthony Laibe
a0bd3c9a94
Fix: allow zero tx
...
If bonder fees are 0 there is no need to check if bonder fees are bigger or equal to amount to prevent impossible transaction
2023-11-03 09:22:29 +01:00
Dario Gabriel Lipicar
25d8c52dd5
feat: implement generalized collectibles filter
2023-11-02 11:14:20 -03:00
Dario Gabriel Lipicar
c17829bf8d
fix: properly fill collectible community data
2023-11-02 11:14:20 -03:00
Cuteivist
f57c6a26b5
fix: Correct skip check statement ( #4248 )
2023-11-02 09:11:48 +01:00
Cuteivist
3c5b0529c7
fix: Add network id for multi tx ( #4199 )
2023-10-30 10:03:29 +01:00
Cuteivist
fa5765cf83
fix: Update timestamp when upserting multi tx ( #4224 )
2023-10-30 07:53:22 +01:00
Dario Gabriel Lipicar
a38b34ae49
feat: cache community metadata in wallet
...
Fixes #12521
2023-10-26 17:36:45 -03:00
Dario Gabriel Lipicar
dca38d1d32
fix: small openseaV2 client fix
2023-10-26 17:36:45 -03:00
Cuteivist
e5fbe40b9a
fix: Show community token mint as Mint tx type ( #4214 )
2023-10-26 20:39:31 +02:00
Cuteivist
debf3b6e4d
feat: Added ERC20 community id ( #4189 )
2023-10-25 18:49:18 +02:00
Roman Volosovskyi
9d59d889f6
[ #3833 ] Increase intreval of new blocks detection command
2023-10-25 14:45:06 +02:00
Roman Volosovskyi
42527723f2
[ #4087 ] Omit history scanning on generated multiacc creation
2023-10-19 15:07:34 +02:00
Sale Djenic
b348cca15c
feat: added functionality to ask a client to sign a transaction and an endpoint to continue sending using provided signature
...
This functionality is needed in case the user wants to send a transaction and
signs it using the signature provided by the keycard (or any other compatible way).
2023-10-17 19:42:06 +02:00
Anthony Laibe
21ddaa4b9f
feat: arbitrum sepolia
2023-10-17 09:28:13 +02:00
Jonathan Rainville
de34ea37f2
fix(keycard_pairings): don't write the pairing file if content is empty ( #4113 )
...
Fixes https://github.com/status-im/status-desktop/issues/12342
2023-10-12 16:44:41 -04:00
Dario Gabriel Lipicar
2a5327d8d2
feat: emit event on received community collectibles
2023-10-12 15:42:45 -03:00
Roman Volosovskyi
778753bb57
Fix checking of ERC20 tail on new blocks scanning
2023-10-12 16:21:09 +02:00
Dario Gabriel Lipicar
28cfeb4bc8
feat: refresh collectibles when testnet mode setting changes
2023-10-12 10:18:25 -03:00
Dario Gabriel Lipicar
c2ff377585
chore: moved accounts event watcher to accountsevent package
2023-10-12 10:18:25 -03:00
Cuteivist
5674a010cd
feat: Handle Status Mint transaction ( #4137 )
2023-10-12 12:21:03 +02:00
Dario Gabriel Lipicar
094228871e
feat: trigger collectibles refresh on transfer
2023-10-11 15:22:46 -03:00
Dario Gabriel Lipicar
addf6e4aaf
feat: implemented openseaV2 api changes
2023-10-11 14:41:18 -03:00
Dario Gabriel Lipicar
544e2ea76f
feat: removed soon-to-be-deprecated openseaV1 client
2023-10-11 14:41:18 -03:00
Dario Gabriel Lipicar
bc33f6d54c
feat: removed soon-to-be-deprecated Infura client
2023-10-11 14:41:18 -03:00
Dario Gabriel Lipicar
d1f63a8d71
feat: exponential backoff for Alchemy
2023-10-11 14:41:18 -03:00
Dario Gabriel Lipicar
94ae683bc2
fix: ensure full collectible list is fetched from a single provider
2023-10-11 14:41:18 -03:00
Cuteivist
6798d1ac5c
feat: Handled token mint activity ( #4126 )
2023-10-11 07:10:08 +02:00
Anthony Laibe
39676c8c01
feat: add sepolia toggle
2023-10-09 12:55:29 +02:00
Ivan Belyakov
01526c344a
fix(wallet): new blocks were not found
2023-10-06 15:51:57 +02:00
Anthony Laibe
305b520994
fix: token balance
2023-10-06 11:47:23 +02:00
Roman Volosovskyi
d82c50b50a
[ #3930 ] Prevent repeated eth_getLogs calls (ERC20 history tail)
2023-10-05 19:45:40 +02:00
Dario Gabriel Lipicar
80f25d5ff7
fix: misc collectibles fixes
2023-10-05 09:40:18 -03:00
Roman Volosovskyi
6a110ca3df
[ #3930 ] Make sure eth_getLogs for outgoing transfers are not executed for erc20 tail
2023-10-05 11:44:09 +02:00
IvanBelyakoff
9d6577049f
Implemented balance history based on transfers ( #4022 )
...
* feat(wallet): implement balance history based on fetched transfers
* Added vendor 'ttlcache'
2023-10-04 15:00:12 +03:00
Patryk Osmaczko
53423e58ba
fix: use proper migrations for protocol's test database
...
- use `appdatabse.DbInitializer{}` in tests to ensure consistent migrations
- remove protocol's open database functions due to improper
initialization caused by missing node config migration
- introduce `PushNotificationServerConfig` to resolve cyclic dependency
issues
2023-10-03 15:11:58 +02:00
Cuteivist
ecc8b4cb55
feat: Wallet activity collectibles model ( #4074 )
2023-10-03 12:49:04 +02:00
Cuteivist
cff96f99e0
Bug: Refresh recipients model ( #4076 )
2023-10-02 13:46:05 +02:00
Roman Volosovskyi
382fcde74e
Scanning of ERC20 tail of transfers history
2023-10-01 10:09:11 +02:00
Dario Gabriel Lipicar
bd6f9b098b
feat: implement collectible connection status
2023-09-27 16:44:37 -03:00
Dario Gabriel Lipicar
ba1f8ba923
feat: add api to refetch owned collectibles
2023-09-27 16:44:37 -03:00
Dario Gabriel Lipicar
ba5cd9c1a4
feat(wallet): add community info to collectibles
2023-09-22 17:55:30 -03:00
Stefan
5c7748dbf7
feat(wallet) add API to cancel current activity filter
...
Closes status-desktop #11036
2023-09-21 13:56:44 +02:00
Stefan
579f7e4a52
chore(wallet) optimize the filer query
...
Main changes:
- Use tr_type instead of IN clause
- Use binary (X'...' syntax) directly into the query instead of
converting DB values to HEX
- Found to be slightly faster than query parameters in the dedicated benchmark
- Didn't see much improvement in filter benchmarks
- Tried various combinations of optimizations but without impressive performance results
Benchmark results:
| Name | Original | tr_type | join | hex | no-db | db_only | last | net_j |
|:-----------------------|:-----------|:----------|:---------|:---------|:----------|:----------|---------:|---------:|
| RAM_NoFilter-10 | 49580229 | 51253242 | 51112462 | 50915133 | 121217817 | 141691008 | 50908642 | 50239712 |
| SSD_NoFilter-10 | 49963604 | 51393588 | 51213038 | 50881483 | 120785679 | 141063467 | 50462767 | 49676867 |
| SSD_MovingWindow-10 | 53695712 | 54155292 | 54161733 | 54061325 | 126966633 | 146866017 | 53479929 | 53350475 |
| SSD_AllAddr_AllTos-10 | 41382804 | 41195225 | 51684175 | 52107262 | 64348100 | 97608833 | 50523529 | 49968321 |
| SSD_OneAddress-10 | 34945275 | 35103850 | 31066429 | 31328762 | 50927300 | 54322971 | 30098529 | 30252546 |
| FilterSend_AllAddr-10 | 39546808 | 37566604 | 38389725 | 38260738 | 114820458 | 125588408 | 37127625 | 36864575 |
| FilterSend_6Addr-10 | 41221458 | 41111225 | 40848288 | 40135492 | 118629700 | 128200467 | 38942521 | 39012100 |
| FilterThreeNetworks-10 | - | - | - | - | - | - | 50058929 | 49854450 |
Update status-desktop: #11036
2023-09-21 13:56:44 +02:00
Cuteivist
bc4093299e
feat: Filter by collectibles ( #4028 )
2023-09-21 08:58:36 +02:00
Michał
4cab5b6106
feat: expose raw token's balance ( #4030 )
2023-09-20 12:48:08 +02:00
Cuteivist
d29c6c5b6f
feat: Calculate finalize status and filter by it ( #3969 )
2023-09-20 10:30:31 +02:00
Roman Volosovskyi
1dca3adb89
Basic test for findBlocksCommand
2023-09-19 13:17:36 +02:00
Stefan
ad971278d9
chore(wallet) remove activity filter dependency on accounts
...
Require that the activity filter is passed at least one account address
to extract type sent/received
Updates status-desktop #11980
2023-09-19 09:06:57 +02:00
Dario Gabriel Lipicar
e337ab4f13
feat: implement collectible ownership status
2023-09-15 18:55:09 -03:00
Dario Gabriel Lipicar
e502ba82ce
feat: implement single account fetch on add and partial progress report
2023-09-15 18:55:09 -03:00
Dario Gabriel Lipicar
b4d5c22050
feat: implement collectibles ownership update timestamp db
2023-09-15 18:55:09 -03:00