Commit Graph

521 Commits

Author SHA1 Message Date
Roman Volosovskyi 00ad3e9e1f
[#11674] Make sure token balances are fetched on mobile network 2021-02-03 12:45:05 +02:00
Andrea Maria Piana 741e9e834b
Avoid concurrent access to contact
In some instances when fetching messages for a timeline the app would
crash as a map was accessed concurrently without locking.
This fixes the issue.

Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-28 14:49:14 +01:00
Andrea Maria Piana eba6b63258
Fix topic issue, remove ttt, add db export/import
There were a few issues with topic management:

- Topics/ranges were saved one-by-one, which cause an out of memory
error on some devices
- Topics that were not listened to were saved, and therefore requested
from the mailserver, which caused long syncing time

It also removes tribute to talk and add export/import methods

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-01-26 12:46:21 +01:00
Roman Volosovskyi 6c4097f521
[wallet #11570] Handle non archival RPC node 2021-01-25 15:41:50 +02:00
andrey 329182fdbe
[#11643] Display profile picture only of users I have added to contacts
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-18 10:14:41 +01:00
Roman Volosovskyi daf7791d86
[wallet #11535] Show PNs right after enabling 2021-01-14 13:54:46 +02:00
Frank Tang 2687d7ab9a
added github.com to white list of link preview
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-14 09:46:58 +01:00
Andrea Maria Piana 2ca39daa59
Communities
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-23 17:23:11 +01:00
Andrea Maria Piana 5b801b95fa
[Fixes: #11557] Resend contact picture when changed
Fixes: #11557

Resend contact picture when it is changed.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-23 09:43:51 +01:00
Roman Volosovskyi aac7a97e13
[#11502] Handle tx fetching failure 2020-12-21 17:05:00 +02:00
Gheorghe Pinzaru 5643c4d537
Add profile pictures
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-17 14:12:07 +01:00
Andrea Maria Piana 4e5ba2c533
Fix watching accounts for transaction in chat messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-15 16:40:26 +01:00
Volodymyr Kozieiev b197d54e47
Switched to status-go where reaction resends under the hood if sending failed
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-12-15 16:59:13 +02:00
Roman Volosovskyi 879f441b7d
[#11499] Fix multiple notifications for a single erc20 transfer 2020-12-14 13:34:20 +02:00
Andrea Maria Piana f04042c643
[Fixes: #10801] Send chat messages in order
Chat messages are now sent in order using a different endpoint
`sendChatMessages`.
Text should always be displayed after images.

This is not implementing a Caption field, that would require either a
protocol change or leverage the `text` in the message.
It applies for both normal chats and timelines.

Move also all inputs under `chat/inputs` so we avoid re-renders as
`chats` has changed.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-03 18:29:40 +01:00
Andrea Maria Piana 64840f74a7
[Fixes: #11351] Pass topics when querying the mailserver
Currently we are still using a bloom filter when querying mailserver.
This commit changes the behavior so that topics are used instead.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-30 12:08:08 +01:00
Roman Volosovskyi 7bfaa9255c
[wallet history] Stop watching each new block 2020-11-25 16:44:16 +02:00
Andrea Maria Piana 7c9bb5b21c
Fix bug when coming back from background
Fixes: #11441
Fixes: #11416

The issue was due to a nil pointer exception with the
localNotificationService.
Upon upgrade it would be disabled and therefore it would not be
available.
This was due to the fact that initialization comes from the database and
not from status-react, so on upgrade it would not be available.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-19 08:17:53 +01:00
andrey 7b46c445a7
[#11383] Status Updates : Add reactions and copy to clipboard
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-16 14:15:15 +01:00
Roman Volosovskyi fac4f0c871
[#10798] Fix unviewed counter on receiving response 2020-11-11 15:04:17 +02:00
Roman Volosovskyi 6eb840c8b2
[#10362] Allow receiving old messages after rejoining a pubchat 2020-11-06 17:37:18 +02:00
andrey ee61244770
timeline
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-06 14:23:02 +01:00
Andrea Maria Piana 7cef533a8a
[Fixes: #11349] Split large messages in batches
When sending messages in quick succession, it might be that multiple
messages are batched together in datasync, resulting in a single large
payload.

This commit changes the behavior so that we can pass a max-message-size
and we split the message in batches before sending.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-05 12:49:53 +01:00
Andrea Maria Piana d380186051
Upgrade status-go to 0.63.0
No functional changes, just removing code that is unused

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-03 11:20:35 +01:00
Andrea Maria Piana a91fa39547
[Fixes: #11355] Fix crash on logout
On shutdown the app was calling `PeersCount`, but sometimes the server
would be unavailable, resulting in a call to a nil pointer.

Upgrades status-go version with the fix.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-03 10:01:03 +01:00
Volodymyr Kozieiev 0b5be54fea
Allow group creation without contacts
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-11-02 20:10:22 +02:00
Gheorghe Pinzaru 050f20cfae
Add local notifications for transactions
Pods

Add headless js service

Handle Local Notifications react

CopyPaste driven implementation of java notification

pn demo

Show iOs push in foreground

Show icon in notification

Enable notifications on login

Get chain from status-go

Add UI for switching notifications

go go!

Fixup

Handle notification onPress

Android UI

Handle press iOs

Handle android press and validate

go update

Fix route params in universal link handler

Set show badge explicitly to false

Fix e2e

bump status go

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-29 15:40:58 +03:00
andrey eae66c967e
my status
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-28 14:42:59 +01:00
Roman Volosovskyi dca26b3350
[#11317] Prevent joining to pubchats with upper case letter in topic 2020-10-22 17:12:17 +03:00
Roman Volosovskyi 70526f9429
Markdown updates
On status-go side:
- new `strong-emph` node was added for strong emphasised text with triple
  "*" and "_"
- `del` node got proper marshalling and can be recognised (works with single
  and double "~")

On status react side:
- styles for `strong-emph` nodes
- styles for `del` (strikethrough) nodes
- unsuccessful attempt to use monospaced fonts for code/codeblock (we have a font
  which is used as monospaced but doesn't support that property actually)
2020-10-21 22:23:46 +03:00
shivekkhurana cf0cd283a6
Add new UI for mailserver selection, Add feature to disable mailserver usage 2020-10-16 12:13:15 +02:00
Andrea Maria Piana c74a5a5215
[Fix: #11228] Dont drop messages if smaller than 4096
There was an issue with counting characters in status-go that meant that
unicode characters were double counted.

That issue is now fixed. It's still not going to be 100% accurate as
in some languages characters are displayed together if they come one
after the other, but this PR should make it much safer.
To overcome this we could cap the UI input to something a bit lower
(3000 characters for example) and that should give us some room.

This commit includes a migration of the database fixing an issue with
long filenames on desktop.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-06 11:18:08 +02:00
andrey 7fb243f9f1
[#10060] Wrong ERC20 decimal rounding in "Set max"
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-22 16:02:56 +02:00
andrey ff790d4152
wallet favourites 2020-09-22 10:23:26 +02:00
Gheorghe Pinzaru 20b5ad9ebb
Always use waku
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-09-17 15:19:32 +02:00
Volodymyr Kozieiev a95520067f
Added ui for asking webview page permissions
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-09-16 12:17:45 +03:00
Andrey Shovkoplyas 0675d0d8d7
ios pn
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-09-10 14:12:18 +02:00
Roman Volosovskyi 5aa33fc9c0
[mentions] Fix mention appearance in reply and quoted message 2020-09-10 12:51:34 +03:00
andrey 89ad4f59d0
[#10179] Create invite link for group chat
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-07 13:32:24 +02:00
Andrea Maria Piana e52f9fa43f
upgrade status-go & always call start/stop methods
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-08-18 14:16:15 +02:00
Roman Volosovskyi c2277cbbe5
[#9986] Allow to disable fetching of tx history on mobile network 2020-08-15 21:34:37 +03:00
Gheorghe Pinzaru 3c42360b30
Add referral program under feature flag
Add acquisition backend methods

Init referrals sharing UI

Add invite on home screen

Use i18n for strings

Lint

Update status go

Pull acquisition contract to get SNT amount

Use new invite component

f pulling

go

Use screen instead of bottom sheet

Handle android install referrer

Post referrer to backend if present

go go

Add async storage for referral decisions

Update with the stage backend

Update contract methods

Modal

UI

Full handling of advertiser type

UI

test

UI

Handle with universal link

Allow multiple acquisition per installation

Fix android bottom sheet

Do not call service if no click-id received

Disable invite in release

Parse query params for referrer

Adapt UI changes

Add push notification

update deps

Mock react-native-push-notification

Request push notifications permission on press accept

Store transaction to local storage and load it back on login

Separate acquisition into smaller ns

Add chat invite

Get referrer only on first install

fix string

Fix firebase crash

Handle outdate click-id

Cleanup business logic

Update contract

Revert pn

Minor update to advertiser modal copy

OLD -  Welcome to Status! Here is some crypto to get you started
NEW - Here’s some crypto to get you started! Use it to get stickers, an ENS name and try dapps

OLD - By accepting you agree to the starter pack
NEW - By accepting you agree to the referral program

upgrade status-go

Add mainnet

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-08-03 15:25:34 +03:00
Gheorghe Pinzaru 1c308c2d01
Emoji reactions
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-07-31 13:43:10 +02:00
tbenr 86700f2b5c
audio messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-07-29 10:09:31 +02:00
Roman Volosovskyi 10a814764d
[#10195] Delete multiaccount 2020-07-28 15:42:40 +03:00
Roman Volosovskyi 920bc7d93e
[#10195] Separate keystore dir per multiacc
Having all keys related to specific multiacc in a separate dir will
simplify removing of the multiacc. Also it will allow adding of the same
account to different multiaccs.
2020-07-09 13:14:42 +03:00
Andrea Maria Piana 723975d2c9
Upgrade status-go to improve indexing performance.
The index for message was fairly inefficient as it was only using the
cursor, as it was referring to the old chat_id field.

This meant that newer messages would be fetched much faster then older
messages.

The index has been changed so that now it includes local_chat_id
(which is currently used for filtering), and not using hide.

The reason being is that hide is a low cardinality index, so there's
no performance benefit to have it in, also it's mostly ignored by the
query planner.

https://github.com/status-im/status-go/pull/1986
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-06-08 16:31:50 +02:00
Andrea Maria Piana e3815db497
Disable images in public chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-06-01 11:44:15 +02:00
Andrey Shovkoplyas f659cbf242
camera roll 2020-06-01 11:34:13 +02:00
Andrea Maria Piana 91bcd0c861
sending images over waku 2020-06-01 11:34:12 +02:00
Andrea Maria Piana 34755500d5
[Fixes: #10471] Parse markdown in chat subheader.
This commit adds parsing of markdown in the chat subheader.

Because of the added complexity performance are impacted but I have
also noticed that on each loading of the chat screen we calculate
alias & identicon through status-go, so that has been changed so that
they are returned from status-go.

Overall performance is now roughly identical, tested loading 150
one-to-one chats.

Another issue that I've spotted is that some `subs` are unnecessarely
recalculated (`active-chats`), when unrelated fields changes. I will
address this in a separate PR that should improve performance.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-05-25 14:03:24 +02:00
Andrea Maria Piana ed87e350ae
[Fixes: #10390] Re-enable group chat on re-invite
If we get re-invited to a chat that we left, the chat will be shown
again.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-04-23 12:46:03 +02:00
Andrea Maria Piana 387b9cb37a
Don't send extra contacts from status-go
Previous we sent all contacts from status-go, also those that we only
create to memoize name/image.
This commit changes the behavior so that only contacts that have custom
fields are received by status-react (added by us, added by them,
blocked, with a verified ENS name)

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-04-21 09:15:32 +02:00
Andrea Maria Piana 28a2bca012
Get replies directly from status-go
Fixes: #10297
Fixes: #10274

Before if a reply was missing (for example if it the message replied to
arrived after the reply) status-react would subscribe to it dynamically
and use that. This caused some flickering issues when offloading the
messages from the database, as the message being replied to would be
offloaded and later loaded back again, triggering scroll and ending up
in a loop.

This commit changes the behavior so that status-go always adds the
reply to the message. In case the message being replied to arrives after
the reply, this will be included in the message update, and status-react
will replace it in the local storage.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-04-16 15:54:33 +02:00
Andrea Maria Piana a9c580e82c
Increment retry count when ENS fails to verify
When an ENS name fails to verify, we should increment the retry count so
that it back offs. All the changes are in status-go.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-04-14 14:26:01 +02:00
Gheorghe Pinzaru 461b6cdb74
Update the UI for the group chat
Add search for contacts

Add format name inside contact

Add back button on create group

Fix current contact name and alias

fixup

Update UI for group chat profile

Fix tests

Ui clean up

fix change group chat name

Add leave group chat option

Hide options if user has left the chat

Use modal for all required chat screens

Add dark mode to group chats

Fix offset 10 pt off screen on presentation modals

Wrap keyboard avoiding view with safe area offset

Keep only leave chat

Fix search input focus

Make edit name active when title not changed

Fix lint

review cleanup

QA review

Fix group chat inviter name

Fit flat list into container

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-04-10 13:58:04 +03:00
Andrea Maria Piana c2d129d04e
Fix mark as read for hidden messages
If a message is hidden and is not currently loaded, it will not be
marked as read, resulting in the count being always positive. To avoid this
we always mark it as read, and from the backend we return whether it has
been marked as read or was already seen.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-04-07 13:27:06 +02:00
Andrea Maria Piana 97a953cc64
Upgrade status-go
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-03-30 15:50:10 +02:00
Andrea Maria Piana dcca501b0a
Enable waku node default
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-03-30 10:59:29 +02:00
Artur Zabeyvorota cda7564bbe
[#9657] system messages ui changes in group chat
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-03-25 15:33:41 +01:00
Andrey Shovkoplyas b8861c6c14
[#10141] Unable to login to multiaccount if it is already restored as account in another multiaccount (IOS)
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2020-03-12 14:21:56 +01:00
Roman Volosovskyi cc520a1f27
[#9987] Stop fetching new blocks while app is not active 2020-03-11 09:17:58 +02:00
Andrea Maria Piana 6a9eef1c2a
Upgrade status-go
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-02-29 14:01:52 +01:00
Andrea Maria Piana f9af0825ce
upgrade status-go
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-02-28 18:51:12 +01:00
Roman Volosovskyi 988a7f6b0c
[#10010] Start wallet service for keycard acc 2020-02-26 20:50:34 +02:00
Andrea Maria Piana 21ef5a68b8
Add mark all read
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-02-26 13:35:31 +01:00
Andrea Maria Piana a2af83f034
Add option to enable waku-mode
This commit adds an option to enable waku mode through ENV settings.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-02-17 18:22:50 +01:00
Volodymyr Kozieiev e6c859dd2d
Pending stickers status maintains after app restart
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-02-13 15:02:00 +02:00
Andrea Maria Piana 3d4ee8fe6a
Check for empty public key
We check that ENS does not return an empty public key. In addition to
that validation is done on status-go in order to avoid saving the chat.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-02-07 14:43:54 +01:00
Andrea Maria Piana 27a001b0f0
fix status-go version
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-02-05 11:35:04 +01:00
Andrea Maria Piana b1ec418133
Resolve ENS names in the background
This commits resolves ENS names in the background, implementing retries
and exponential backoff.
All is handled in the background in status-go.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-02-05 11:12:06 +01:00
Roman Volosovskyi ef49699222
[#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:34:40 +02:00
Roman Volosovskyi b41df2f2fc
[#9927] Fast blocks sync after being offline
Front end changes:
 As there is no guarantee that `newblock` event will be dispatched
consequently (e.g. if there was a delay after block#1 the next event
might be dispatched for a block#2000, no guarantee that block#2 will be
the next one), `newTransactions` field was added with a map of accounts
to the number of new transactions received to this block. In result if
there are new transactions we request them all of db instead of fetching
them on for the block specified in `newblock` event, as it was done
previously.

Back end changes:
- 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 19:40:19 +02:00
Andrea Maria Piana 6ff878c836
Explicitly start messenger
We should only start receiving messages/processing topics once all the
initializiation is completed, so an endpoint that start the messenger
has been added.
Before we would initialize the topics/receiving messages at the same time,
which resulted in a race condition where a topic was signaled from
status-go and was considered new just because was not loaded yet.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-01-29 21:17:32 +01:00
Roman Volosovskyi 161042066d
[#9203] Transfers fetching with less requests
- all messages are not shown right away, in order to paginate history
  a user has to press "load more" button
- added link to etherscan before transfers list
- there is a new "fetch more" button at the end of the list
- rest of changes can be found here status-im/status-go#1775
2020-01-23 14:41:16 +02:00
Andrea Maria Piana ee613276b7
Fix ens names & contacts
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-01-23 11:32:21 +01:00
Jakub Sokołowski 171ca13db2
status-go: upgrade 0.39.8 > 0.39.10
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-23 10:06:36 +01:00
yenda db74e0431c
make send commands work directly with ens names
Signed-off-by: yenda <eric@status.im>
2020-01-20 18:10:55 +01:00
Andrea Maria Piana 53d0cb519c
Fix ens names & group chat add-members
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-01-17 13:43:19 +01:00
yenda 5ab4762a07
update status-go to fix empty-account bug
Signed-off-by: yenda <eric@status.im>
2020-01-15 22:58:18 +01:00
Andrea Maria Piana b2fd81fc76
Contact updates & pairing in status-go
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-01-15 09:46:17 +01:00
yenda 84828891a0
Add chat commands
Signed-off-by: yenda <eric@status.im>
2020-01-10 20:13:19 +01:00
yenda f36efbc24b
fix stickers persistence
Signed-off-by: yenda <eric@status.im>
2020-01-10 17:25:17 +01:00
yenda bf16116acd
move multiaccount settings to a table
integrate status-go changes to move multiaccount settings to a table
that can be migrated

Signed-off-by: yenda <eric@status.im>
2020-01-02 18:07:10 +01:00
yenda a72d4c7d85
integrate status-go fix for keycard accounts
Signed-off-by: yenda <eric@status.im>
2019-12-19 21:32:10 +01:00
yenda 2c3e831a03
use accounts rpc endpoints
Accounts were previously stored within the multiaccount `setting`
serialized in transit

This moves [:multiaccount :accounts] to `:multiaccount/accounts` and uses
the `getAccounts`, `saveAccounts` and `deleteAccounts` endpoints.

Signed-off-by: yenda <eric@status.im>
2019-12-17 10:33:46 +01:00
yenda 6a800b211d
move custom tokens to a separate table
Signed-off-by: yenda <eric@status.im>
2019-12-12 14:00:01 +01:00
Andrea Maria Piana 54cf783d5b
Move group chats to status-go
This commit completely remove transit for group chats. All the
processing is now done in status-go.
Also introuduces parsing and handling of mentions, needed so that system
messages can be easily built in status-go.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-12-10 16:18:26 +01:00
Roman Volosovskyi 91b931c3b4
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:57:44 +02:00
Andrea Maria Piana 78d694f52f
Move message processing to status-go and introduce protobuf
This commit moves all the processing of messages to status-go.

Messages are going arrive to status-react already saved an processed.

Receiving/sending/retrieving from db is now using the same identical
structure. The only processing left in status-react is to mark the
messages as seen and update the unviewed count locally (only
status-react knows whether the count should be updated).

Partially remove commands as well as won't be used anymore.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-12-05 17:30:30 +01:00
yenda 572e028f32
fix 9394 select mailserver based on ping
- if not mailserver was actively selected by user,
use rpc call to get latency for known mailservers
and use the best one
- this happens when `set-current-mailserver` is called which happens
in `change-mailserver` when user unpins his preferred mailserver and when
there's been too many failed attemps to fetch messages or to connect to
then current mailserverm as well as when user logs in.

Signed-off-by: yenda <eric@status.im>
2019-11-28 23:31:39 +01:00
Roman Volosovskyi 67e6ab6055
[#9435] Prevent multiaccount duplication
Currently we have two ways to restore a multiaccount:
- by entering a mnemonic phrase
- by pairing a keycard with an existing multiaccount

In both cases, when we detect that a user tries to recover an existing
multiaccount we interrupt recovering and propose them to unlock that
multiaccount instead.
2019-11-27 17:10:55 +02:00
Jakub Sokołowski b32dd113f6
nix: upgrade nixpkgs
Also:
- upgrade Go: 1.12 > 1.13
- upgrade Android SDK: 28.0.3 > 29.0.2
- nix: stop using system Fastlane for iOS builds
- nix: include CocoaPods in shell for iOS
- nix: concatenate shellHooks correctly
- fix gomobile status-go build by setting GO111MODULE=off
- fix gradle accepting empty STATUS_GO_SRC_OVERRIDE value
- don't use a pure shell for uploadToSauceLabs()

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-26 16:30:41 +01:00
Andrea Maria Piana 9a9c0ce526
Render markdown
Fixes: https://github.com/status-im/trailofbits-audit/issues/47
Fixes: https://github.com/status-im/trailofbits-audit/issues/46
Fixes: https://github.com/status-im/trailofbits-audit/issues/44
Fixes: https://github.com/status-im/security-reports/issues/13
Fixes: https://github.com/status-im/security-reports/issues/5
Fixes: https://github.com/status-im/status-react/issues/8995

This commits re-introduce rendering of markdown text and implent a few
changes:

1) Parsing of the message content is now in status-go, this includes
markdown, line-count, and rtl. Parsing is not nested, as there's some
rendering degradation involved as we nest components, unclear exactly if
it's react-native or clojure, haven't looked too deeply into it.
2) Emojii type messages are not parsed on the sending side, not the
receiving one, using the appropriate content-type
3) Fixes a few issues with chat input rendering, currrently we use
`chats/current-chat` subscription which is very heavy and should not be
used unless necessary, and means that
any change to chat will trigger a re-render, which caused re-rendering
of input container on each received message. Also to note that
input-container is fairly heavy to render, and it's rendered twice at
each keypress on input.

The inline markdow supported is:

*italic* or _italic_
**bold** or __bold__
`inline code`
http://test.com links
\#status-tag

The block markdown supported is:

\# Headers
```
code blocks
```
> Quotereply

The styling is very basic at the moment, but can be improved.
Adding other markdown (photo,mentions) is straightforward and should
come at little performance cost (unless the component to render is
heavy, i.e a photo for example).

There are some behavioral changes with this commit:

1) Links are only parsed if starting with http:// or https://, meaning that
blah.com won't be parsed, nor www.test.com. This behavior is consistent
with discord for example and allows faster parsing at little expense to
ser experience imo. Fixes a few security issues as well.

2) Content is not anymore capped (regression), that's due to the fact that
before we only rendered text and react-native allowed us easily to limit
the number of lines, but adding markdown support means that this
strategy is not viable anymore. Performance of rendering don't see to be
very much impacted by this, I would re-introduce it if necessary, but
I'd rather do that in a separate PR.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-11-15 10:23:25 +01:00
Andrea Maria Piana 2bb7c70216
[Fixes: #1520] Enable ens
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-11-08 13:03:42 +01:00
Andrea Maria Piana 5fe385c225
Parse messages in status-go
This commit enables parsing of messages in status-go.
Currently only a few messages are supported in status-protocol-go.
For now we only enable Message types.
Status-react will conditionally use the parsed version if present.
Eventually this can be moved to a separate signal/different structure,
but for the time being is best to validate with the minimum amount of
changes.

The next step would be handle validation and processing of the field in
status-go, so we can skip saving the message from status-react.

This commit should improve performance of receiving messages from a
chat, although haven't had time to validate that.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-11-06 19:30:47 +01:00
Andrea Maria Piana 5eb314db58
Use staging fleet and upgrade status-go
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-11-04 15:07:12 +01:00
Andrea Maria Piana 9cd891365a
Use payload & avoid transforming in clojure objects.
This commit includes a few performance fixes:
1) Pass a string payload instead of an hex encoded string, to avoid
unecessary conversion
2) Don't js->clj on messages, as that's fairly expensive and we can get
away without
3) Don't use `pr-str` `read-string`, rather convert to json

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-10-23 15:52:32 +02:00
Adam Babik df874966ba
upgrade status-go with geth 1.9.5
Signed-off-by: Adam Babik <a.babik@designfortress.com>
2019-10-05 16:26:55 +02:00
Andrea Maria Piana acd7e56d1d
Add gfycat/identicon from status-go
Signed-off-by: yenda <eric@status.im>
2019-09-26 14:12:43 +02:00
yenda e91375a97b
fix #8992 update account timestamp when login with keycard
Logout from keycard account was redirecting to login screen for another user
because `b.multiaccountsDB.UpdateAccountTimestamp` was not called in
`startNodeWithKey` as it was done in `startNodeWithAccount` in status-go

The fix is therefore in status-go and this PR updates status-go version to
fix that

Signed-off-by: yenda <eric@status.im>
2019-09-24 11:48:12 +02:00
Dmitry Novotochinov 1df30f7447
handle initialized cards
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-09-16 11:14:35 +03:00
yenda 172038b70d
integrate mailserver-ranges api 2019-09-09 18:39:49 +02:00
yenda dbf8d60f8b
integrate status-go mailserver-topics api
Signed-off-by: yenda <eric@status.im>
2019-09-05 18:08:03 +02:00
Andrea Maria Piana e7fa010088
Move gaps to status-go
This commit moves gaps to status-go.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-09-04 15:53:48 +02:00
yenda ef36ece15b
[fix 8829] fix wrong password behavior on login
fix #8829

Signed-off-by: yenda <eric@status.im>
2019-09-04 13:20:38 +02:00
Andrea Maria Piana 12c08b1398
Use last-message-timestamp in mainchat
We use the timestamp of the last message in the chat preview.
In case there's no message, the old timestamp will be displayed (last
time the chat has been updated).

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-09-02 11:34:04 +02:00
Andrea Maria Piana 58204f935b
upgrade status-go
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-08-29 08:40:57 +02:00
yenda 4283c675d1
update status-go 2019-08-28 16:46:52 +02:00
Andrea Maria Piana 564090d7e6
upgrade status-protocol-go
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-08-26 12:18:03 +02:00
yenda d2f1bbeb16
integrate status-go initKeystore native call
- avoids having to start a node before login
2019-08-20 17:42:02 +02:00
Andrea Maria Piana dcb7415208
Move messages to status-go
This commit does a few things:

1) Move messages to status-go
2) Use message-id computed from status-go
3) Remove old replies

Old message id was used for compatibility of replies with older clients.
Given that v1 is breaking, this is not needed anymore and simplifies
moving messages to status-go. No protocol/data-store change is made, to minimize
changes.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-08-20 13:25:05 +02:00
Andrea Maria Piana 370bc207bc
Add datasync confirmations, enable device-to-device by default
This commit adds datasync confirmations and enables device-to-device for
all the communications, as that's what we will go with v1.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-08-12 19:52:37 +02:00
Andrea Maria Piana 6fa482a776
Move chats to status-go
This commit moves chats to status-go.

I have changed the logic to load all chats in one go for simplicity and
while that might have a performance impact, I think it's premature to
  optimize this flow as there will be more changes to the login flow.

Also currently this is likely to be slower as we need to wait for the
 status-service to be initialized, as well as realm.

No migration is provided as we are past the point of no return, so by
installing this version you will lose your chats.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-08-05 16:08:24 +02:00
Andrea Maria Piana 79f2eed181
update status-go
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-07-30 20:36:07 +02:00
Andrey Shovkoplyas 6d337bc69a
multiaccounts 2019-07-30 20:35:58 +02:00
Andrea Maria Piana 27b77a6dc9
Add datasync,v1messages & disable discovery topic
In preparation for v1 this commits adds a few options so we can get
start debugging the protocol for v1.
This options are:

1) Datasync: If enabled it will send datasync messages
2) V1Messages: If enabled it will send v1 messages (just adding a
signature to the message)
3) Disable discovery topic: If enabled it will stop listening/publishing
on the discovery topic. You will be able to receive messages only from
clients who have this enabled as well.

If any of this option is on, it will only be compatitle with builds >=
this one. A logout is required for any change to take effect.

All this options will be removed before v1, they are there just to make
it easier for us to test and find potential issues.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-07-30 19:11:59 +02:00
Andrea Maria Piana cb5768000a
[Fixes #8604] Integrate status-go protocol library
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-07-24 19:53:34 +02:00
Jakub Sokołowski b9ab37019d
build status-go for Nix cache
Also fix scripts/update-status-go.sh to accept commit SHA1

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-23 01:01:41 -04:00
yenda c3c4a5170a
[multiaccount] rename multiaccount to account
Signed-off-by: yenda <eric@status.im>
2019-07-22 11:14:44 +02:00
Pedro Pombeiro 67d21c98c1
nix: Use status-go commit sha1 in Nix expression to allow for moving branches
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-20 10:11:34 -04:00