Commit Graph

80 Commits

Author SHA1 Message Date
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