2882 Commits

Author SHA1 Message Date
Andrea Maria Piana
cefa0089dc
Split clock values for contacts v0.126.0 2023-01-31 15:43:00 +00:00
Alexander
a3f59e223c
Fix for syncing settings (empty field is not getting added) (#3147)
* Fix for syncing settings (empty field is not getting added)

* Version bump
2023-01-31 14:37:41 +01:00
frank
2c38b9e673
reorder pair action by the order of occurrence (#3082) 2023-01-31 16:47:30 +08:00
Alexander
2fba8c4591
Support providing a list of activity types when counting unread notifications (#3141)
* Support providing a list of activity types when counting unread notifications

* Minor cleanup

* Test added

* Smaller fix

* Test small fix

* uint64
2023-01-30 20:43:13 +01:00
Andrea Maria Piana
7e1a894ab8 Add compressed key to multiaccount/messages/contacts v0.125.4 2023-01-30 16:40:40 +00:00
Stefan
d024d36718 fix: fix wallet.history.TestServiceAtEnd
First check was relying on sorting result of two items that had the same
weight and is not guaranteed to be deterministic.
2023-01-30 20:11:01 +04:00
Anthony Laibe
5d80c5cc42 fix: update go-waku 2023-01-30 13:39:49 +01:00
Pascal Precht
f31e40264e refactor(import-tool): process import data in chunks
This commit refactors the discord import tool such that,
instead of loading all data to be imported into memory at
once, it will now perform the import on a per file basis.

This improves the memory pressure for the node performing
the import and seems to increase its performance as well.
2023-01-30 12:23:56 +01:00
Mikhail Rogachev
ee9f8edfcf
Mark as read acivated notifications with CTA (#3126)
* fix: Accepting or dismissing contact request should mark AC notification as read

* fix: Accepting or declining community request should mark AC notification as read

* fix: Read notification status fo identity verification requests

* fix: Save whole notification object while handling contact requests

* fix: Remove unused functions from activity_center_persistence

* fix: Use Accepted and Dismissed flags for AC notifications with CTA

* fix: Mark notification as unread when we handle accepted verification request

* fix: Replace Warn with Error on fail to save notification, test fixes

* fix: Fix conditions for fetching AC notifications from the db

* fix: Review fixes for err name and conditions array
2023-01-28 13:52:53 +04:00
Richard Ramos
ddfe16f56f fix: add cursors to store queries 2023-01-27 17:03:59 -04:00
Richard Ramos
cccea5f14b chore(waku2): bump go-waku to notice disconnection from peers faster 2023-01-27 14:17:43 -04:00
Mikhail Rogachev
dad7221f36
Hotfix: temporary restore cross compilation on Mac M1 (#3139) 2023-01-27 20:09:59 +04:00
Stefan
90b39eeb41 fix: merge balance history using block time
This change improves on the previous implementation which used
the block number that doesn't work with incompatible blockchains e.g. L1 vs. L2

Closes: #9205
2023-01-27 16:28:59 +04:00
Sale Djenic
c8994fe175 test: TestConvertAccount test update
This tests the entire process of converting a regular account to a keycard
account and then converting that keycard account back to a regular account.

For the need of this test I had to improve `DeleteAccount` function, cause the
previous implementation didn't remove account from the keystore cache, but
only from the keystore.
2023-01-27 13:20:52 +01:00
Sale Djenic
6e656448ba feat(keycard): ConvertToRegularAccount endpoint added
It converts a keycard user to a regular user, setting all necessary details
that logged in account looks like it has never been a keycard account.
2023-01-27 13:20:52 +01:00
Sale Djenic
902d4b7501 fix(keycard): convert regular to a keycard account process fixed 2023-01-27 13:20:52 +01:00
Sale Djenic
d8e2884d4e feat(keycard): DeleteKeypair endpoint added 2023-01-27 13:20:52 +01:00
Richard Ramos
6072bd17ab feat: send message type to opt-in telemetry service 2023-01-26 16:34:20 -04:00
Roman Volosovskyi
fc03393e1b
Fix incorrect pagination of notifications v0.125.2 2023-01-26 19:23:08 +01:00
Richard Ramos
3553761cb5 fix: use parent ctx (of 30s instead of 20s) and log requestID in case of failures 2023-01-26 14:13:01 -04:00
Richard Ramos
db74eaa0d9 fix: add missing waku2 store columns 2023-01-26 13:47:47 -04:00
Stefan
a2ff03c79e feat: retrieve balance history for tokens and cache it to DB
Extends wallet module with the history package with the following
components:

BalanceDB (balance_db.go)

- Keeps track of balance information (token count, block, block timestamp)
for a token identity (chain, address, currency)
- The cached data is stored in `balance_history` table.
- Uniqueness constrained is enforced by the `balance_history_identify_entry`
UNIQUE index.
- Optimal DB fetching is ensured by the `balance_history_filter_entries`
index

Balance (balance.go)

- Provides two stages:
    - Fetch of balance history using RPC calls (Balance.update function)
    - Retrieving of cached balance data from the DB it exists (Balance.get
    function)
- Fetching and retrieving of data is done for specific time intervals
    defined by TimeInterval "enumeration"
- Update process is done for a token identity by the Balance.Update function
- The granularity of data points returned is defined by the constant
increment step define in `timeIntervalToStride` for each time interval.
- The `blocksStride` values have a common divisor to have cache hit
between time intervals.

Service (service.go)

- Main APIs
    - StartBalanceHistory: Regularly updates balance history for all
    enabled networks, available accounts and provided tokens.
    - GetBalanceHistory: retrieves cached token count for a token identity
    (chain, address, currency) for multiple chains
    - UpdateVisibleTokens: will set the list of tokens to have historical
    balance fetched. This is a simplification to limit tokens to a small
    list that make sense

Fetch balance history for ECR20 tokens

- Add token.Manager.GetTokenBalanceAt to fetch balance of a specific
block number of ECR20.
- Add tokenChainClientSource concrete implementation of DataSource
to fetch balance of ECR20 tokens.
- Chose the correct DataSource implementation based on the token
"is native" property.

Tests

Tests are implemented using a mock of `DataSource` interface used
to intercept the RPC calls.

Notes:

- the timestamp used for retrieving block balance is constant

Closes status-desktop: #8175, #8226, #8862
2023-01-25 22:25:50 +04:00
Stefan
5ff029dd57 feat: add balance_history DB table and update migration scripts
Updates status-desktop #8226
2023-01-25 22:25:50 +04:00
Richard Ramos
eb36eb3ee5 fix: cancel mailserver requests when stopping messenger 2023-01-25 11:15:12 -04:00
4a4ae4c264
allow building shared library on M1 Macs
Seems like this wasn't supported in the past, but should work now.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-01-25 15:12:09 +01:00
Roman Volosovskyi
1d9d7343c3
Fix activation of deleted chat on contact update v0.125.1 2023-01-25 11:12:34 +01:00
Pascal Precht
efbad4e9bc fix(DiscordImport): don't allow imports of files bigger than 50 MB
See https://github.com/status-im/status-desktop/issues/9261 for more info
2023-01-24 21:40:17 +01:00
Richard Ramos
bfe9307f1f fix: don't return an error on empty rows 2023-01-24 16:26:36 -04:00
Pascal Precht
b5964348a1 fix(communities): ensure archive import is only cancelled if not already marked as such
There were cases where this caused a crash, as handling magnetlinks would try to close
an already closed tasked channel

See https://github.com/status-im/status-desktop/issues/8996 for more information.

This commit extends the task struct such that it can be marked as cancelled and safely
read and written by multiple go routines.
2023-01-24 08:58:40 +01:00
Richard Ramos
b1960a6ca9 chore: increase mailserver timeout to 30s 2023-01-23 16:29:23 -04:00
Mykhailo Prakhov
45c5fd1cdf chore: allow GetMembers for the communty by communityID only 2023-01-23 19:13:22 +02:00
Anthony Laibe
e8cd779e35 feat: api to return service up or down 2023-01-21 13:11:03 +01:00
Pascal Precht
81d4b5e0d7 fix(communities): only update last seen magnetlink when download was successful 2023-01-20 17:17:13 +01:00
Pascal Precht
eb2b4b7cdc refactor(Communities): ensure generated archives don't exceed max cap
This introduces an addition constraint to archive generation, in which the payload + signature size of all partitioned message that go into an archive should not exceed a certain
threshold.

This is to ensure that archives won't get too big when they are later read into memory.
2023-01-20 17:09:00 +01:00
Icaro Motta
e40cbfc28f
feat: Support fetching accepted Activity Center notifications by multiple types (#3088)
Summary
=======

- [x] Changes endpoint ActivityCenterNotificationsBy to support fetching
  multiple types of notification in a single query.
- [x] Adds endpoint UnreadAndAcceptedActivityCenterNotificationsCount to
  allow the mobile client to fetch the count of unread & accepted
  notifications.
- [x] Add `golangci-lint` to Nix shell. This was possible since PR
  https://github.com/status-im/status-go/pull/3087 was merged.

Notes
=====

- If you'd like to understand why these changes are needed, please see
  the mobile PR https://github.com/status-im/status-mobile/pull/14785,
  or issue https://github.com/status-im/status-mobile/issues/14712
- All changes should be completely backwards compatible, and there
  should be no impact for the desktop app.
- The mobile client has been already tested using this branch.
v0.125.0
2023-01-20 09:45:32 -03:00
Igor Sirotin
f9faac4293
feat: ens_usernames database (#3066) 2023-01-20 13:34:30 +03:00
Pascal Precht
f85c500e9a Resume import of message history archives upon bootstrap
This adds the functionality that history archives continue to be imported
in case the import has been interrupted the last time the app/client
was running.

This typically happens when users don't wait for an ongoing import to finish,
which sometimes can take a while. Users then close the app/kill the client
which leaves the database in a state where there's downloaded archives that
haven't been fully imported.

Prior to this change, the node will have to wait until it receives a new
magnetlink that it hasn't seen before, until it processes imports again.
This can take several days.

Now, it will check on startup if there are any archives left to be imported
and resumes the import from there.
2023-01-20 07:57:24 +01:00
RichΛrd
ea46779e98 Update messenger_mailserver_cycle.go 2023-01-19 13:56:50 -04:00
Richard Ramos
f0cd807763 fix: only evaluate connected peers when active mailserver is set 2023-01-19 13:56:50 -04:00
dlipicar
c2a8dd8a0c
feat(wallet): add price cache (#3107) 2023-01-19 11:49:48 -03:00
Richard Ramos
ecbd3a70e9 fix: no messages from storenode 2023-01-19 10:11:44 +01:00
Roman Volosovskyi
657933ec3d some logs 2023-01-18 11:43:07 -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
Pascal Precht
1bab7ae056 refactor(communities): improve archive handling memory pressure
Instead of loading the entire torrent file into memory when trying
to extrract active messages, we now only read the chunks that are
necessary to decode any individual archive and then process
extracted messages in chunks.

This doesn't introduce a max cap of allowed memory yet, since the
chunk size depends entirely on the size of the archive, but this
will be done soon.
2023-01-18 15:45:13 +01:00
Richard Ramos
8fd291f27c fix: dropping peer in mailserver cycle 2023-01-18 09:28:08 -04:00
frank
4406931582
fix: should include ContactRequestState and HasAddedUs when sync contact (#3100) 2023-01-18 16:12:27 +08:00
Pascal Precht
cedc1a5fd1 fix: add discord message data to quoted messages
Because `QuotedMessage` doesn't include imported message data,
some of the author information in imported messages is lost in
frontends.

This commit adds a `discordMessage` (soon replaced by `importedMessage`)
to `Quotedmessage`, although only hydrated with a subset of data,
namely author display name and avatar URL, as those are the only ones
needed by front-end atm.
2023-01-17 12:08:42 +01:00
frank
5a4ca88631
use random udp port rather than fixed value 9000 (#3093) 2023-01-17 12:03:19 +08:00
Richard Ramos
ebacdfc760 fix: decode peerID string into peer.ID 2023-01-16 22:49:52 -04:00