2864 Commits

Author SHA1 Message Date
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
Andrea Maria Piana
ed9ca8392c Upgrade linter to 1.50.0 2023-01-13 17:52:03 +00:00
Andrea Maria Piana
ccbd2866fe Bump encryption too high number 2023-01-13 11:51:30 +00:00
Sale Djenic
dbf8a3c6be feat(keycard): DeleteAccountForMigratedKeypair endpoint added 2023-01-13 11:09:57 +01:00
Sale Djenic
d7caf67a52 feat(keycard): RemoveMigratedAccountsForKeycard endpoint added 2023-01-13 11:09:57 +01:00
Michal Iskierko
d95b259777 fix: add 5 seconds timeout context when installing stickers 2023-01-13 10:27:12 +01: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
Jonathan Rainville
cb1d80c082 feat(QuotedMessage): pass Deleted to QuotedMessage
This is to let the front end determine a new message if the quoted message is deleted instead of just unknown
2023-01-12 11:47:38 -05:00
Jonathan Rainville
7717f9519f fix(message_handler): fix error when there is no record and fix crash 2023-01-12 11:47:38 -05:00
Anthony Laibe
883f9677c5 feat: nonce management in multi tx 2023-01-12 12:56:57 +01:00
Roman Volosovskyi
d60c1d00ed
Update chat clock on group event v0.122.1 2023-01-12 11:01:45 +01:00
Omar Basem
fe9996d95f
Image width height (#3061)
* feat: add image width & height
2023-01-12 13:43:14 +04:00
frank
a29511b921
update account name if necessary (#3072) 2023-01-12 11:00:24 +08:00
Jonathan Rainville
880a201037 fix(reply-test): fix reply test because msgs could come out of order
Fixes #3070
2023-01-11 16:24:42 -05:00
Patryk Osmaczko
186454528b chore: make createMessagesRequestV2 respect mailserverRequestTimeout
closes: #3053
2023-01-11 20:26:10 +01:00
Richard Ramos
490570c0ec fix: convert TopicType to stack variable and use recvMessage.Topic instead of extracting content topic from WakuMessage 2023-01-11 13:41:29 -04:00
Jonathan Rainville
e98e6b61af fix: use the uncompressed community pubkey as topic to receive requests 2023-01-11 13:41:29 -04:00
Richard Ramos
09723e3b9a fix: set nameserver via config 2023-01-11 08:37:31 -04:00
frank
dc87d6bb0f
get messenger from account service when local pairing (#3069) 2023-01-11 19:30:54 +08:00