Commit Graph

342 Commits

Author SHA1 Message Date
Andrea Maria Piana 5f910a0bec
Sync public chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-12-24 14:35:17 +01:00
Roman Volosovskyi 9a9cd0d8d0
[slow sign in] Denormalize last-clock-value
In order to get `:last-clock-value` one extra query was executed for
each chat during initialization.

Implementation:
- `:last-clock-value` field was added to `chat` entity
- this field is updated when the message is sent/received
- extra query was removed
2018-12-24 14:18:42 +02:00
Julien Eluard 5db9aa9ac7
Reintroduced broken PR #7092 with fix
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-12-21 14:55:32 +01:00
Dmitry Novotochinov 962c49e345
add keycard installation
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-12-20 15:43:37 +03:00
Roman Volosovskyi c440b7a3a7
[slow sign in] Denorlmalize last message
The last messages of the chats are necessary to properly show the chat
list, which is shown right after signing in. Before this commit, the
last message was retrieved as one of 20 last messages fetched for each
chat.

Implementation:
- `:last-message-content` and `:last-message-type` fields were added to
  `chat` entity
- both fields are updated when messages are received/sent
- loading of the last 20 messages for each chat was removed as
  initialization step
2018-12-17 13:29:10 +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
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
Rob Culliton 88d3e78454
change 9+ to actual count of unread messages
unread-messages-count fn, based off Maciej's comment on #6749

adding test, some difficulty running the test suite locally via clj

actually use the new functionality for displaying on desktop

first pass at updated styling for unread count chat icons

styling pass 2: finer attention to detail for the purple/blue icons

a bit more padding bloat to accomodate for the number 1, which occurs
frequently :)

remove counter from "home" icon on desktop

Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2018-12-12 15:55:13 +02:00
Igor Mandrigin afc368b1b0
Upgrade status-go to 0.17.6-beta (Constantinople).
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-12-10 12:59:44 +01:00
Roman Volosovskyi b6e515618b
[#6956] upgradable `message-id`
Implementation:
1. `transport.utils/message-id` function is called only in three places now
   and accepts `from` and  `raw_payload` as parameters.
   ID is calculated as `sha3(from + raw_payload)`.
2. This means that for wrapped private group chat message
   the raw payload of `GroupMembershipUpdate` is used.
2018-12-05 11:22:43 +02:00
Andrea Maria Piana dfbc27c5d7
Allow admin to leave chat
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-12-04 10:17:50 +01:00
Vitaliy Vlasov dc4841f041
Add react-native-desktop-menu native module
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2018-12-01 02:03:06 +02:00
Andrea Maria Piana 5795ca8d1a
Enable group chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-30 11:12:34 +01:00
Julien Eluard e3e75e0498
[Fixes #6874] Added transaction-receipt, schedule and balance events
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-11-29 23:09:45 +01:00
Andrea Maria Piana 08291a8396
Keep username/photo-path synced across devices
We add syncing of account fields in pairing messages (only photo-path &
name for now). Also a sync message is sent each time we send a
contact-update, to keep other devices in sync. The change is compatible
with previous clients as it's just an accretion of transit.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-29 11:37:14 +01:00
tbenr 2d5c4e3892
fixes #6601
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-11-25 21:02:58 +01:00
Roman Volosovskyi 5d5847e4b9
[slow sign in] Add unviewed messages counter to chat entity.
Before we fetched ALL user-statuses with `status=received` (which means that
a message hasn't been seen), iterated them, grouped by chat and then stored
`message-ids` of these `user-statuses` in chat's `:unviewed-messages` key.

This commit introduces :unviewed-messages-count field in chat entity.
That means that there is no need to iterate `user-statuses` in order to count
a total number of unviewed messages, it is always stored along with chat.
In the rest of it, the difference is only that chat's db record should be
updated each time when unviewed messages are seen.
2018-11-23 17:08:48 +02:00
Andrey Shovkoplyas 5dd345fe49
[#6643] Allow chat command suggestions to select parameter
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-11-22 15:57:39 +01:00
Bruce Hauman a5c5e1831f
better protect transaction history polling from errors
Go blocks parse try catch blocks and turn them into event
dispatches. This captures the original intent of the code to catch
errors and terminate the current async worker execution.

Signed-off-by: yenda <eric@status.im>
2018-11-21 17:25:36 +01:00
Julien Eluard ee4cafbbe3
[Fixes #6784] Fixed some ABI codec issues
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-11-21 11:12:19 +01:00
Goran Jovic 72e7ae2fff
feature #6509 - validating token config against their contracts; moved token info from compile time list to app-db; fixed any discrepancies in existing info
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-11-20 17:18:08 +01:00
yenda 1ba7feb439
[refactor] move contact.subs and utils.contacts to contact.db
functions defined in subs need to be reusable and testable independently
from re-frame framework. they are moved into db namespace for that purpose

Signed-off-by: yenda <eric@status.im>
2018-11-19 14:30:25 +01:00
yenda 77e9aea755
[refactor] move chat.subs fns to chat.db
Signed-off-by: yenda <eric@status.im>
2018-11-19 12:30:58 +01:00
Bruce Hauman 1716643c46
[#5749] transaction history fixes
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-11-16 10:03:54 +01:00
Andrea Maria Piana 1104becfba
Enable syncing of contacts & style pairing section
Everytime a contact request is sent/confirmed a sync message is also
sent to other devices so the contact is kept in sync.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-14 13:21:14 +01:00
Eric Dvorsak 548162f733
[refactor] remove current-public-key 2018-11-09 11:16:27 +01:00
Eric Dvorsak f8f499d9b0
[refactor] rename whisper-id and whisper-identity to public-key 2018-11-09 11:16:27 +01:00
Eric Dvorsak a6da75f8e9
[refactor] remove email field in account 2018-11-09 11:16:27 +01:00
Eric Dvorsak 4804d11b0f
[refactor] remove jail-loaded? and jail-loaded-events 2018-11-09 11:16:23 +01:00
yenda a3b2bc1b87
[fix #3913] do not logout when changing mailserver
- do not logout and remove previous mailserver
from peers when changing mailserver
- rename wnode mailserver
- move transport.inbox to mailserver.core
- fix all subs and db keys

Signed-off-by: yenda <eric@status.im>
2018-11-07 17:10:18 +01:00
Dmitry Novotochinov 737d44931f
[#4433] update mac os dock badge label on new messages
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-11-07 18:18:35 +03:00
Andrea Maria Piana 693eae9cf9
Send your own messages
Adds a `chat-id` field in `content` map.

The reason it has been added to the map instead of augmenting transit is
that it would simplify the calculation of `message-id`, which in this
case is consistent for both old & new clients.

`chat-id` also represents the `chat-id` with respect of the sender, as
in 1-to-1 chats that is asymmetric.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-06 21:19:50 +01:00
janherich ff97345f07
Plug-in new text parsing engine 2018-11-06 19:59:24 +01:00
Andrea Maria Piana 7aa597517e
Add system messages to group chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-05 14:54:43 +01:00
Andrea Maria Piana 073dddcee0
Add pairing
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-27 20:43:53 +02:00
Andrey Shovkoplyas f8ef431373
[extensions] ethereum call decode params
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-10-25 09:22:29 +02:00
yenda e020f19da0
[fix 6500] search doesn't find name for contact that added user
- chat name is not updated with contact name
- when a contact adds the user and is added back by user, the name
of the chat is still the random name of the contact
- in active-chats subscriptions, replace the name of the chat by the current
name of the contact
2018-10-24 18:18:50 +02:00
Goran Jovic 3da2cd9b9e
feature #6250 - added xdai and poa sidechains
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-10-24 10:00:04 +02:00
yenda 82c3997f07
[desktop] Add search feature for chat list
Signed-off-by: yenda <eric@status.im>
2018-10-23 17:27:27 +02:00
yenda 6b1c6c7d0a
[fix 6410] error when fetching history on certain accounts
- 1-1 chats don't have a topic anymore because they only use the
discovery topic so topic is nil for these chat
- this was causing an error when initializing whisper because the app
was trying to start a filter for each of the chat including the 1-1 with
no topic
- we now filter the transport/chats to only recover sym-key and start filter
for those with a topic
2018-10-22 19:10:34 +02:00
Andrea Maria Piana 9629983f7f
Remove instabug 2018-10-19 09:18:22 +03:00
Roman Volosovskyi 4c426d9c2b
remove the rest of testfairy's mentions from the project 2018-10-18 20:54:59 +03:00
Aleksandr Pantiukhov 76a724a2e7
[#6228]: API: requesting to connect to a node that is not available crashes the application
Signed-off-by: Aleksandr Pantiukhov <alwxndr@gmail.com>
2018-10-18 16:43:42 +02:00
Dmitry Novotochinov 248e60e1d3
[#5038] desktop deep links
Add support for status-im://chat/public/status type of links

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-10-18 16:02:14 +03:00
janherich acd05e2687
Implementation of text content parsing 2018-10-16 23:13:11 +02:00
yenda 660bd2d1bd
request 7 days of history
- fetch 7 days of history when joining a chat
- make 7 24h requests to request 7 days because mailservers
ignores requests for a timespan > 24h
- make requests sequentially to avoid timeouts
- change mailserver after 3 timeouts on a request

Signed-off-by: yenda <eric@status.im>
2018-10-15 17:18:59 +02:00
Igor Mandrigin 1c4cca1004
Don't start a node while the node is already being started.
Restart it instead, so that we are sure which config is there.

Signed-off-by: yenda <eric@status.im>
2018-10-15 16:43:30 +02:00
Julien Eluard 5eeda7aa0b
Fixes #6275
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-10-15 15:34:47 +02:00
yenda 1a2fcdfe3a
refactor contact models
- move models.contact and models.contacts to contact.core
- add tags field to contact and chat

Signed-off-by: yenda <eric@status.im>
2018-10-15 11:57:48 +02:00
yenda efdd76b364
refactor inbox
Signed-off-by: yenda <eric@status.im>
2018-10-11 14:47:04 +02:00
Andrea Maria Piana 84151ea996
Ignore messages with too high clock-value and prevent stored messages to pollute the database
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-09 14:34:29 +02:00
Andrea Maria Piana 78b6d67d79
Allow to edit group membership
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-09 10:40:13 +02:00
Andrey Shovkoplyas 1b6d51ff11
implemented functionality to request user action from dapps
fixed qr code js api

Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-10-04 15:25:18 +02:00
Andrey Shovkoplyas a1d0dcc0ec
introduced new status js api according latest web3 opt-in api 2018-10-02 22:12:46 +02:00
yenda f6a50b2799
[fix 6051] log error during connexion and pass cofx
Signed-off-by: yenda <eric@status.im>
2018-10-02 14:11:05 +02:00
Andrea Maria Piana 165f1a46c7
Propagate signed membership information
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-02 12:06:28 +02:00
janherich 44fbe62773
Chat replies + refactoring 2018-09-28 16:15:47 +02:00
yenda f37276a648
[fix 6012] can't open dapps from deeplinks
Signed-off-by: yenda <eric@status.im>
2018-09-28 09:44:48 +02:00
Eric Dvorsak 21cc106ed3
cljs implementation of abi-spec
Signed-off-by: yenda <eric@status.im>
2018-09-26 21:58:14 +02:00
Andrea Maria Piana 0c48d09c71
Add back group chats messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-09-26 20:58:03 +02:00
yenda 4bd5d986b0
remove merge-fx macro
Signed-off-by: yenda <eric@status.im>
2018-09-25 15:18:44 +02:00
yenda ed2abf9101
introduce fx/defn macro and fx/merge function
intended to deprecate `handlers-macro/merge-fx`

Signed-off-by: yenda <eric@status.im>
2018-09-25 04:17:19 +02:00
Andrea Maria Piana df51731fca
Add pfs flag, installation id and nobackup data directory
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-09-24 17:47:02 +02:00
Dmitry Novotochinov 41347ae5e0
[#5898] add HW setup screens
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-24 16:43:01 +03:00
yenda 8459fef358
Refactor browser and permissions
- move db and models ns to browser module
- remove browser navigation/preload-data
- rewrite dapp-permission logic and move code to permissions ns
- rewrite all browser events according to guidelines and move them to
`status-im.events` ns
- rewrite tests for browser and permissions
2018-09-24 12:08:34 +02:00
yenda 1ddb09b249
Remove misleading wrap-call-once! fn
Signed-off-by: yenda <eric@status.im>
2018-09-23 17:09:07 +02:00
lokalise-bot f1dd24e3b4
Lokalise: update of translations/ko.json
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-09-21 07:03:27 -04:00
yenda b71005d2fa
replace all register-event-db by fx and remove trim-v interceptor
Signed-off-by: yenda <eric@status.im>
2018-09-20 13:37:31 +02:00
janherich 8913dee762
Chat refactoring
Move chat views to ui.screens
2018-09-20 13:27:43 +02:00
lokalise-bot 0658cdbdfa
Lokalise: update of polish translations
enable polish translation

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-09-20 07:03:24 -04:00
Dmitry Novotochinov 60cb0eb36c
[#5825] add hardwallet auth method and connect screens
* add react-native-nfc-manager to detect NFC support
* add "Choose auth method" screen https://www.figma.com/file/UfQjpWl1hmRchHIyY3Wvu2nW/Hardwallet-light-flows?node-id=259%3A29
* add "Hardwallet connect" screen https://www.figma.com/file/UfQjpWl1hmRchHIyY3Wvu2nW/Hardwallet-light-flows?node-id=258%3A594

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-20 12:30:47 +03:00
yenda 7dbc8a7f39
[fix 5814] fix custom network
Signed-off-by: yenda <eric@status.im>
2018-09-19 13:13:30 +02:00
Eric Dvorsak d5fcc0b003
[FIX 5813] connect to custom mailserver button fix
Signed-off-by: yenda <eric@status.im>
2018-09-18 17:37:42 +02:00
Roman Volosovskyi 6438a1387b
[#4866] intagrate react-navigation 2018-09-18 14:21:32 +03:00
janherich 031088b856
Fix unit tests 2018-09-17 12:51:57 +02:00
janherich 988a1ca2e2
Prices handling in commands impl 2018-09-12 17:39:02 +02:00
Dmitry Novotochinov ca149062ad
[#5593] Disallow decimal wei value for gas price
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-11 20:10:01 +03:00
Eric Dvorsak 8dc9af8917
refactoring of events into status-im.events
Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-09-11 15:09:54 +02:00
Dmitry Novotochinov eb4f34da22
[fix #5063] calculate fiat amount on recipient side
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-07 18:01:47 +03:00
Eric Dvorsak 80aa0e9286
[feature #5213] allow user to select fleet in settings
- get wnodes from resources/config/fleets.json which is taken from
fleets.status.im
- store wnodes by fleet and not by network since they are always the same
- reset wnodes settings during migration
- add option in developper menu to select fleet
- mailservers are now presented by their real name

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-09-07 15:33:29 +02:00
janherich 252d09ee05
Fix the bug and remove requests 2018-09-06 18:24:17 +03:00
Eric Dvorsak 8eb5047d7a
[fix #4819] update react-native to 0.56
Fix figwheel-bridge path in clj-rn.conf.edn
update SplashScreen
update ios to 9.0
updated Podfile.lock
downgrade cocoapods to 1.5.2
update package-lock.json
update pod repo when installing
update appcompat to v27

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-05 21:27:46 +03:00
Aleksandr Pantiukhov b283ffe4af
[#5315]: Status development tools: HTTP debugging, updated react-native-http-bridge
Signed-off-by: Aleksandr Pantiukhov <alwxndr@gmail.com>
2018-09-05 15:01:53 +02:00
Dmitry Novotochinov 19590c8e54
[fix #5303] Improve amount validation for /send and /request commands
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-04 12:53:49 +03:00
Eric Dvorsak 02191f0380
[fix 5715] make generate-sym-key-from-password mergeable
Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-09-03 19:05:53 +02:00
Eric Dvorsak 3513adb7ca
[feature #5422] universal links scannable via QR code scanner
Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-09-03 17:14:31 +02:00
Goran Jovic c35a651f15
bug #5542 - fixed errors when no currency selected - using usd as default throughout the app
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-09-03 11:48:48 +03:00
Julien Eluard ae976e205f
Added extensions loading panel
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-08-31 16:41:58 +02:00
Eric Dvorsak 728831c9c2
remove unused flags
reorganize config flags
remove offline-inbox-enabled? flag
remove universal-links-enabled flag
remove add-custom-mailservers-enabled? flag
remove spam-button-detection-enabled? flag
remove flags from config files

Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-08-29 16:30:05 +02:00
Eric Dvorsak bb339dc39b
refactor login flow
simplified flow:

- event `:ui/login` is dispatched
- node is initialized with user config or default config
- `node.started` signal is received, applying `:login` fx
- `:callback/login` event is dispatched, account is changed
in datastore, web-data is cleared
- `:init/initialize-account` event is dispatched

replace event dispatches by function composition

fix bug in universal links where url to be processed after login
was never removed

Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-08-28 14:46:33 +02:00
Eric Dvorsak dacfe97a58
refactor events and fns to dedicated namespaces
- move init events and fns to dedicated namespace
- move web3 events and fns to dedicated namespaces
- move signal events and fns to dedicated namespace
- move notifications events and fns to dedicated namespace
- cosmetic fixes
- remove print statements
- fix formating
- remove unused imports
2018-08-28 14:44:55 +02:00
Eric Dvorsak 002f3e73d1
refactor :initialize-account into single event
fix tests for :initialize-account refactoring
fix destructuring typo
2018-08-28 14:44:55 +02:00
Igor Mandrigin 02545cc3d0
Implement "Save Password" for iOS.
Update react-native-keychain to 3.0.0 release.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-27 17:09:55 +02:00
Eric Dvorsak 67a86f57e9
[fix #5612 #5613] improve contact code validation
- fix contact code validation for universal links
- go to profile when following universal link pointing to
user own contact code
- fix contact code validation for add contact field

spec for validating public-key has been changed to a
regexp that only accept valid normalized public-key

Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-08-24 15:35:08 +02:00
Goran Jovic d46eec0bc8
bug #4476 - fixes reoccurrence of recovery phrase in logs
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-08-24 10:51:27 +02:00
Goran Jovic 2b89d1e25c
feature #5310 - improved validation in account recovery screen; also bug #5353
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-08-23 13:09:15 +02:00
Andrey Shovkoplyas 42abd16e9a
[#5260] Implement web3 provider Opt-in access
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-08-22 11:31:54 +03:00
Andrey Shovkoplyas a0e7dc65c4
moved wallet transactions ns
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-08-21 17:35:13 +03:00
Andrey Shovkoplyas 3e7c059b59
wallet refactoring
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-08-18 07:28:43 +02:00
Eric Dvorsak 1769bfb695
fix tests 2018-08-13 16:17:08 +02:00