Commit Graph

266 Commits

Author SHA1 Message Date
Alex Jbanca 62e3e9bd62
performance(sqlcipher): provide optimized versions of sha1_compress (#3490)
* performance(sqlcipher): provide optimized versions of sha1_compress
- on ARM, use Neon/ACLE extensions (a 3x-4x perf improvement)
- on x64 use a plain C implementation from nayuki (a 2x-3x perf gain)

Unfortunately, we can't use the dedicated `SHA1` extension on x64 as this
became widely available only recently (esp. on AMD CPUs)
2023-05-16 20:18:38 +02:00
Alex Jbanca ac837365be performance(sqlcipher): Fix burn_stack performance issue
Implements a cross-platform version of https://github.com/OP-TEE/optee_os/pull/3102

1. Remove recursion
2. Use memset instead of while loop
2023-05-12 09:08:39 +03:00
Richard Ramos acad6e4958 chore: bump go-waku 2023-05-09 17:26:29 -04:00
Sale Djenic 31144ed5a3 chore: `password` removed from the `DeleteAccount` function
Asking for a password when removing a key is not necessary.
2023-05-09 10:48:44 +02:00
frank 272173c939
feat:support backup/sync social settings (#3407)
* feat:support backup/sync social settings

* update binddata.go

* fix lint issue

* addressed feedback from @saledjenic @osmaczko

* addressed feedback from @saledjenic @osmaczko

* add corresponding test for local pairing

* addressed feedback from @saledjenic
2023-04-20 06:59:09 +08:00
Samuel Hawksby-Robinson 17bc1e9f5d Rough initial proof of concept for udp network checking 2023-04-17 12:01:38 +01:00
frank 5fd9e93e9c
backup/sync if seed phrase removed (#3385) (#3384)
backup/sync bio
2023-04-13 08:45:25 +08:00
RichΛrd ba1ba1ac02
chore: use go 1.19 and bump go-libp2p (#3371)
* chore: use go 1.19 and bump go-libp2p

* chore: bump golangci-lint

* chore: update go version in shell.nix
2023-04-07 20:23:07 +02:00
frank fd6073ab2e
rewrite mention in go (#3309) 2023-04-07 16:47:38 +08:00
Richard Ramos a6d33b9912 chore: bump go-waku to fix mem leak 2023-03-27 10:56:23 -04:00
Samuel Hawksby-Robinson 7cd7430d31
Improved Local Pairing Separation of Concerns (#3248)
* Moved all configs into config.go

* Completed build out of new config structures

* Completed SenderClient process flow

* Completed sync data Mounter and client integration

* Completed installation data Mounter and client integration

* House keeping, small refactor to match conventions.

PayloadEncryptor is passed by value and used as a pointer to the instance value and not a shared pointer.

* Reintroduced explicit Mounter field type

* Completed ReceiverClient structs and flows

* Finished BaseClient function parity with old acc

* Integrated new Clients into tests

Solved some test breaks caused by encryptors sharing pointers to their managed payloads

* Built out SenderServer and ReceiverServer structs

With all associated functions and integrated with endpoints.

* Updated tests to handle new Server types

* Added docs and additional refinement

* Renamed some files to better match the content of those files

* Added json tags to config fields that were missing explicit tags.

* fix tests relating to payload locking

* Addressing feedback from @ilmotta

* Addressed feedback from @qfrank
2023-03-23 11:44:15 +00:00
Andrea Maria Piana 44a0f5b74d
Add collapsed community categories 2023-03-14 17:13:21 +00:00
Ibrahem Khalil cd96f557f9
Allow underscores for status-tags (#3286) 2023-03-14 17:31:15 +02:00
Richard Ramos cbb016ac00 feat: update go-waku to introduce meta field and deterministic hashing 2023-03-13 21:03:34 -04:00
Richard Ramos b8d5455904 chore: bump go-waku version 2023-03-06 17:39:59 -04:00
Richard Ramos beeef4c5e7 fix: reduce log level for closing conn messages 2023-03-02 14:39:23 -04:00
Anthony Laibe 60e1978bb5 feat: fallback rpc endpoint 2023-02-28 08:43:57 +01:00
Andrea Maria Piana f77bff6d25 Add primary & secondary names 2023-02-27 15:13:43 +00:00
Richard Ramos 665bc8452c fix: panic - putting the same entry twice not supported 2023-02-24 13:29:58 -04:00
RichΛrd 5773616757
fix: set a limit to the multiaddr field of enr (#3230) 2023-02-24 08:24:54 -04:00
RichΛrd 0babdad17b
chore: upgrade go-waku to v0.5 (#3213)
* chore: upgrade go-waku to v0.5
* chore: add println and logs to check what's being stored in the enr, and preemptively delete the multiaddr field (#3219)
* feat: add wakuv2 test (#3218)
2023-02-22 17:58:17 -04:00
dlipicar 1d1a95091d
feat: implement currency formatting calculation (#3191) 2023-02-17 11:11:07 -03:00
RichΛrd f6b4721c4a
fix: invalid length of multiaddr field (but loaded succesfully anyway) (#3185)
* fix: invalid length of multiaddr field (but loaded succesfully anyway)
* chore: update VERSION
2023-02-13 10:41:19 -04:00
Anthony Laibe 51f99a2631 chore: update go-ethereum 2023-02-13 12:36:46 +01:00
Richard Ramos b8dbbe322c fix: bump go-waku to handle cases where enr has less than 1 character 2023-02-10 12:34:24 +00:00
RichΛrd d2cce5ee80
fix: ignore enr multiaddr field if empty (#3175) 2023-02-09 10:06:07 -04:00
Andrea Maria Piana 9a598cc65b Bump go waku 2023-02-08 17:48:09 +00:00
RichΛrd 5b642d3bed
fix: enr exceeds 300 bytes (#3171) 2023-02-07 10:33:26 -04:00
Richard Ramos 03c61e8847 chore: bump go-waku to also log output from go-libp2p into geth.log 2023-02-02 16:26:25 -04:00
Siddarth Kumar efee11d28a
Introduce QR code generation & serve it via the media server (#3154)
* introduce QR code generation
2023-02-02 19:26:00 +05:30
Richard Ramos 17fcd947d2 fix(waku2): close discv5 iterator on logout 2023-01-31 14:26:09 -04:00
Anthony Laibe 5d80c5cc42 fix: update go-waku 2023-01-30 13:39:49 +01:00
Richard Ramos cccea5f14b chore(waku2): bump go-waku to notice disconnection from peers faster 2023-01-27 14:17:43 -04:00
Richard Ramos 0b6eddf67d fix: close connections when maximum number of peers is reached 2023-01-18 11:43:07 -04:00
Richard Ramos 7de1753549 waku2 - restart discv5 when peers are low and use newer go-waku code to deal with discovery 2023-01-18 11:43:07 -04:00
dlipicar 77a56e2b93
Feature/8640 unified currency rounding (#3079)
* feat(@desktop/wallet): added iso4217 library for fiat currency display decimals

* feat(@desktop/wallet): added token peg info and use numbers for token market values

* feat(@desktop/wallet): added
2023-01-12 14:54:14 -03:00
Richard Ramos 0527009f6c chore: update gowaku 2023-01-10 09:02:37 -04:00
dlipicar 7d04be3613
Revert "feat/currency rounding (#3041)" (#3046)
This reverts commit 3d22f4a86d.
2023-01-04 09:40:26 -03:00
dlipicar 3d22f4a86d
feat/currency rounding (#3041)
* feat(@desktop/wallet): added iso4217 library for fiat currency display decimals

* feat(@desktop/wallet): added token peg info and use numbers for token market values

* feat(@desktop/wallet): extend wallet api to fetch prices in multiple currencies

* chore(@desktop/wallet): rename token peg field for clarity
2023-01-03 10:24:55 -03:00
frank 9137257638
synchronize display name (#2989) 2022-12-29 14:16:19 +08:00
Pascal Precht b4bdfd3df6 Keep track of last seen magnetlink
This is to prevent processing magnetlinks if they haven't changed
2022-12-20 15:16:08 +01:00
Pascal Precht e7d827fff1 feat: recgonize `0x00001` as system mention
This "id" or "tag" will be interpeted/interpolated as `@everyone` by
clients.

For this change to work

https://github.com/status-im/markdown/pull/5

is needed.
2022-12-20 15:13:22 +01:00
Andrea Maria Piana 8593866862 Restart discovery when it fails
When discovery fails to be seeded with bootstrap/fallback nodes, it
never recovers.

This commit changes the behavior so that status-go retries fetching
bootnodes, and restarts discovery when that happens.
2022-12-14 20:54:48 +00:00
Richard Ramos 38a4bbf235 chore: bump go-waku 2022-12-14 20:54:48 +00:00
Richard Ramos b50a134b48 chore: bump go-waku to disconnect peers if keep alive loop wasnt executed recently 2022-12-06 10:22:46 -04:00
Richard Ramos 5b69985b18 chore(waku2): bump go-waku 2022-11-29 16:30:53 -04:00
Richard Ramos 3047521bd0 chore: bump go-waku 2022-11-28 10:44:41 -04:00
Richard Ramos ea89a41d96 fix: go-waku update discv5 ENR on succesful NAT 2022-11-28 08:41:23 -04:00
Richard Ramos 91aac3cec0 chore: upgrade go-waku 2022-11-09 17:39:17 +03:00
Richard Ramos 6300751e36 chore: upgrade go-waku and log about messages sent/received 2022-11-09 17:39:17 +03:00
Pascal Precht 0bdb596d3b feat: introduce discord import tool 2022-10-28 09:52:26 +02:00
Anthony Laibe 993c236c04 fix: run make vendor 2022-10-26 12:35:50 +02:00
Anthony Laibe 63eb3d71ba feat: run go mod tiny/vendor 2022-10-26 09:39:30 +02:00
Andrea Maria Piana fc836e4c76 upgrade ethereum 2022-10-26 09:39:30 +02:00
Anthony Laibe b11643e66d feat: hop integration 2022-10-26 09:39:30 +02:00
Jakub Sokołowski d7e79dba80
go.mod: ran make tidy
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-24 11:25:08 +02:00
r4bbit.eth 6c148389c1
fix(message_persistence): ensure query cursor value is supplied where (#2898)
needed

Unfortunately, this one slipped through when introducing helper
functions to retrieve messages.

Sometimes, queries need an additional empty `cursor` value.
2022-10-07 13:38:28 -04:00
Richard Ramos bf04ff3502 fix: waku2 store queries 2022-10-05 18:43:10 -04:00
Richard Ramos 7272bf0d91 fix: waku2 storenode cursor 2022-10-03 18:49:41 -04:00
Pascal Precht 9ee2967e78 feat(message_persistence): add discord message author image payload fields
This also adds some persistence APIs to operate on the new field (later
needed for the discord imoprt tool)
2022-09-19 13:47:16 +02:00
Richard Ramos 824bb17ba9
fix: determine if a enr contains a UDP port (#2864) 2022-09-16 09:09:13 -04:00
frank 6e4ac1c495 Use image server for all kind of images and integrate identity rings 2022-09-16 09:52:08 +01:00
frank 325efd01d0 Implement identity ring 2022-09-16 09:52:08 +01:00
Anthony Laibe 48f678052c
feat: batch balance (#2833) 2022-09-09 08:58:36 +02:00
Pascal Precht 3f987cc565 fix(messenger): don't remove inactive chats when syncing
This commit ensures we're relying on `chat.DeletedAtClockValue` instead
of `chat.Active` to know whether or not we need to remove the chat from
paired devices.

Because we were relying on `Active != true`, we ended up with a serious
but that would result in deactivating all chats on paired devices.

The reason the chats would disappear on paired devices is because, when
setting up a new device by importing a seedphrase, chances are this
device will receive `HandleBackUp` signals (which original from other
devices with the same account that backed up contacts etc).

When backups are handled, we create chats for every contact that's part
of the backup signal. Those chats are set to `Active = false` because
the signal handling shouldn't cause those chats to show up in the UI.

However, because those are set to `Active = false`, the next time the
user tries to sync from this devices, all those chats are considered as
"removed", hence sending "chat removed" signals when syncing (which then
causes those chats to disappear on all paired devices.

We need to rely on `DeletedAtClockValue` to know whether a chat was
indeed removed and only then emit such a signal.
2022-08-25 11:51:01 +02:00
Samuel Hawksby-Robinson 1e55797ec8 Added challenge middleware 2022-08-25 00:02:32 +01:00
Richard Ramos ad326fa290
feat: wakuv2 store (#2780)
Allows runnning a store node depending on node config settings.
2022-08-19 12:34:07 -04:00
Richard Ramos 05073a9640
chore: bump markdown (#2726) 2022-06-29 08:15:21 -04:00
Pascal Precht c855272340 feat: add garbage collection for soft deleted bookmarks
This introduces a simple garbage collection which checks for all soft
deleted bookmarks (`removed = 1`) which have been marked for garbage
collection more than 30 days ago from the time of bootstapping the
messenger.

Closes #2705
2022-06-17 14:21:21 +02:00
Pascal Precht 9d5bcc3c60 feat: sync `CommunitySettings` across paired devices
This commit introduces a new `clock` field in the
`communities_settings` table so that it can be leveraged for syncing
community settings across devices.

It alsoe exends existing `syncCommunity` APIs to generate
`SyncCommunitySettings` as well, avoiding sending additional sync messages
for community settings.

When editing communities however, we still sync community settings
explicitly are we aren't syncing the community itself in that case.
2022-06-16 12:45:05 +02:00
Samuel Hawksby-Robinson 05b8ddf57a
LAN connection string (#2653)
* Version bump

* Implemented lan connection string functionality

Also added more robust testing

* Added ConnectionParams struct and related funcs

* Add server mode to ConnectionParams
2022-06-15 16:36:17 +01:00
Richard Ramos 30f8bd6dfb
feat: add service for checking if there are new versions available (#2552) 2022-06-08 08:38:26 -04:00
Sale Djenic 78cba969cc notifications settings end points added and `notification_settings` table 2022-05-26 11:49:08 +02:00
Andrea Maria Piana 4d15ae8a85 Upgrade to go 1.18 2022-05-11 12:39:54 +01:00
Richard Ramos ca468e21e5 chore: bump go-waku 2022-04-06 10:36:06 -04:00
Pascal Precht 364838532f Add torrent library dependency 2022-04-06 11:48:16 +02:00
Richard Ramos faf8f34fef fix: adding missing config settings 2022-04-01 17:39:10 -04:00
Andrea Maria Piana 8a5f77dc37 Address linter issues 2022-03-28 13:14:12 +01:00
Andrea Maria Piana f0d3e0419d Backup communities 2022-03-23 14:45:52 +00:00
Richard Ramos cbe2560d92 chore: bump go-waku 2022-03-23 09:34:59 -04:00
Pascal Precht 86926258ee Intrododuce `NodeConfig.TorrentConfig` and CLI flags
This commit introduces a new `TorrentConfig` as per #2563 with dedicated
default values and new options/flags for the status-go CLI.

Since it's part of `NodeConfig`, which is stored per user in the
database, this commit also adds a migration script that adds a new
`torrent_config` table and database APIs to insert and retreive the
torrent config.

Closes #2563
2022-03-21 12:59:09 +01:00
Andrea Maria Piana d60a6713fe Enable mailserver cycle by default
This commit enables mailserver cycle logic by default and make a few
changes:

1) Nodes are graylisted instead of being blacklisted for a set amount of
   time. The reason is that if we blacklist, any cut in connectivity
   might result in long delays before reconnecting, especially on spotty
   connections.

2) Fixes an issue on the devp2p server, whereby the node would not
   connect to one of the static nodes since all the connection slots
   where filled. The fix is a bit inelegant, it always connects to
   static nodes, ignoring maxpeers, but it's tricky to get it to work
   since the code is clearly not written to select a specific node.

3) Adds support to pinned mailservers

4) Add retries to mailservers requests. It uses a closure for now, I
   think we should eventually have a channel etc, but I'd leave that for
   later.
2022-03-19 08:56:22 +00:00
Noelia 7ef8bc68c8
feat: Added new endpoint to get password strength info (#2589)
By integrating `zxcvbn` module, it has been added a new endpoint to get password strength quality information like Entropy, CrackTime, CrackTimeDisplay, Score, MatchSequence and CalcTime.

Added related dependences.

Closes #4980
2022-03-18 13:20:13 +01:00
Richard Ramos a15c27c588 feat: unified chat API pt. 3 (#2535) 2022-03-03 15:37:07 -04:00
Richard Ramos a0210ac281 chore: bump go-waku
Includes support for dns4 multiaddresses
2022-03-03 13:40:26 -04:00
Richard Ramos 559e6dddfa fix: limit number of concurrent requests 2022-03-02 17:46:16 -04:00
Richard Ramos 0a758b0f7d feat: stickerpacks service 2022-03-02 17:46:16 -04:00
Richard Ramos 37b06cd3b1 chore: bump go-waku 2022-03-02 12:56:50 -04:00
Richard Ramos 381c5f6116 chore: bump go-waku 2022-02-24 10:07:42 -04:00
Richard Ramos 18854c4cfa chore: bump go-waku 2022-02-18 16:12:42 -04:00
Richard Ramos 1a439baa5c
chore: bump go-waku (#2494) 2022-01-18 17:19:43 -04:00
Anthony Laibe 12c727df25
feat: Add ens service (#2467) 2021-12-21 16:05:09 +01:00
Richard Ramos b244188702
feat: LoginWithConfig (#2469)
Adds a new funtion to login with an account passing a node configuration that will override any specified attribute from the stored account nodeconfig
2021-12-21 10:27:18 -04:00
Richard Ramos 87a033c249
bump go-waku (#2442) 2021-11-25 10:37:06 -04:00
Richard Ramos d32f0467ae
feat: Add DiscV5 to Waku2 (#2434)
* feat: Add DiscV5 to Waku2
* fix: null verification for discV5
2021-11-22 09:40:14 -04:00
Anthony Laibe f24cc2e9fc
chore: bum go-waku (#2430) 2021-11-15 09:44:03 +01:00
Richard Ramos d35e0a339d
feat(waku2): use relay or lightpush depending on the number of peers (#2425) 2021-11-09 15:16:05 -04:00
Richard Ramos f47229a466
feat: add dns discovery to wakuv2 (#2422) 2021-11-09 08:22:34 -04:00
Richard Ramos 4602982c77
waku2: enable message confirmations (#2416) 2021-11-02 14:27:37 -04:00
Richard Ramos bade0a24ff
chore: bump go-waku (#2404) 2021-10-19 09:43:41 -04:00