Commit Graph

500 Commits

Author SHA1 Message Date
yenda 7bb45fdd8f
remove firebase
Signed-off-by: yenda <eric@status.im>
2019-10-29 15:03:58 +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
Andrea Maria Piana 57b1722863
Verify ens names on messages and contact requests
This commits verifies ens names when new messages or contact requests
come through.
A batch of ens names is sent to status-go which will then verifying them
and the result will be passed back in a callback to status-react.

Also temporary skipped test_ens_in_public_chat until we merge the ENS
code (blocked currently by 1.9 upgrade)

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-10-23 12:32:28 +02:00
Andrey Shovkoplyas 1c51731aea
[#8446] [Multi-Account] Build account settings for individual wallet
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-10-18 12:09:47 +02:00
yenda 7b6dfad702
[fix 8853] fix change of whisper id in ens registration
A user can type in their existing name in the registration flow. Status can
confirm if they own it. After signing a transaction, the user can update the
Whisper ID to their new one.

Instead of using a hardcoded contract for stateofus, the standard `owner`
method is called to find the resolver contract of a ens name.
This allows users to set the pubkey even for ens names that are not
subdomains of stateofus

Signed-off-by: yenda <eric@status.im>
2019-10-16 17:32:07 +02:00
Andrey Shovkoplyas da4d95d85c
drop les
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-10-15 13:55:39 +02:00
Vitaliy Vlasov 5fd269fde8
Onboarding UI fixes
Signed-off-by: yenda <eric@status.im>
2019-10-10 21:00:29 +02:00
Andrey Shovkoplyas b3d04bb68c
[#8966] biometric
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-10-04 12:43:32 +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 c047b588ed
throw errors on dangerous behaviours
- if multiaccount settings are saved on top of an empty map or nil,
this means something went wrong, the state of the app is unstable,
and actually saving will result in loss of data. It should never
happen, but if it does, throw and error and abort.
- sometimes two fxs are merged when they shouldn't, this is caused by
bugs and should never happen, but if it does, throw an error with arguments
for both effects to help localize the error

Signed-off-by: yenda <eric@status.im>
2019-09-25 19:33:43 +02:00
tbenr f7076016d8
fixes #8071
Signed-off-by: yenda <eric@status.im>
2019-09-20 17:54:23 +02:00
yenda 8ccc858d41
fix #9003 Recover deleted translations
replace i18n/message-status-label by regular label to avoid repeating
this issue in the future

recover the following labels:
- status-not-sent-click
- status-not-sent-tap
- status-sent

Signed-off-by: yenda <eric@status.im>
2019-09-20 13:07:11 +02:00
yenda 47bae76c73
remove group-chat-local-version 2019-09-17 17:09:22 +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
acolytec3 7ba83bde74
All strings removed from translations
Signed-off-by: yenda <eric@status.im>
2019-09-13 16:20:49 +02:00
Pedro Pombeiro 9feb31bd3b
Upgrade react-native to 0.60.5
- Use community net-info, react-native-webview instead of deprecated react-native classes
- Remove react-native-tcp
- Upgrade react-native libs (react-native-camera, react-native-firebase, react-native-mail, react-native-udp, react-native-webview-bridge)
- Do not include `:react-native-android` module explicitly
- Take advantage of RN AutoLinking
- nix: Update Gradle dependencies
2019-09-12 16:13:42 +02:00
yenda 5db0a58ab8
remove unused deps and document the others
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-09-12 16:12:46 +02:00
yenda f538cfe848
remove web3 dependency 2019-09-12 15:51:57 +02:00
yenda c3dd950286
remove realm
Signed-off-by: yenda <eric@status.im>
2019-09-09 18:40:15 +02:00
yenda 172038b70d
integrate mailserver-ranges api 2019-09-09 18:39:49 +02: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 dbf8d60f8b
integrate status-go mailserver-topics api
Signed-off-by: yenda <eric@status.im>
2019-09-05 18:08:03 +02:00
yenda 1147466362
integrate status-go mailserver api 2019-09-05 18:07:17 +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
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
Pedro Pombeiro 58d310ffce
Remove RAM bundle support 2019-08-30 17:13:35 +02:00
Andrey Shovkoplyas 0288d617cb
[#8849] Use node-qrcode instead of react-native-qrcode 2019-08-29 15:53:44 +02:00
Andrea Maria Piana 3b52a61bdf
validate links before opening
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-08-29 15:14:06 +02:00
yenda b28c521b2b
remove semaphores 2019-08-28 11:11:41 +02:00
yenda d4a396bedf
move networks out of multiaccount 2019-08-28 11:11:40 +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 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
Andrey Shovkoplyas 2e06dd36da
remove unused resources
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-08-22 18:27:06 +03:00
yenda ff2b24b1c6
cleanup shh/post
Signed-off-by: yenda <eric@status.im>
2019-08-22 14:56:10 +02:00
yenda 75ce7da50c
remove realm chat-transport usages 2019-08-22 14:55:50 +02:00
yenda c75d5b24f6
[fix 8795] remove mainnet is default alert
Signed-off-by: yenda <eric@status.im>
2019-08-21 17:40:50 +02:00
yenda 5cafef6702
remove contact-recovery
contact recovery is now handled by status-go

Signed-off-by: yenda <eric@status.im>
2019-08-21 10:37:46 +02:00
Andrea Maria Piana 79ab816497
Fix serialization of group-chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-08-21 09:50:27 +02:00
yenda 1c475e5b1e
replace last remains of web3.js by json-rpc 2019-08-20 17:42:02 +02:00
yenda d61fffb021
remove dev-server and extensions for v1 2019-08-20 17:42:02 +02:00
yenda d7cd2b8a74
integrate status-go accounts 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
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
Andrea Maria Piana fe9d4e9cd8
Move contacts to status-go
Contacts are now in status-go, no migration of contacts is provided so
all contacts will be lost upon installing this build.

I have left the initialization of filters a bit sketchy (we wait that
load-filters is called twice), as the next step will be to avoid calling
load-filters altogether, as now that both contacts & chats are in
status-go, there's no reason to call it from status-react, and can be
called directly from status-go on loading.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-08-07 13:39:59 +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
Andrey Shovkoplyas 6d337bc69a
multiaccounts 2019-07-30 20:35:58 +02:00
Andrea Maria Piana 1e655540da
Fix loading of filters
Currently on some devices there are still some legacy chats(?) that are
one-to-one but don't have a public key as an id (transactor,demo-bot).
We were wrongly sending those to status-go to create filters.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-07-30 20:25:59 +02:00
Andrey Shovkoplyas 447d37e5ca
[#8673] Temporay hide commands from chat and extensions
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-07-30 19:13:30 +02:00
yenda 3ea8538377
integrate status-go permissions api
Signed-off-by: yenda <eric@status.im>
2019-07-26 12:16:52 +02:00
yenda 562773fa1b
[wallet] use status-go wallet service
- remove use of etherscan and subscriptions
- replace by status-go
2019-07-22 11:16:00 +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 3a903fbaa2
Revert "Hide key storage selection screen temporarily"
This reverts commit 8764fafc42.
2019-07-18 13:14:37 +03:00
Vitaliy Vlasov 8764fafc42
Hide key storage selection screen temporarily
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2019-07-18 12:59:01 +03:00
Julien Eluard 28f7ea0408
Enable stickers on all envs. Use contenthash to identify stickers
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-07-11 15:06:32 +02:00
Vitaliy Vlasov 433f840f76
Onboarding sign-in
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2019-07-11 15:46:24 +03: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
Volodymyr Kozieiev ea8bf402d7
Two pane ui on large screens
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2019-07-05 13:03:21 +03:00
Andrea Maria Piana de0d98da20
Use a signal for messages
This commits changes the behavior to read from a signal instead of
polling each filter.

We receive a signal from status-go every 0.3 seconds, only if new
messages are received. We receive a single signal for all the chats, and
we don't dispatch anymore on every message.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-07-04 15:07:59 +02: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
Julien Eluard 3b7e92230b
[Fix #8067] Added screens for ENS preferred name selection
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-06-25 08:50:39 +02:00
Igor Mandrigin 79454938bc
[android, ios] render markdown-ish formatting in chat messages natively.
use patched RN to make sure that heavily-formatted messages don't slow
our chats down.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-06-24 16:50:09 +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
Vitaliy Vlasov b6163b8ae5
Check tribute if contact was added (but not otherwise)
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2019-06-19 15:19:09 +03:00
Julien Eluard 8aa16520c6
[Fixes #8066] Added native ENS registration
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-06-18 13:25:56 +02:00
Roman Volosovskyi 908f730b1d
[perf] network module 2019-06-13 09:33:18 +03:00
Andrey Shovkoplyas 7de2941f26
[#8026] [Wallet] Sign transaction module 2019-06-12 13:20:01 +02:00
Roman Volosovskyi 3bd0947b4c
[perf] move goog.i18n deps to a module 2019-06-10 21:10:42 +03:00
yenda 04de022eae
[refactor] replace web3-prototype
- replace web3-prototype wherever possible
- currently only the money namespace is left
for future refactoring, the ideal solution
would be to use strings for big numbers all
the time and only convert for arithmetic operations
- use json-rpc call to replace trivial web3 calls

Signed-off-by: yenda <eric@status.im>
2019-06-06 15:57:34 +02:00
Roman Volosovskyi 632bbf3bc1
[perf] Move translation to node_modules in release build 2019-06-05 18:40:53 +03:00
yenda 1ae42ea424
[perf] upgrade realm and improve schemas/queries
- upgrade to realm 2.28 to benefit from perf improvements
- remove user-statuses and replace by seen and outgoing-status fields
to get rid of a lot of bloat queries and computations
- remove unused seen message, bottom-infos
- remove unused fields in transport schema
- use objectForPrimaryKey whenever possible instead of get by field

Signed-off-by: yenda <eric@status.im>
2019-06-04 23:36:35 +02:00
yenda 1cb7f3b83f
[perf] remove unused schemas and properties
Signed-off-by: yenda <eric@status.im>
2019-06-03 18:24:34 +02:00
Vitaliy Vlasov 04ccd0e7d8
Add TtT chat flow
Signed-off-by: yenda <eric@status.im>
2019-06-03 15:31:30 +02:00
yenda 75e20a0bbd
remove useless field in message subs
Signed-off-by: yenda <eric@status.im>
2019-06-03 11:06:34 +02:00
Igor Mandrigin 34300cc0c0
Remove unused fields in chats dictionary.
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-05-31 16:11:05 +02:00
tbenr 090a4e7c76
fixes #6573
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-31 10:25:24 +02:00
Roman Volosovskyi daacccb512
[Android, iOS] Advanced ClojureScript compilation 2019-05-30 21:23:31 +03:00
yenda f03225c03d
[fix] destructuring in events for fx/defn macro
Signed-off-by: yenda <eric@status.im>
2019-05-30 18:17:28 +02:00
yenda 4b6e5763e1
[feature] add basic decoding support for swarm
Signed-off-by: yenda <eric@status.im>
2019-05-30 18:15:32 +02:00
Igor Mandrigin af6c784ab4
Prepare to use status-go based protocol: 1-1 and public chat management APIs.
Connect to stubs of status-go protocol API, behind the flag. Since status-go isn't updated yet, setting this flag will break the app.
What needs to be tested is no regressions in a normal mode.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-05-29 16:34:37 +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
Roman Volosovskyi c7c7b50281
RAM bundle basic setup 2019-05-27 17:34:17 +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 b6fecd4e1c
[refactor] remove ethereum `call` and `call-params`
- use `json-rpc/eth-call` and `json-rpc/eth-transaction-call`
everywhere
- move all conversions to abi-spec
2019-05-23 10:44:15 +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 2cd26c585d
[refactor] transaction history and filters 2019-05-23 10:30:33 +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 b0449f3416
[fix] ipfs CID
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-14 13:44:08 +02:00
yenda 9b18f1d261
[feature] add varint encoding/decoding
Signed-off-by: yenda <eric@status.im>
2019-05-13 13:53:06 +02:00
Dmitry Novotochinov 5762967a44
[#7887] handle tag lost errors
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-05-11 23:05:33 +03:00
Julien Eluard 99172607d5
[Fixes #7325] Add EIP681 deeplink support
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-08 14:44:24 +02:00
Julien Eluard 7b0ebf75e9
Fixed broken EIP15777 support
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-05-07 15:38:55 +02:00
Roman Volosovskyi 148d43fdab
[#7871] Handle multiple opened screens with qr code readers 2019-05-06 17:25:02 +03:00
Andrey Shovkoplyas 428464df07
re-frame subscriptions optimization
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-01 12:49:31 +02:00
Roman Volosovskyi 9b9eefbf0e
Allow to fetch more history in public chats (up to 30 days) 2019-04-26 15:53:26 +03:00
Roman Volosovskyi 3a2d70273e
Maintain scroll postion after fetching gap
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-04-25 16:01:03 +02:00