Commit Graph

1771 Commits

Author SHA1 Message Date
Vaclav Pavlin 780e3e55f4
feat(telemetry)_: publish peerId (#5534)
* feat(telemetry)_: publish peerId

* fix_: fix goimports lint error in waku

* fix_: trim extra slash, use the right Waku service

* fix_: update protocol/messenger.go

Co-authored-by: richΛrd <info@richardramos.me>

* fix_: panic when PeerID is called on wakuv1

* fix_: use option instead of additional param for PeerID

---------

Co-authored-by: Arseniy Klempner <arseniyk@status.im>
Co-authored-by: richΛrd <info@richardramos.me>
2024-07-31 20:27:43 -07:00
richΛrd 5d309e2c64
feat_: use storev3 instead of v2 for history queries (#5123) 2024-07-30 14:28:27 -04:00
IvanBelyakoff 5b34cd9e9f
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
2024-07-30 14:48:22 +01:00
frank f123e98179
feat: fallback pairing seed (#5614)
* 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: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2024-07-30 17:14:05 +08:00
richΛrd 0e982f1a3d
chore_: rename shards.test to status.prod (#5571) 2024-07-29 17:19:48 -04:00
Igor Sirotin 65334d42ed
fix_: remove personal information from logs (#5608) (#5612) 2024-07-29 10:29:24 -04:00
Igor Sirotin e76d93d340
chore: skip flaky tests (#5606)
* chore_: skip TestPeerCount

* chore_: skip flaky wallet tests

* chore_: skip flaky TestMemberReceivesPendingRequestToJoinAfterAfterGettingTokenMasterRole
2024-07-27 10:27:26 +01:00
Andrea Maria Piana 3cc4767638
Check for mobile data connection if setting is on (#5511)
* feat_: Check for mobile data connection if setting is on

* fix_: check code control flag inside  asyncRequestAllHistoricMessages

---------

Co-authored-by: Igor Sirotin <sirotin@status.im>
2024-07-26 22:34:57 +01:00
richΛrd 3792d37df4
fix_: add missing message verification flag when creating an account (#5570) 2024-07-26 15:19:19 -04:00
Andrey Bocharnikov 5d113071db fix(NodeConfig)_: Do not add backoff if user action triggered store node disconnection
fixes status-im/status-desktop#14929
2024-07-26 22:24:55 +07:00
Andrey Bocharnikov fe588c7a79 fix(mailservers)_: ToggleUseMailservers should connect/disconnect from active store node
fixes status-im/status-desktop#15032
2024-07-26 22:24:55 +07:00
Igor Sirotin 977a93b005
fix_: make StoreNodeRequestManager filters ephemeral (#5582) 2024-07-26 08:53:08 +01:00
Igor Sirotin 870ede0829
fix_: tests (#5585)
* fix_: router tests errors sprintf

* chore_: skip flaky tests
2024-07-25 23:27:12 +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
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