Commit Graph

328 Commits

Author SHA1 Message Date
Andrea Maria Piana 3a84afd0f1 Add replies to messages
Currently replies to messages are handled in status-react.
This causes some issues with the fact that sometimes replies might come
out of order, they might be offloaded to the database etc.

This commit changes the behavior so that status-go always returns the
replies, and in case a reply comes out of order (first the reply, later
the message being replied to), it will include in the messages the
updated message.

It also adds some fields (RTL,Replace,LineCount) to the database which
were not previously saved, resulting in some potential bugs.

The method that we use to pull replies is currently a bit naive, we just
pull all the message again from the database, but has the advantage of
being simple. It will go through performance testing to make sure
performnace are acceptable, if so I think it's reasonable to avoid some
complexity.
2020-04-16 15:51:28 +02:00
Andrea Maria Piana 4d2fb67add Allow to leave chat without removing it 2020-04-14 14:08:54 +02:00
Andrea Maria Piana f3fc6812cd Add change group chat name endpoint 2020-04-14 14:08:54 +02:00
Andrea Maria Piana 79be6eaf3a Increment retry count when ENS verification fails
We did not increment the counter when verification failed, which meant
that we would not backoff and retry more often that we should have.
2020-04-14 11:16:43 +02:00
Andrea Maria Piana 3c5354280c Return count of updated messages in MarkMessagesSeen
The frontend needs to know if the messaged marked as seen was actually
seen or not, as we might not have it loaded in the frontend.
2020-04-07 13:23:21 +02:00
Andrea Maria Piana 44272944ab Make sure WakuEnabled is respected on upgrade 2020-03-30 15:28:16 +02:00
Andrea Maria Piana 070a5adbee Enable waku node default 2020-03-30 10:52:30 +02:00
Andrea Maria Piana a5874fdb21 Add content type for group chats 2020-03-25 09:29:08 +01:00
Andrea Maria Piana b9689fe109 add transparent background to identicon 2020-03-25 09:02:58 +01:00
Andrea Maria Piana 9ee0e52ea3 Ignore full node flag when in topic mode 2020-03-23 15:10:07 +01:00
Adam Babik 8a148f256a
Release 0.49.1 2020-03-17 18:46:32 +01:00
Adam Babik d7bb02540a
Update go-ethereum to v1.9.5-status.9 (#1898) 2020-03-12 13:05:12 +01:00
Roman Volosovskyi d1beb4c76d
bump VERSION to 0.48.8 2020-03-11 08:40:19 +02:00
Adam Babik 97130dd6fe
bump VERSION to 0.48.7 2020-03-10 13:41:37 +01:00
Adam Babik 241e4ad1dd
version 0.48.6 2020-03-09 09:06:51 +01:00
Andrea Maria Piana 2d1e06f25f Pull waku-enabled from the database 2020-03-05 21:04:09 +01:00
Adam Babik 7bb95520c3
update VERSION to 0.48.4 2020-03-04 09:37:20 +01:00
Andrea Maria Piana 7be1fcb978 Dont use system time for clock value in create group chat event 2020-02-29 11:28:46 +01:00
Andrea Maria Piana 4d2ecb0055 Enable eth config 2020-02-28 18:47:25 +01:00
Andrea Maria Piana 2ae04f2a2d acknowledge spelling 2020-02-28 13:27:00 +01:00
Adam Babik dc61859568
bump VERSION to 0.48.0 2020-02-26 20:37:27 +01:00
Roman Volosovskyi ba751aecdc
bump to 0.47.1 2020-02-26 18:23:57 +02:00
Andrea Maria Piana 5cc60de80b
Add mark as read endpoint (#1863) 2020-02-26 13:31:48 +01:00
Adam Babik 91e658aeb6
bump Whisper to 6.2.1 (#1869) 2020-02-21 16:22:25 +01:00
Adam Babik bc7661b001
update VERSION to 0.46.0 2020-02-21 12:41:11 +01:00
Andrea Maria Piana 9c2c08d44c
Init protocol when shh is active (#1862) 2020-02-17 18:18:30 +01:00
Andrea Maria Piana 141f917e7c
Initialize protocol when waku active (#1832) 2020-02-17 15:38:59 +01:00
Jakub Sokołowski fdcefb8dc2
bump to 0.44.2
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-13 12:55:28 +01:00
Jakub Sokołowski da4f30ffd2
bump to 0.44.1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-11 16:11:53 +01:00
Adam Babik c012576541
Update VERSION to 0.44.0 2020-02-10 12:30:48 +01:00
Roman Volosovskyi dc80cb0e06
Cleanup after tx fetching changes
- unused API methods are removed
- some unusued code is removed too
- API docs are updated

That's just a portion of clean up that should be done,
but the rest of it will probably happen in different PR
with changes to the way how we watch to chain updates.
2020-02-09 12:05:36 +02:00
Andrea Maria Piana 0b6ad662b5
Bug/validate pubkey (#1838)
* validate chat before persisting

* add comment to public key generation
2020-02-07 12:56:30 +01:00
Andrea Maria Piana f2eebd1e49
Verify ENS in the background (#1824)
Currently ENS are verified explicitly by status-react, this is not ideal
as if that fails it will have to be explicilty retried in status-react.
This commits changes that behavior so that ENS are verified in a loop
and updated if new messages are received.
2020-02-05 11:09:33 +01:00
Roman Volosovskyi 9cf640842b
[status-im/status-react#9942] Upgradable paths in configs
Storing absolute path for different configs breaks compatibility on iOS
as app's dir is changed after upgrade. The solution is to store relative
paths and to concatenate it with `backend.rootDataDir`. The only
exception is `LogFile` as it is stored outside `backend.rootDataDir` on
Android. `LogDir` config was added to allow adding of custom dir for log
file.
Configs concerned:
`DataDir`
`LogDir`
`LogFile`
`KeystoreDir`
`BackupDisabledDataDir`
2020-02-03 20:02:01 +02:00
Roman Volosovskyi c2f22f1fbc
[status-im/status-react#9927] Fast blocks sync after delay
- In order to avoid handling of the reorganized blocks we use an offset
from the latest known block when start listening to new blocks. Before
this commit the offset was 15 blocks for all networks. This offset is
too big for mainnet and causes noticeable delay of marking a transfer as
confirmed in Status (comparing to etherscan). So it was changed to be 5
blocks on mainnet and is still 15 blocks on other networks.
- Also before this commit all new blocks were handled one by one with
network specific interval (10s for mainnet), which means that in case of
lost internet connection or application suspension (happens on iOS)
receiving of new blocks would be paused and then resumed with the same
"speed" - 1 blocks per 10s. In case if that pause is big enough the
application would never catch up with the latest block in the network,
and this also causes the state of transfers to be delayed in the
application. In this commit in case if there was more than 40s delay
after receiving of the previous block the whole history in range between
the previous received block and ("latest"-reorgeSafetyDepth) block is
checked at once and app catches up with a recent state of the chain.
2020-01-30 17:25:56 +02:00
Andrea Maria Piana 8931b14c4e
Explicitly init messenger (#1821)
Messenger needs to wait until all the topics/mailservers are loaded in
the client, so we explicitly add a way to call Init.
2020-01-29 20:40:06 +01:00
Roman Volosovskyi dc31c818fc
bump to 0.40.0 2020-01-23 14:14:08 +02:00
Andrea Maria Piana a4f88d0017
Fix ens names and contact (#1810)
Currently the wrong pk format was used to query the in-memory contacts,
this commit corrects the behavior.
2020-01-23 09:24:28 +01:00
Adam Babik 21c67f7296
bump to 0.39.10 2020-01-22 09:48:49 +01:00
Adam Babik 3b81bd2878
bump to 0.39.9 2020-01-20 21:59:32 +01:00
Andrea Maria Piana 23a0e9266c
v0.39.8 (#1808) 2020-01-20 20:08:57 +01:00
Andrea Maria Piana 456bcfa022
Peg clock value to whisper timestamp (#1804)
This commit pegs the clock value to maximum + 120 seconds from the whisper
timestamp.
In this way the we avoid the scenario where a client makes the timestamp
increase arbitrarely.
2020-01-20 17:44:32 +01:00
Andrea Maria Piana 25d46c6d82
Fix waku tests & contact ens (#1802) 2020-01-17 13:39:09 +01:00
yenda 0316f94907
addresses are stored as byte array not sting (#1801) 2020-01-15 21:33:15 +01:00
Andrea Maria Piana e11e0b5d6c
bump version 0.39.4 (#1795) 2020-01-15 09:38:28 +01:00
Adam Babik 2aebfc744e
Update VERSION to 0.39.3 2020-01-14 08:36:49 +01:00
Andrea Maria Piana 88a1d0111e
Add Commands (#1731)
This commit adds handling of Transaction commands.
2020-01-10 19:59:01 +01:00
Adam Babik 41eaf0376c
bump version to 0.39.1 2020-01-10 14:06:24 +01:00
Jakub Sokołowski 1aa751a427
bump to 0.39.0
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-08 12:30:14 +01:00
Andrea Maria Piana baa0767c26
Handle membership update message
This commit does a few things:

1) Handle membership updates using protobuf and adds the relevant
endpoints.
2) Store in memory a map of chats + contacts for faster lookups, which
are then flushed to disk on each update
3) Validate incoming messages

Sorry for the large pr, but you know, v1 :)
2019-12-10 15:20:28 +01:00
Adam Babik 3122c56c0e
fix protocol submodule definition 2019-12-09 18:51:08 +01:00
Adam Babik 8069b8cd82
clean up eth-node and protocol versions 2019-12-09 18:35:11 +01:00
Adam Babik 392ec7ae8e
fix whisper v6 module definition 2019-12-09 16:29:47 +01:00
Adam Babik 56a0b02be7
bump to 0.37.0 2019-12-09 15:37:20 +01:00
Roman Volosovskyi 4c0d8dedea
Replace address with keyUid in accounts db
Account's address was used as a primary key in accounts db and as a
deterministic id of an account in some API calls. Also it was used as a
part of the name of the account specific database. This revealed some
extra information about the account and wasn't necessary.
At first the hash of the address was planned to be used as a
deterministic id, but we already have a keyUid which is calculated as
sha256 hash of account's public key and has similar properties:
- it is deterministic
- doesn't reveal accounts public key or address in plain
2019-12-09 11:20:12 +02:00
Andrea Maria Piana c2e3f381ad
Bump version 0.36.1 2019-12-08 20:05:04 +02:00
Andrea Maria Piana fd49b0140e
Move to protobuf for Message type (#1706)
* Use a single Message type `v1/message.go` and `message.go` are the same now, and they embed `protobuf.ChatMessage`

* Use `SendChatMessage` for sending chat messages, this is basically the old `Send` but a bit more flexible so we can send different message types (stickers,commands), and not just text.

* Remove dedup from services/shhext. Because now we process in status-protocol, dedup makes less sense, as those messages are going to be processed anyway, so removing for now, we can re-evaluate if bringing it to status-go or not.

* Change the various retrieveX method to a single one:
`RetrieveAll` will be processing those messages that it can process (Currently only `Message`), and return the rest in `RawMessages` (still transit). The format for the response is:
`Chats`: -> The chats updated by receiving the message
`Messages`: -> The messages retrieved (already matched to a chat)
`Contacts`: -> The contacts updated by the messages
`RawMessages` -> Anything else that can't be parsed, eventually as we move everything to status-protocol-go this will go away.
2019-12-05 17:25:34 +01:00
Adam Babik c199c8f342
Update Whisper and introduce rate limiting (#1673) 2019-11-18 11:22:23 +01:00
Jakub Sokołowski 009778929b
bump version to 0.34.0-beta.9
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-15 13:20:37 +01:00
Andrea Maria Piana 9d7c570593
Add PrepareContent and upgrade status-go (#1674) 2019-11-15 09:52:28 +01:00
Andrea Maria Piana 89659f85b4
Upgrade status-protocol-go (#1664) 2019-11-08 08:36:12 +01:00
Andrea Maria Piana 9d6601207f Bump version 2019-11-06 18:59:31 +01:00
Adam Babik a4a7ae21b5
bump 0.34.0-beta.5 2019-11-05 09:19:36 +01:00
Jakub Sokołowski e311307061
bump version to 0.34.0-beta.4
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-04 13:19:10 +01:00
Adam Babik 81b0a7b29f
bump version to 0.34.0-beta.3 2019-10-15 16:36:57 +02:00
Adam Babik 019f124f6b
bump version 0.34.0-beta.2 2019-10-14 16:23:32 +02:00
Adam Babik 676602f2ed
bump version to 0.34.0-beta.1 2019-10-14 10:26:21 +02:00
Adam Babik 26880b83d7
Upgrade geth to 1.9.5 and Whisper (#1617) 2019-10-04 17:21:24 +02:00
Adam Babik 72c69fce9d
bump version 2019-09-03 07:19:28 +02:00
Andrea Maria Piana b8ea79a3f0
Upgrade status-protocol-go (#1586) 2019-08-29 08:33:46 +02:00
Andrea Maria Piana 9ae7d2b6d5 Move envelopes tracking to status-protocol-go
This commit moves envelopes tracking to status-go.
Post endpoint is not going to track envelopes anymore, as that's taken
care on status-protocol-go side, so this is a breaking change, and
version is updated accordingly.
2019-08-12 19:44:31 +02:00
Andrea Maria Piana 9de77b21b2 Add datasync, v1messages & disable discovery topic options
Adds support for datasync, V1Messages and disabling the discovery topic.
This is a backward compatible change as long as they are not toggled on
(they are not by default).
2019-07-29 19:39:44 +02:00
Dmitry 21a62c731f Bump version to 0.31.0 in order to release multiaccounts work 2019-07-29 10:53:42 +03:00
Adam Babik e93d994460 integrate status-protocol-go 2019-07-24 18:46:43 +02:00
Dmitry Shulyak 9a0502fa8f
Set version to 0.30.0-beta.3 (#1529) 2019-07-18 12:53:41 +03:00
Andrea Maria Piana dd27b854e8 Bump version 2019-07-10 13:10:57 +02:00
Andrea Maria Piana fa639ffc74 Handle device not found
When receiving a message from someone not targeting our device,
we reply with an empty message that includes our own devices, so next
time they send a message they will include our device.
2019-07-08 12:03:14 +02:00
Andrea Maria Piana 2a2fcb48e1 Refactor publisher 2019-07-08 08:24:08 +02:00
Andrea Maria Piana b3efbb54f8 Send signal on new messages 2019-07-04 14:49:44 +02:00
Adam Babik dbaf622e12
Refactor messaging (#1510)
This change flattens messaging/chat package. It also removes dependency between multidevice and chat/protobuf packages.

The Publisher interface was also changed a bit to support more native types.

Version got bumped to 0.29.0-beta.3.
2019-07-03 21:13:11 +02:00
Adam Babik cfdeaa4b98
bump version to 0.29.0-beta.2 2019-07-01 21:33:58 +02:00
Andrea Franz dd17860302
create random accounts in memory for onboarding (#1464)
* add account onboarding struct

* add onboarding to account manager

* allow resetting onboarding

* add onboarding functions to lib and mobile

* fix lint warnings

* update mnemonic test

* remove unused fmt

* reset onboarding before selecting account

* expose ResetOnboaring to lib and mobile

* refactoring

* add comment

* update StartOnboarding function

* remove unused var

* update VERSION

* fix returned accounts slice
2019-06-27 00:28:16 +02:00
Adam Babik e28d4ef1a3
Create messaging package and move some packages into it (#1505) 2019-06-26 20:17:41 +02:00
Andrea Maria Piana 5335a2b4fd
Move installations to status-go (#1499)
* Move installations to status-go

This commit moves installations management/storage to status-go.
We remove the native binding and provide RPC endpoints to set the
metadata and return a list of our own installations.
2019-06-26 11:32:59 +02:00
Andrea Maria Piana 0ade9a6cbb
Cache keys (#1497)
* Cache keys

Generating a symkey can take up to a second on slow devices, this commit
makes so that keys are saved once generated and stored in the database.
2019-06-24 09:26:25 +02:00
Andrea Maria Piana f6fba1d3d6 Publish contact code periodically 2019-06-19 17:38:45 +02:00
Adam Babik 5c61b9f5ea bump version 2019-06-12 13:12:00 +02:00
Dmitry Shulyak 79ede28ab7
Bump to 0.25.1 (#1468) 2019-05-27 08:44:33 +03:00
Andrea Maria Piana 4ab08629f6 Add postgres
This commits adds support for postgres database.
Currently two fields are stored: the bloom filter and the topic.
Only the bloom filter is actually used to query, but potentially we will
use also the topic in the future, so easier to separate it now in order
to avoid a migration.
2019-05-15 11:01:34 +02:00
Igor Mandrigin 10fc860a5f
fix parameters parsing for eth_* filters subscriptions (#1461) 2019-05-10 12:56:58 +02:00
Igor Mandrigin 7002311f96
bump version to 0.25 (new API for subscriptions) (#1460) 2019-05-09 12:32:07 +02:00
Dmitry Shulyak 21f9f09586 Bump version to 0.24.0-beta.4 (#1458) 2019-05-07 09:06:14 +02:00
Andrea Maria Piana 354e6981ba
Add network incentivisation service (#1452) 2019-04-29 14:05:49 +02:00
Dmitry Shulyak cb8b30c78f
Bump minor version (#1448) 2019-04-24 10:53:29 +03:00
Igor Mandrigin 056bf367a7
Expose vanilla ECDSA signing (#1444) 2019-04-18 15:52:08 +02:00
Andrea Maria Piana 8baae97e2e Add GetNodesFromContract endpoint
We added an endpoint that given an RPC url and a contract will fetch a
list of nodes and return them to the client.
2019-03-29 12:55:54 +01:00
Adam Babik 77c004f6ba
bump version 0.23.0-beta.9 2019-03-15 14:55:21 +01:00
Andrey 44ee59b4eb Bump version to 0.23.0-beta.8
Bump version to 0.23.0-beta.8
2019-03-05 14:57:07 +01:00
Andrea Maria Piana 38e5335e18
Allow messages to be decrypted from previous bundles (#1400)
Currently we only decrypt messages if received on the current bundle.
This changes the behavior so that messages can be decrypted if sent to
previous bundles as well, as otherwise is a bit restrictive
2019-02-28 13:09:43 +01:00
Adam Babik 259a32cd9d
Bump version to 0.23.0-beta.6 2019-02-27 15:34:54 +01:00
Igor Mandrigin f47187b00b
gomobile: fix empty geth.log (#1396) 2019-02-26 10:47:23 +01:00
Igor Mandrigin 0282f481bf
Fix `admin_nodeInfo` to provide the correct version again (#1394) 2019-02-25 17:23:30 +01:00
Andrea Maria Piana c654803a5f
Bump version to 0.23.0-beta.3 (#1391) 2019-02-25 10:46:36 +01:00
Adam Babik cc20f61301
Bump version 0.23.0-beta.2 2019-02-22 09:56:25 +01:00
Igor Mandrigin e66721c8c4
bump version (#1384) 2019-02-21 10:17:27 +01:00
Andrea Maria Piana 81d8ca82a2
Add confirm messages processed by ID (#1375)
Currently PFS messages are decrypted and therefore modified before being
passed to the client. This make IDs computation difficult, as we pass
the whole object to the client and expect the object be passed back once
confirmed.
This changes the behavior allowing confirmation by ID, which is passed
to the client instead of the raw object.
This is a breaking change, but status-react is already forward
compatible.
2019-02-19 13:58:42 +01:00
Adam Babik e7c8b33c2f
Bump version to 0.22.0-beta.0 2019-02-14 14:47:38 +01:00
Andrea Franz a249151d05 add LoginWithKeycard to mobile pkg (#1372) 2019-02-11 21:20:59 +01:00
Ivan Daniluk 4f3f5ee574 Gomobile support (#1164) 2019-02-01 18:02:52 +01:00
Adam Babik fd949c5cf8
Release 0.20.0-beta.1 2019-01-25 20:44:48 +01:00
Adam Babik 6e88828d76
bump version to 0.20.0-beta.0 2019-01-17 19:56:29 +01:00
Adam Babik b394e912e3
Bump version to 0.19.0-beta.5 2019-01-16 15:47:57 +01:00
Andrea Maria Piana 68ac31b3b8
Bump version 2019-01-14 13:11:14 +01:00
Adam Babik a84dee4934
Release 0.19.0-beta.3 2019-01-10 12:53:35 +01:00
Adam Babik aefc62dfc1
Release 0.19.0-beta.2 2019-01-02 18:55:41 +01:00
Adam Babik 5e1f4631b1
Release 0.19.0-beta.1 2018-12-20 11:06:35 +01:00
Adam Babik 2c5a1a7710
Bump version to 0.19.0 2018-12-17 12:57:50 +01:00
Adam Babik 7fb2755f6b
Describe and simplify the release process (#1322) 2018-12-17 10:55:17 +01:00
Andrea Maria Piana b676de9dac
Hash password before using it (#1306) 2018-12-10 14:11:19 +01:00
Andrea Maria Piana afc3017e07
Notify user when the device is missing (#1298)
* Notify user when the device is missing

* Update services/shhext/chat/encryption.go

Co-Authored-By: cammellos <andrea.maria.piana@gmail.com>
2018-12-05 09:22:49 +01:00
Pedro Pombeiro b72d7d1950 Update version to 0.18.0
- due to API breaking change on `NotifyUsers`
2018-12-03 11:30:13 +01:00
Adam Babik e447750f4d
Bump 0.17.2-beta 2018-11-29 15:06:48 +01:00
Adam Babik 3ab928169e
Release 0.17.1 2018-11-29 15:05:30 +01:00
Adam Babik 8efd1fe84e
Bump version to 0.17.1-beta 2018-11-14 08:18:59 +01:00
Adam Babik 52a1bdfed6
Upgrade geth 1.8.17 plus add metrics during compilation time (#1273)
This commit updates geth to 1.8.17 and adds a possibility to enable metrics during compilation time.

The cascade of issues forced us to upgrade geth to 1.8.17 in order to allow enabling metrics during compilation time. 1.8.17 introduced `NodeID` refactoring and `enode` package which affected our peers pool and integration with Discovery V5.
2018-11-14 08:03:58 +01:00
Adam Babik 5b2d7dc212
bump version to 0.16.8-beta 2018-11-14 01:31:47 +01:00
Adam Babik 941790f357
bump version to 0.16.7 2018-11-14 01:08:09 +01:00
Andrea Maria Piana 58bd36e79e
Automate github releases (#1263) 2018-11-05 15:02:16 +01:00