Commit Graph

100 Commits

Author SHA1 Message Date
Andrey Shovkoplyas a79a72fccb
[#9749] Support importing private key and seed 2020-03-03 12:51:28 +01:00
Pedro Pombeiro e220ecbb0a
Cleanup
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2020-01-10 19:59:54 +01:00
acolytec3 3bcf7ecf29
Add BIP39 validation for seed phrase recovery
Signed-off-by: yenda <eric@status.im>
2020-01-06 16:02:14 +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
Roman Volosovskyi 3b65fddb2f
[#9620] Generate name and photo during keycard acc creation 2019-12-11 19:41:53 +02: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
Volodymyr Kozieiev 7168eada1c
Calls to gfycat and identicon made async in few places
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2019-12-06 17:42:36 +02:00
Roman Volosovskyi 5bb6997d1d
[#9354] Unlock keycard account without a card
To make it work `encryption-public-key` and `whisper-private-key` are
stored on the devices when a user chooses this option. The former key is
used for multiaccount's database encryption, the latter is needed for a
messaging. In case if a user wants to sign a transaction the card is
still needed, we don't store wallet's keys on the device.

Other things were fixed/added:
- A user can enable biometric auth for a regular account when chooses
  to save the password on the device (if biometric auth is available).
  This is done for feature parity between keycard and "on device"
  accounts.
- The option to create/restore an account on a keycard is not shown on
  the devices which do not support NFC. Currently, the app just crashes
  if the user continues a flow which is not supported by the device.
2019-12-02 19:25:05 +02:00
Roman Volosovskyi 5ecc7590d9
[#9446] Resume logging when connection to card is restored
Currently there are two ways to initiate logging in with keycard:
- enter PIN code and after that connect card to the phone
- connect card to the phone and enter PIN after that

Before this commit in both cases when connection to the keyacrd was lost
and then restored, logging in didn't resume. In result a user saw a
pop-up with endless spinner.

The reason of this bug was that `:on-card-connected` and `:on-card-read`
actions were not restored in app-db after losing connection to the card.

This commit introduces helper functions for both `:on-card-connected` and
`:on-card-read` which allow to reset these values and stash them until
particular flow of calls to keycard will be finished. In case if
connection was lost before the flow is finished the valueas are restored
so that it can be succesfully resumed on th next connection.

Also a banch of log entries were added to simplify debugging of
interactions with keycard and native module.

Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-11-20 12:31:16 +01:00
yenda 36ad6fb762
support for local notification service on Android
- add option in profile on Android to enable local notifications
- use foreground service to keep the app alive when running in the background
- implement enable and disbable notification function in status module

When enabling notifications, a foreground service is started that displays
a sticky notification to make the user aware that the app is running in the
background.
Notifications are updated whenever a new.message signal is handled on java side.
Currently only one to one chats are generating notifications but that can be
easily extended to other types of messages, including mentions and keywords.
The ens name of the user as well as keywords to follow should then be passed
to the native side when calling the enable function.

Signed-off-by: yenda <eric@status.im>
2019-11-07 09:59:12 +01:00
yenda 7bb45fdd8f
remove firebase
Signed-off-by: yenda <eric@status.im>
2019-10-29 15:03:58 +01:00
Andrey Shovkoplyas 371c66aad1
Remove UUID related code #9048
Signed-off-by: yenda <eric@status.im>
2019-09-30 15:55: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
Dmitry Novotochinov 1df30f7447
handle initialized cards
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-09-16 11:14:35 +03:00
yenda 6be85f46a5
[fix 8702] hash passwords before sending them to status-go
fix #8702

- use ethereum.utils sha3 function to hash passwords before sending them
to status-go
- some native calls take password as one of their params: they now take
hashed-password (still a string, only relevant for status-react caller)
- some native calls take password within a map of rpc params: it now
needs to be hashed with `ethereum.core/sha3`

Signed-off-by: yenda <eric@status.im>
2019-09-05 18:13:10 +02:00
yenda d312192209
clean up native-module
- remove impl/modules.cljs namespace because it was needlessly redundant
- remove `create-account` unused call
- add documentation for some calls
- only keep `(status)` check for relevant calls that are failing tests
because they are evaluated
2019-09-05 18:09:56 +02:00
Pedro Pombeiro 66b982c3fb
Use react-native net-info community package
Signed-off-by: yenda <eric@status.im>
2019-09-05 14:16:28 +02:00
yenda ab58dcfa36
rename subaccounts -> accounts 2019-08-28 16:46:52 +02:00
yenda 41cf68b6a7
[fix 8786] fix multiaccount recovery and add account
fix #8786

- multiaccount recovery wasn't saving the root key properly
- this resulted in the impossibility to add new accounts in the wallet

Signed-off-by: yenda <eric@status.im>
2019-08-23 13:15:28 +02:00
yenda d7cd2b8a74
integrate status-go accounts 2019-08-20 17:42:02 +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
Dmitry Novotochinov b635691c25
recovery flow v1
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-08-14 19:42:26 +03:00
Andrey Shovkoplyas ba112a765b
[#8666] Add account via BIP 44
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-08-14 17:58:24 +02:00
Andrey Shovkoplyas 6d337bc69a
multiaccounts 2019-07-30 20:35:58 +02:00
yenda c3c4a5170a
[multiaccount] rename multiaccount to account
Signed-off-by: yenda <eric@status.im>
2019-07-22 11:14:44 +02:00
Vitaliy Vlasov e9fd6e1a6b
Onboarding setup wizard
New onboarding e2e tests updates

New onboarding e2e fix 2

Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2019-07-08 18:17:50 +03:00
Andrea Maria Piana 138ade3b8d
Move installations to status-go
This commit moves the management of installations to status-go, and
migrates the data from realm.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-07-03 12:50:23 +02:00
Andrea Maria Piana 532664ab84
Adds topic negotiation and partitioned topic
All the code has been implemented in statusgo: status-im/status-go#1466

Basically all the whisper filter management is done at that level.

Technical description
On startup we load all chats and send a list of them to status go:
For a public chat: {:chatId "status"}, we create a single filter, based on the name of the chat.

For each contact added by us, each user in a group chat and each one to one chat open, we send:
{:chatId "0x", :oneToOne true}. This will create a chats, to listen to their contact code.

Any previously negotiated topic is also returned.

Once loaded, we create our filters, and upsert the mailserver topics, both of which are solely based on the filters loaded.
In order to remove a chat, we delete/stopwatching first the the filter in status-react and then ask status-go to remove the filter. For a public chat we always remove, for a one-to-one we remove only if the user is not in our contacts, or in a group chat or we have a chat open. Negotiated topics are never removed, as otherwise the other user won't be able to contact us anymore.

On stopping whisper we don't have to ask status-go to remove filters as they are removed automatically.

Some more logic can be pushed in status-go, but that will be in subsequent PRs.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-06-24 13:54:43 +02:00
tbenr 090a4e7c76
fixes #6573
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-31 10:25:24 +02:00
Roman Volosovskyi c7c7b50281
RAM bundle basic setup 2019-05-27 17:34:17 +03:00
bitsikka d640b4c87c
[7947] Feature: Blank out app preview screen when switching apps on mobile
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-22 15:31:50 +02:00
Roman Volosovskyi 3226309bab
Add js logs to archive 2019-05-15 17:40:41 +03:00
Roman Volosovskyi ff39426e56
[android] send logs to error-reports@status.im 2019-05-10 17:02:58 +03:00
Dmitry Novotochinov 4decedf5f6
Revert "Revert "[#7133] sign tx with keycard""
This reverts commit 4ccb1ea52d.

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-04-05 15:49:47 +03:00
Andrea Maria Piana f8674c0ee1
Add reading nodes from contract
This PR is part of network incentivisation. It adds a way for a client
to pull nodes from a contract.

This is done by selecting the `eth.contract` fleet. If that is selected
on login it will fetch nodes from a contract and pass them to status-go.
If these can't be fetched, it will default to `eth.beta`.

Currently contract information are hard-coded, but eventually the user
will be able to add their own (probably).

Toggled off in release.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-04-05 14:32:15 +02:00
Dmitry Novotochinov 4ccb1ea52d
Revert "[#7133] sign tx with keycard"
This reverts commit feffcaf33d.

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-04-02 20:12:40 +03:00
Dmitry Novotochinov feffcaf33d
[#7133] sign tx with keycard
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-04-02 18:07:41 +03:00
Andrea Maria Piana 29c168dfa1
Upgrade status-go and turn chaos mode on
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-26 10:59:21 +01:00
Julien Eluard 38570aa42f
Migrated to latest pluto release
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-03-19 12:55:15 +01:00
Andrey Shovkoplyas ba37f7b8d0
[#5461] Implement EIP-712
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-03-07 15:39:17 +01:00
Andrea Franz d4594d815f
add hash-transaction and send-transaction-with-signature
Signed-off-by: Andrea Franz <andrea@gravityblast.com>
2019-03-04 11:19:50 +01:00
Dmitry Novotochinov 1b836bf7ec
[#7006] login with keycard
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-02-06 00:20:07 +03:00
Igor Mandrigin fafecfe95a
Get rid of StatusService.
StatusService was only used to handle `signalEvent:` from status-go.
This commit simplifies this interaction and getting rid of the service
and all the problems that come with it.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-29 12:01:05 +01:00
Pedro Pombeiro d3f1b37c12
Use new status-go and rename NotifyUsers
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-24 15:41:32 +01:00
Pedro Pombeiro 5a69b4198e
Update PNs to use data-only messaging, and only encode/decode data values. Fixes #6772
Fix navigation to chat when PN is tapped while signed off. Fixes #3488

Anonymize PN pubkeys. Part of #6772
2019-01-17 19:23:55 +02:00
Roman Volosovskyi 2777809db9
enable saving password on android
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-08 17:40:00 +01:00
Pedro Pombeiro 9d21cf143e
Add Send Logs command. Closes #6710
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-01-08 09:48:56 +01:00
Roman Volosovskyi dd2ff11216
[#7139] Fix crash on logout
The crash was caused by RPC calls which happened after `StopNode` call.

Implementation:
- The first suggestion was to `StopNode` only after all `.stopWatching`
  calls are done, but this only lowered probability of the crash,
  but did not fix the issue.
- Another suggestion was to prevent RPC calls after `StopNode` call,
  but it also only lowered probability of the crash.
- So the last resort was a fix on `status-go` side
  https://github.com/status-im/status-go/pull/1329,
  and it actually worked.
- Advanced settings are hidden until `Statusgo.Login` is finished
2018-12-20 21:35:09 +02:00
Andrea Maria Piana d760f1696c
Add mailservers confirmations & use peer count for online status
We now check that we are only connected to some `peers` instead of using `NetInfo` from `react-native`.

This is because it has been reported to be quite flaky at times, not reporting online status after sleeping, and for privacy concerns (on ios it pings `apple.com`, on desktop `google.com`).

Adds a new banner `Wallet Offline` and change `Connecting to peers` to  `Chat offline`.

A message will be marked as `Sent` only if it made it to the mailserver you are connected to, which will increase the guarantees that we can make about a message (if you see it as sent, it has reached at least a mailserver), this has the consequence that:

- If you are not connected to any mailserver or the mailserver is non responsive/down, and you send a message, it will be marked as `Not sent`, although it might have been actually made it in the network.

Probably this is something that we would like to communicate to the user through UX (i.e. tick if made it to at least a peer, double tick if it made to a mailserver )

Currently I have only enabled this feature in nightlies & devs, I would give it a run and see how we feel about it.
2018-12-12 19:53:01 +01:00