177 Commits

Author SHA1 Message Date
Roman Volosovskyi
7097de6e05
[perf] extensions module 2019-06-13 09:35:09 +03:00
Roman Volosovskyi
908f730b1d
[perf] network module 2019-06-13 09:33:18 +03:00
tbenr
e93906c0d9
update open-login-callback after fx/def macro fix
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-06-03 10:51:50 +02:00
tbenr
090a4e7c76
fixes #6573
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-31 10:25:24 +02:00
Dmitry Novotochinov
fd061833f5
save keycard key-uid to account and use it to login
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-05-29 12:55:32 +03:00
yenda
9b04dc6530
[dev feature] extend the defn macro
the defn macro knows register the function as an events under the
keywords provided in the :events key of the attributes map. It also
adds the interceptors provided in the :interceptors map

exemple:

```clojure
(fx/defn hello4
  {:doc "this function is useless as well"
   :events [:test/valid1 :test/valid2]}
  [{:keys [db]} b]
  {:db (assoc db :a b) :b (:a db)})
```

Signed-off-by: yenda <eric@status.im>
2019-05-27 13:50:46 +02:00
yenda
b13864d052
[refactor] move utils.ethereum to ethereum
move utils.ethereum.tokens to ethereum.tokens
move utils.ethereum.abi-spec to ethereum.abi-spec
move utils.ethereum.core to ethereum.core
move utils.ethereum.eip165 to ethereum.eip165
move utils.ethereum.eip55 to ethereum.eip55
move utils.ethereum.eip681 to ethereum.eip681
move utils.ethereum.ens to ethereum.ens
move utils.ethereum.erc721 to ethereum.erc721
move utils.ethereum.mnemonics to ethereum.mnemonics
move utils.ethereum.resolver to ethereum.resolver
move utils.ethereum.macros to ethereum.macros

Signed-off-by: yenda <eric@status.im>
2019-05-23 15:11:48 +02:00
yenda
fc4c772c0b
[refactoring] remove web3, clean up wallet effects
- introduce json-rpc namespace, which provides `call` and `eth-call`,
a generic way of calling a json-rpc method taking care of conversions
and error handling
- remove web3 usage from wallet
- clean up effects, reducing the amount of computations when login in
2019-05-23 10:44:15 +02:00
yenda
89680f4861
[performance] improve wallet update performances
`wallet-autoconfig-token` is a very expensive call on mainnet
because it checks the balance of every known token.

it is called:
- when wallet is refreshed by pulling
- when user goes on any wallet screen

this PR changes that by:
- calling it only when the wallet is initialized and there is no
visible-token configuration

it only calls update-wallet when a new transaction arrives
2019-05-23 10:44:15 +02:00
yenda
b274ed9fa9
[feature] use new block signal to get new transactions
- remove the transaction fetching loop entirely to rely only on subscription
for live transactions and token transfer updates
- fetch token transfers history via etherscan API to lift the 100000 blocks
limit on token transfers history

- inbound token transfers are catched via a filter on ethlogs
- outbound token transfers and other transactions are catched by filtering
transaction in current block that have the wallet address as to or from field
2019-05-23 10:30:32 +02:00
yenda
f5c18ae7a9
[feature] use subscriptions for tokens
- removes fetching of last 100000 blocks of token transfers from
the wallet pull loop
- fetches the last 100000 blocks of token transfers at startup
- replaces pulling by subscriptions to ethlogs for token transfers
2019-05-23 10:30:32 +02: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
yenda
65f05933bc
[feature] use status-go signal subscriptions for current block
- use signal subscriptions to get latest block signals
- compute confirmations in transaction details from current block
dynamically

Signed-off-by: yenda <eric@status.im>
2019-05-13 15:36:58 +02:00
Dmitry Novotochinov
1f24f1c4f6
[#7897] fix navigation bug on keycard tx sign
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-05-11 15:27:30 +03:00
Dmitry Novotochinov
99e00898f9
[#7911 #7894] delete account and logout after keycard reset
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-05-08 14:35:10 +03:00
Vitaliy Vlasov
1ca9294af7
[MVP TTT] Contract support for settings
- settings are stored in a manifest that is pointed at by the contract
- during login the contract is checked to fetch the settings

Signed-off-by: yenda <eric@status.im>
2019-04-30 14:52:33 +02:00
Andrey Shovkoplyas
6f16ccf416
[#6457] Implement extension data persistence
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-04-18 15:53:22 +02:00
Roman Volosovskyi
2753b0ef60
Skip fetching 24h of discovery topics on a new account
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-04-16 11:55:17 +02:00
Emilio Silva Schlenker
64b63d5593
[#7598] Beta alert on upgrading
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-04-11 20:50:10 +02: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
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
yenda
26b97ddf43
introduce system-tags
Signed-off-by: yenda <eric@status.im>
2019-03-25 16:55:09 +01:00
Andrey Shovkoplyas
5e1713ddf8
[#7776] Blank screen after username submit when creating new account on Desktop
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-03-21 17:12:42 +01:00
Roman Volosovskyi
6a3468c800
Request if chaos mode was enabled 2019-03-21 13:22:21 +02:00
Roman Volosovskyi
403f327c34
[#7771] Fix beta warning 2019-03-20 15:37:04 +02:00
Roman Volosovskyi
298f000fcb
Disable Etherscan and Cryptocompare requests in chaos mode 2019-03-19 19:35:24 +02:00
Andrey Shovkoplyas
ad4c6ce94f
[#7684] Relocate and change menu for "+" icon on home/chat screen 2019-03-19 13:11:20 +01:00
Dmitry Novotochinov
908e80eb0b
[#7216] import account to keycard
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-03-01 14:38:00 +03:00
Roman Volosovskyi
b8d4f2911b
new bottom tab (react-navigation) 2019-02-20 19:14:17 +02:00
Andrea Maria Piana
bddae03ab2
Allow multiple push notifications
We keep tokens synchronized across devices, so that the user can notify
us on any paired device.
Currently we record the installation id associated to the fcm-token even
though is not necessary, but it will be once we send device-to-device
messages, in which case we want to notify only those devices.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-14 16:33:50 +01:00
Roman Volosovskyi
48291247b2
Loading history on mobile network 2019-02-13 18:59:21 +02:00
Andrea Maria Piana
7960fdef85
Publish contact updates periodically
Currently it's very easy for contact details to get out of sync, the
simplest example is:
A & B are contacts.
A changes name.
B receives the updated name.
B re-install the app.
Until A changes name again, B will not see their name, picture and won't
be able to send push notifications.

This PR changes the behavior to publish account informations to contacts
every 24 hrs, to add some redundancy in this cases.

It also publishes a contact code every 12hrs.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-12 14:20:45 +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
Andrea Maria Piana
e07433fdff
Disable creating a chat until login complete
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-29 19:47:56 +01:00
Andrey Shovkoplyas
2430992fb4
Implement stickers market
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-01-28 17:18:44 +01:00
Julien Eluard
16b657d6ee
Added kyber extension
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-01-25 16:26:03 +01:00
Dmitry Novotochinov
cee18d23b8
[#7132] add keycard settings
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-01-23 20:11:23 +03:00
Roman Volosovskyi
f18886cf52
Remove misleading comment related to login flow 2019-01-11 19:15:25 +02:00
Andrea Maria Piana
ad99ed2a28
Allow toggling pfs in dev-mode
This commits allow users to toggle pfs in dev-mode (it is already used
for pairing and group chats).

Once enabled direct and public messages sent will only be received by
users running >= 0.9.32.

Also this does not guarantee PFS (both devices need to have it enabled
it), and there still some UX work to do to ensure that, but it is useful
for testing.

A warning is displayed explaining the limitations when enabling.
2019-01-09 09:34:51 +01:00
Roman Volosovskyi
cdf8dc043a
[#7192] fix autologin switch behaviour on wrong password
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-07 17:35:18 +01:00
Roman Volosovskyi
de5463532b
[#7189] Proper handle of restoring existing account with wrong password
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-12-28 14:23:02 +01:00
Roman Volosovskyi
e3cc50c7d7
[slow sign in] Adding symkeys and filters in batch
This commit changes the way how keys are restored:
1. batch of `ssh.addSymKey` requests for all sym keys is sent at once
2. `:status-im.transport.core/sym-keys-added` event is dispatched with
   results of all successful `ssh.addSymKey` calls
3. filter is created via `ssh.newMessageFilter`
4. `:shh.callback/filters-added` event is dispatched with all added
   filters as a parameter
5. profit

In ideal case only 2 `re-frame` events are dispatched.
2018-12-27 11:49:50 +02:00
Dmitry Novotochinov
7fa46065a7
[#7005] add installation progress bar
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-12-24 18:02:38 +03: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
Volodymyr Kozieiev
112fe367cc
Fixed desktop release warning messagebox
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2018-12-20 15:51:54 +02:00
Dmitry Novotochinov
962c49e345
add keycard installation
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-12-20 15:43:37 +03:00
Vitaliy Vlasov
e40e495e11
Use QSettings in AppConfig
Some more changes

Changes

Fix review items

Rename init-settings to restore-native-settings

Restore application name (thanks @churik !)

Remove org name/domain setting for desktop

Change organization name to include domain

Re-use default values in :desktop/desktop

Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2018-12-19 19:53:54 +02:00
Roman Volosovskyi
e122ebdb84
[#7135] Fix wrong password handling
Leftover after #7032. The node hasn't been started if the user entered a
wrong password, that's why `Statusgo.Verify` call has failed (it works
properly only with running node atm).

Implementation:
- the node is started with "dummy" configs if it's necessary to call
  `Statusgo.Verify` method
- on `Statusgo.Verify` callback node is stopped so that it can be
  started with proper configs on the next sign in attempt.
- signing in is disabled while the node is running

disable sign in while node is running

_

_
2018-12-19 18:17:43 +02:00
Vitaliy Vlasov
9bc98405a0
Add react-native-desktop-config
Add section separator for logging-display

Refactor user-login-callback

Add comment to AppConfig class definition

Fix mobile compilation error

Use reference in AppConfig singleton; remove obsolete CMake directives

Styling changes

Disable status-go logs by default on desktop

Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2018-12-18 14:31:40 +02:00
Roman Volosovskyi
07e8f6908d
[#6952] Fix odd app behavior after quick logout
This commit changes the way how/when the node is started/stopped:
1. `node` is not started on the app startup
2. When the user presses "Sign in" button the node is started
   with user specific configs (`InstallationID`, custom bootnodes, etc),
   and only after that `Login` call is performed.
3. When the user creates a new account, at first the node is started
   with default params (the same as would be used when user signs into
   the app after account creation whithout changing any setting), then
   `CreateAccount` call happens, then `Login`.
4. When the user restores their account, the flow is the same as `3`
   but with `RecoverAccount` instead of `CreateAccount`
5. When the user logs out the node is stopped. That's it.
2018-12-17 13:27:17 +02:00