Commit Graph

1772 Commits

Author SHA1 Message Date
Andrea Maria Piana 5bb7c6a8f3 feat!: drive proxy stage name from the client 2024-08-14 19:56:30 +01:00
Igor Sirotin ff1df0c492
fix_: publish community periodically (#5709)
* fix_: publish community at app start

* fix_: allow publishing community with same clock

* chore_: increase community publish interval to 24 hours
2024-08-14 10:32:11 +01:00
Igor Sirotin 67cf830097
fix_: cherry pick 5696: block on logout (#5703)
* fix_: block on logout (#5696)

* fix_: check context on processAndPushTelemetry

* fix_: fix waitgroup add/done in Waku

* fix(pendingTracker)_: stop the pending transacitonTracker on logout

* chore_: lint fix

---------

Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2024-08-13 20:13:15 +01:00
Jonathan Rainville c5e7ca3827
fix(contact_request)_: potential fix to contact request with no saved message (#5665)
Fixes https://github.com/status-im/status-desktop/issues/15930

The issue happened because I received a notification about a contact request, but the request was not associated with a message in the DB. The DB didn't have a message with the required ID in it.

This potential fix moves the creation of the contact request later in the handling code, because the only way this bug can happen as far as I see it is if there is an error later in the handler function and the message is never added to the response, and therefore never saved.
2024-08-08 18:00:16 +05:30
saledjenic c04e0dab4a
feat_: accounts/saved addresses capacity related api endpoints added (#5657)
Added endpoints:
- `RemainingAccountCapacity`
- `RemainingKeypairCapacity`
- `RemainingWatchOnlyAccountCapacity`
- `RmaininngCapacityForSavedAddresses`
2024-08-06 15:40:04 +01:00
IvanBelyakoff e16d820ecd
chore_: CHERRY-PICK Proxy URLs for blockchain providers (#5644)
* feat(wallet)_: add basic auth for cryptocompare proxy (#5536)

* feat(wallet)_: add basic auth for cryptocompare proxy

* test(wallet)_: add a test for httpclient used in market clients

* feat(wallet)_: add status proxy RPC urls for blockchain providers

Replace the status proxy URL for cryptocompare.
2024-08-01 10:06:34 +01:00
Jonathan Rainville 003058915e
fix_: add missing message verification flag when creating an account (#5570) (#5631) 2024-07-30 19:05:22 +01:00
Icaro Motta 919277be38
feat(pairing)_: Fallback pairing seed (#5614) (#5627)
* feat(pairing)!: Add extra parameters and remove v2 compatibility

This commit includes the following changes:

I have added a flag to maintain 2.29 compatibility.

Breaking change in connection string

The local pairing code that was parsing the connection string had a few non-upgradable features:

It was strictly checking the number of parameters, throwing an error if the number was different. This made it impossible to add parameters to it without breaking.
It was strictly checking the version number. This made increasing the version number impossible as older client would just refuse to connect.
The code has been changed so that:

Two parameters have been added, installation-id and key-uid. Those are needed for the fallback flow.
I have also removed version from the payload, since it wasn't used.

This means that we don't support v1 anymore. V2 parsing is supported . Going forward there's a clear strategy on how to update the protocol (append parameters, don't change existing one).

https://www.youtube.com/watch?v=oyLBGkS5ICk Is a must watch video for understanding the strategy

Changed MessengerResponse to use internally a map of installations rather than an array (minor)
Just moving towards maps as arrays tend to lead to subtle bugs.

Moved pairing methods to messenger_pairing.go
Just moved some methods

Added 2 new methods for the fallback flow
FinishPairingThroughSeedPhraseProcess
https://github.com/status-im/status-go/pull/5567/files#diff-1ad620b07fa3bd5fbc96c9f459d88829938a162bf1aaf41c61dea6e38b488d54R29

EnableAndSyncInstallation

https://github.com/status-im/status-go/pull/5567/files#diff-1ad620b07fa3bd5fbc96c9f459d88829938a162bf1aaf41c61dea6e38b488d54R18

Flow for clients
Client A1 is logged in
Client A2 is logged out

Client A1 shows a QR code
Client A2 scans a QR code
If connection fails on A2, the user will be prompted to enter a seed phrase.
If the generated account matches the key-uid from the QR code, A2 should call FinishPairingThroughSeedPhraseProcess with the installation id passed in the QR code. This will send installation information over waku. The user should be shown its own installation id and prompted to check the other device.
Client A1 will receive new installation data through waku, if they are still on the qr code page, they should show a popup to the user showing the received installation id, and a way to Enable and Sync, which should call the EnableAndSyncInstallation endpoint. This should finish the fallback syncing flow.
Current issues
Currently I haven't tested that all the data is synced after finishing the flow. I see that the two devices are paired correctly, but for example the DisplayName is not changed on the receiving device. I haven't had time to look into it further.

* test_: add more test for connection string parser

* fix_: fix panic when parse old connection string

* test_: add comments for TestMessengerPairAfterSeedPhrase

* fix_: correct error description

* feat_:rename FinishPairingThroughSeedPhraseProcess to EnableInstallationAndPair

* fix_: delete leftover

* fix_: add UniqueKey method

* fix_: unify the response for InputConnectionStringForBootstrapping

* fix_: remove fields installationID and keyUID in GethStatusBackend

* fix_: rename messenger_pairing to messenger_pairing_and_syncing

---------

Co-authored-by: frank <lovefree103@gmail.com>
Co-authored-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2024-07-30 13:03:43 -03:00
Andrey Bocharnikov 5dcff278d2
fix(mailservers)_: Do not add backoff if user action triggered store node disconnection (#5602)
fix(mailservers)_: ToggleUseMailservers should connect/disconnect from active store node

fixes status-im/status-desktop#15032
2024-07-29 18:56:42 +01:00
Icaro Motta 62f342c2e9
feat_: Check for mobile data connection if setting is on (#5511) (#5613)
* feat_: Check for mobile data connection if setting is on

* fix_: check code control flag inside  asyncRequestAllHistoricMessages

---------

Co-authored-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Co-authored-by: Igor Sirotin <sirotin@status.im>
2024-07-29 14:22:15 -03:00
saledjenic 82b63ccf29
chore_: needed router changes (#5620)
* fix_: setting best route only when we have it

* chore_: when returning errors, give precedence to custom (network) errors

* chore_: skip flaky tests (#5606)

* chore_: skip TestPeerCount

* chore_: skip flaky wallet tests

* chore_: skip flaky TestMemberReceivesPendingRequestToJoinAfterAfterGettingTokenMasterRole

* test_: flaky router tests fixed

Closes https://github.com/status-im/status-go/issues/5601

---------

Co-authored-by: Igor Sirotin <sirotin@status.im>
2024-07-29 18:03:13 +01:00
Igor Sirotin 07641bf38f
fix_: remove personal information from logs (#5608) 2024-07-28 22:11:24 +01:00
Igor Sirotin 2013b65c58
fix_: make StoreNodeRequestManager filters ephemeral (#5582) (#5590) 2024-07-26 17:48:01 +01:00
Igor Sirotin 0e579fbd01
fix_: tests (#5585) (#5588)
* fix_: router tests errors sprintf

* chore_: skip flaky tests
2024-07-26 10:46:38 +01:00
Mykhailo Prakhov 30fee0cfd3 fix(communities)_: validate if RawMessage from DB is valid before sending it 2024-07-23 19:54:39 +02:00
Mykhailo Prakhov 54555b47de fix(logs)_: remove community private key logging in publishCommunityPrivilegedMemberSyncMessage 2024-07-19 16:50:40 +02:00
Vitaly Vlasov 3ef445dbcf fix_: share all future addresses storage 2024-07-18 12:08:40 +03:00
Ivan Belyakov 102b57098e test(communities)_: skip flaky communities test 2024-07-17 19:17:35 +02:00
Patryk Osmaczko 9403475572 chore(communities)_: request missing channels' encryption keys in a loop
closes: status-im/status-desktop#14683
2024-07-16 16:44:50 +02:00
Vitaly Vlasov 67364dadc8 chore_: small mailserver async fetching refactor 2024-07-16 10:53:42 +03:00
Jonathan Rainville 621b31a279
fix(community)_: fix pure readonly channels not respecting the right roles (#5513)
Fixes https://github.com/status-im/status-desktop/issues/15547
2024-07-15 13:53:20 -04:00
Prem Chaitanya Prathi 9a703162c4
refactor: only use shards (#5474)
* refactor_: use shards by default

* fix_: metadata lightclient check

* chore_: update go-waku
2024-07-15 20:55:12 +05:30
Prem Chaitanya Prathi 58a3cc1127 feat(waku)_: allow client to set store confirmations 2024-07-15 09:37:57 +01:00
richΛrd 56cc5c96c5
feat_: bump go-waku to introduce new keep alive interval (#5484)
- Also renames the existing keepAliveInterval to randomPeerKeepAliveInterval, and uses time.Duration instead of int
2024-07-11 14:36:34 -04:00
Andrey Bocharnikov 02b822802c chore(community)_: serialise community jsons with image URLs
Fix status-im/status-desktop#15340
2024-07-11 18:55:24 +07:00
kaichao 798877788c
fix_: delivered message should not send envelope sent signal (#5502)
* fix_: delivered message should not send envelope sent signal

* chore_: refactor
2024-07-11 19:41:49 +08:00
Richard Ramos 80fe18bef9 feat_: `wakuext_relayPeersByTopic` 2024-07-11 12:32:31 +01:00
Andrea Maria Piana 9a59d6a459 feat(metrics)_: add centralized metrics
This commit adds support for centralized metrics.
There are two providers as of now, and we haven't quite decided which
one to go for, so for the time being both are supported.
It also introduces a new endpoint InitializeApplication that replaces
OpenAccounts
2024-07-11 10:05:31 +01:00
Jonathan Rainville 11fcec2109
fix(messenger)_: make sure display name is legit before sending (#5496)
FIxes https://github.com/status-im/status-desktop/issues/15284

Somehow, the display name could get messed up and when it happened, no message could be received, because we also validate the display name on reception.

I think the problem for the particular user happened because the special display name was added before we enforced it, or through the sync.
2024-07-09 15:22:59 -04:00
Mykhailo Prakhov 7ec5b18642 fix(CommunitySharedAddresses)_:
- TokenMaster request shared addresses on restoring from a backup
- Fixes sharing members revealed adresses
- Filter out outdated ApplicationMetadataMessage_COMMUNITY_PRIVILEGED_USER_SYNC_MESSAGE messages
2024-07-09 18:19:40 +02:00
Mykhailo Prakhov 8f2ef400d1 fix(TestUtils)_: remove hardcoded CommunityPermissions_AUTO_ACCEPT for createCommunityConfigurable Membership 2024-07-09 18:19:40 +02:00
Mykhailo Prakhov 3f756a211f fix(TokenBalanceMock)_: mocked GetBalancesByChain returns all known balances, but not for certain accounts and chain ids 2024-07-09 18:19:40 +02:00
Mykhailo Prakhov 243ff6799d fix(reevaluateMembers)_: changing privileged permissions (TM -> admin, admin -> TM) 2024-07-09 18:19:40 +02:00
Mykhailo Prakhov 6333e2a053 fix(CommunityMember)_: update LastUpdateClock 2024-07-09 18:19:40 +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
Jonathan Rainville 2458a8b657
fix(search)_: search now works with Discord import and bridged messages (#5489)
Fixes https://github.com/status-im/status-desktop/issues/8721
2024-07-05 13:33:14 -04:00
Mykhailo Prakhov fc401bc8a7
fix(communities)_: kick AC notification after control node device change (#5472)
fix(communities)_: kick AC notification after control node device change
2024-07-05 10:38:12 +02:00
Patryk Osmaczko cb20c4c64a feat(communities)_: introduce bloom filter members list
iterates: status-im/status-desktop#15064
2024-07-04 17:54:29 +02:00
Andrea Maria Piana d69b3e5cc9 chore_: limit max number of ephemeral keys to 3
This commit limits the number of ephemeral keys used by the push
notification client to 3, as it was noticed that it would greatly
increase the number of filters installed and was unbound.
2024-07-04 15:23:25 +01:00
Jakub Sokołowski 0a6b76643e fix(integration-tests)_: add missing HTTPVirtualHosts
And set it to `*` for tests to avoid RPC access issues.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-07-04 16:14:02 +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
Prem Chaitanya Prathi 437f830b51
feat_: aggregate filter subscriptions to do bulk subs with peer (#5440)
* feat_: aggregate filter subscriptions to do bulk subs with peer

* chore_: take possible deadlock fix in go-waku

* fix_: don't resubscribe filters unless there is a change in shard for community (#5467)
2024-07-04 10:34:53 +05:30
Andrey Bocharnikov d5acf01291 fix(unfurl)_: The application crashes when generating status user profile link preview
* It happened because the contact and the error were both nil

fixes status-im/status-desktop#15297
2024-07-01 21:57:18 +07: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
Patryk Osmaczko 89e7e7f24b refactor(communities)_: expand `channelEncrypted` usage 2024-06-27 20:15:42 +02:00
Andrea Maria Piana 2bc2099d55 chore(performance)!: Remove member list in non-encrypted channels
This commit removes the list of members from non token gated channels.
Unfortunately is a breaking change. I could make it non-breaking, but
we would lose any performance benefit.

For clients, the pseudo code for checking the member list of a channel
is:

```
members := channel.TokenGated ? channel.Members : community.Members
```
2024-06-27 10:44:49 +01:00
kaichao d8a49c538b
Reset MVDS epoch after peer is online (#5349)
* feat_: reset epoch for online peer

* chore_: fix

* chore_: refactor

* chore_: update mvds

* chore_: fix lint

* chore_: update mvds

* chore_: make vendor

* chore_: fix tst

* chore_: tuning store query hash parameter

* chore_: non-blocking mvds status change channel
2024-06-27 09:54:31 +08:00
richΛrd 7731f56b17
feat(waku2)_: check for missing messages (#5281) 2024-06-26 14:25:44 -04:00
Mikhail Rogachev 1ba4b86c7e
feat_: Add WS settings to the node config (#5346)
* feat_: add ability to enable http and ws connections from the client app
* feat_: add websocket option for api config
* fix_: use new api options in statusd
* chore_: add test for `overrideApiConfig`
2024-06-26 16:33:22 +02:00
Pablo Lopez 8480429cbb
fix_: force process online/offline state hanlding after computer back from sleep (#5422)
* fix_: force process online/offline state hanlding after computer back from sleep

* fix_: naming variables
2024-06-26 16:03:44 +03:00