54 Commits

Author SHA1 Message Date
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
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
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
yenda
e87d75039e
remove unused use-status-go-protocol? flag and code
Signed-off-by: yenda <eric@status.im>
2019-09-17 17:10:13 +02:00
yenda
543d28fbc1
remove unused deleteChat rpc method and effects 2019-09-17 17:09:23 +02: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
yenda
1147466362
integrate status-go mailserver api 2019-09-05 18:07:17 +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
Vitaliy Vlasov
dfeec0f39f
Fix empty contact code string errors
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2019-08-30 15:46:11 +03:00
yenda
84c04949aa
save account with accounts_saveAccounts rpc call
so that transaction history starts being fetch without having to relogin
2019-08-28 16:46:52 +02:00
yenda
ddefae11b1
use wallet_getTokensBalances to reduce number of rpc calls 2019-08-28 16:46:52 +02:00
yenda
b45e7ccafb
cleanup fetching transactions 2019-08-28 16:46:52 +02:00
yenda
d4a396bedf
move networks out of multiaccount 2019-08-28 11:11:40 +02:00
yenda
1c475e5b1e
replace last remains of web3.js by json-rpc 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
bitsikka
39e095e1ed
[8069] feature - [Profile] My profile edit and share screens
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-08-19 11:09:38 +03: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
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
yenda
89abc8ab11
[fix #8638] issues with wallet transaction list
- pending transaction was using hash so mined transaction was using it's id
to have a unique id, the fix adds a rule when the existing transaction by hash
is in :pending state, the mined transaction overwrites it

Signed-off-by: yenda <eric@status.im>
2019-07-26 14:01:56 +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
0c839860a2
integrate status-go browsers api 2019-07-26 12:16:32 +02:00
Julien Eluard
f29f02d961
Migrate to latest sticker contract
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-07-24 10:23:15 +02:00
yenda
688bafc294
[wallet] integrate changes to wallet service
- update to wallet service now uses flat structure

Signed-off-by: yenda <eric@status.im>
2019-07-22 14:26:39 +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
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
e1bcaebd2c
Resolve ENS name in chats and profiles
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-07-02 19:41:07 +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
Andrey Shovkoplyas
26bbac83bc
[#8348] [Multi-Account] Account overview + individual wallet UI
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-06-18 17:44:56 +02: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
Andrey Shovkoplyas
7de2941f26
[#8026] [Wallet] Sign transaction module 2019-06-12 13:20:01 +02: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
Vitaliy Vlasov
04ccd0e7d8
Add TtT chat flow
Signed-off-by: yenda <eric@status.im>
2019-06-03 15:31:30 +02:00
Roman Volosovskyi
daacccb512
[Android, iOS] Advanced ClojureScript compilation 2019-05-30 21:23:31 +03:00
yenda
254639e586
[feature] add transaction watch
Signed-off-by: yenda <eric@status.im>
2019-05-30 18:16:18 +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
8014f05837
Add goerli testnet
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-05-29 14:58:59 +02:00
Roman Volosovskyi
c7c7b50281
RAM bundle basic setup 2019-05-27 17:34:17 +03: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
ded207ead2
[refactor] use ethereum current-address and chain-keyword
in many places in the codebase, we are doing various destructuring
and function calls to get the normalized current address and the chain
keyword for the current network

this PR replace all usages by utility functions introduced recently

Signed-off-by: yenda <eric@status.im>
2019-05-23 14:48:43 +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