Commit Graph

4853 Commits

Author SHA1 Message Date
Anton Danchenko 74e9ce93bf
test(wallet)_: status-go integration tests (#5302) 2024-06-11 13:36:20 +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
kaichao 47899fd045
feat_: hash based query for outgoing messages. (#5217)
* feat_: hash based query for outgoing messages.

* chore_: more logs

* chore_: fix comments

* chore_: do not lock when send queries

* chore_: use constant for magic number

* chore_: remove message ids from query queue after ack

* chore_: fix ack clean process

* chore_: fix message resend test

* chore_: add test for waku confirm message sent.

* chore_: fix tests.

* chore_: fix more

* chore_: set store peer id when mailserver updates

* fix_: tests

* chore_: increase max hash query length

* chore_: remove debug log of ack message

* chore_: remove automatic peer selection

* chore_: mark raw message to sent after ack

* chore_: fix test

* chore_: fix test
2024-06-11 15:45:01 +08:00
Patryk Osmaczko 27934a4e1f chore(communities)_: reject outdated community descriptions
Prevent the inclusion of CommunityDescription with an outdated clock in
MessengerResponse to avoid false-positives in tests and reduce redundant
data exchange between status-go and clients.
2024-06-11 08:49:07 +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
Pablo Lopez b434d50ec5
fix_: ability to turn on/off interactive mode in serve (#5318) 2024-06-10 13:21:09 +03:00
Pablo Lopez cd8f8aaf62
fix_: cli not logging all messages (#5317)
* fix_: cli not logging all messages

* refactor_: PR comments: refactor interactive send messages and marshal before
2024-06-10 10:10:09 +03:00
Siddarth Kumar 8e53f62331
chore_: set $GIT_COMMIT for codeclimate (#5315)
When Jenkins creates a build, it can sometimes run the build on a detached HEAD, causing the commit SHA to be different from the SHA of your branch. This will cause issues when reporting test coverage to Code Climate.

Setting `GIT_COMMIT` fixes code climate upload errors.

ref -> https://docs.codeclimate.com/docs/jenkins#jenkins-ci-builds

Closes #5294
2024-06-10 07:30:10 +05:30
Patryk Osmaczko c2f5bdb907 chore(scripts)_: extend tests timeout to 35mins 2024-06-07 23:46:20 +02:00
Patryk Osmaczko 2d4ef8b2e0 chore(communities)_: cover ERC721 based permissions reevaluation with tests 2024-06-07 23:46:20 +02: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
Mikhail Rogachev b0213e6a41
feat_: delete or update permission when deleting a channel (#5297)
* feat_: delete or update channel permissions when deleting a channel

* chore_: review fixes

* chore_: review fixes (second iteration, squash it!)
2024-06-07 18:30:01 +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 1be465d23c chore(no-torrent)_: Refactored NewArchiveManager to use config pattern 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 65fc455e4f chore(no-torrent)_: Fixed failing tests 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson e87d63693d chore(no-torrent)_: Renamed torrent files to archive 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 896d9c0e24 chore(no-torrent)_: Renamed archive files to archive_file 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 3d68013332 chore(no-torrent)_: Renamed Torrent to Archive
I've renamed TorrentManager to ArchiveManager, ArchiveManager to ArchiveFileManager, TorrentContract to ArchiveService, ArchiveContract to ArchiveFileService. I've also renamed all init functions and struct fields to the appropriate archive-centric naming.
2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson c711811761 chore(no-torrent)_: Renamed **ManagerMobile to **ManagerNop 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson ac3bcbdef0 chore(no-torrent)_: Explicitly cast ManagerSuite.torrentManager
Instead of using the TorrentContract interface I've set the field to expicitly declare as *TorrentManager. This removes all the random type casting used in the tests. I also removed all the usages of buildTorrentConfig() as we build the test suite with the torrent config now.
2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson c747978ec3 chore(no-torrent)_: Replaced fmt.Sprintf usage from zap.logger calls 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson a9c7db6f25 chore(no-torrent)_: Replaced entirely LogStdout with default logger 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 210c8bd8c6 chore(no-torrent)_: Gave proper attribution and full context 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 6b5b738662 chore(no-torrent)_: Fixed torrent tests 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 66cd084084 chore(no-torrent)_: Copy and pasted Andrea's work
https://github.com/status-im/status-go/pull/5295
2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 88343eed50 chore(no-torrent)_: Added pre 1.17 build commands 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 92c431f9cc chore(no-torrent)_: Added more complex build conditions to exclude OSes 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 4bb4ca5cce chore(no-torrent)_: Implemented build OS conditional build instructions 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 9ec8cdf3d8 chore(no-torrent)_: Created nil structs for Mobile use 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson f0ac9715e8 chore(no-torrent)_: Created TorrentContract and ArchiveContract interfaces 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson bf5ab8c46b chore(no-torrent)_: moved archive related funcs into ArchiveManager
To be honest once I started this work I quickly realised how pointless it is as archiving functionality and torrent seeding functionality are really entwined. So I'm keeping the code I've done but it is a bit pointless without spending a lot of time untangling torrenting and archiving. I'm just going to make an interface for all the functions that are used publically from TorrentManager. I think that this will be the fast way to move on from this issue. I don't like this work any more, there is a lot of work to do elsewhere and torrent is a rabbit hole filled with canned worms.
2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 4761b1245e chore(no-torrent)_: removed TorrentManager from checkIfIMemberOfCommunity 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 96b4684647 chore(no-torrent)_: removed TorrentManager from handleImportedMessages 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 66d57a3fd0 chore(no-torrent)_: Unexported all exported funcs not used externally 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 93256fc252 chore(no-torrent)_: Made torrentClientReady() belong to TorrentManager 2024-06-07 13:44:12 +01: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
Samuel Hawksby-Robinson 6c52d0b120 chore(no-torrent)_: Resolved TorrentManager dep injection
I'm not particularly proud of this work. I've just passed in all the deps as vars, there are way too many concerns handled by the TorrentManager that I don't know what is the best approach to removing them. I've even resorted to declaring an 'Publisher' interface to handle all the 'publish()' calls the TorrentManager makes. Next up I need to resolved the communities Manager API, because I've removed all of its end points. The TorrentManager needs to be a lot more simple than it is.
2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson c084ca4230 chore(no-torrent)_: Ensured move of all torrent funcs and structs
I also ensured that the order of functions matches the original code, to make comparison easier during review.
2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 21325345f9 chore(no-torrent)_: Initial migration of all torrent dependent code
Code moved into new TorrentManager. This commit is BROKEN! The code is not ready to use so don't use it, lots more work to do. Biggest problem is that the torrent management in Manager is very tightly coupled to sending encrypting etc. All of that needs to be prised apart
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
Pablo Lopez 622b6a995e
fix_: minor change to log message id (#5309) 2024-06-07 13:17:49 +03:00
frank 33ccf784c5
fix_:Missing "Backup Recovery Phrase" option in profile (#5305) 2024-06-07 07:34:08 +08: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