Commit Graph

742 Commits

Author SHA1 Message Date
Richard Ramos 92bd8a1b96 fix: trigger changes in membership verification on chat update 2020-12-09 14:18:40 -05:00
Michael Bradley, Jr 10d82124fe refactor: embed Infura key at compile time
Allow environmental override at runtime. Also, in the Makefile set a free-tier
default token so that setting up an Infura account isn't strictly necessary for
community contributors to build the app, even though in our docs it should be
recommended they do so.

Core contributors should setup their own free-tier Infura account, create a
key, and set it in the environment variable INFURA_TOKEN in their environment
used to build the desktop app locally.

There is one aspect of this work that is incomplete. Ideally, in the handler
for the `login` event the relevant settings in the database should always be
updated with the resolved Infura key. However, when calling
`getSetting[string](Setting.Networks_Networks)` in the handler it causes a
segfault every time. Neither the reason for the crash nor a workaround have
been worked out at this time.
2020-12-09 12:10:12 -06:00
Richard Ramos ae30d04010 refactor: ProfileView 2020-12-08 17:01:22 -05:00
Richard Ramos 426fe504b4 refactor: move `generateIdenticon` to utils 2020-12-08 17:01:14 -05:00
Richard Ramos ae83818eed refactor: chats view
Extract private groups, reactions, stickers and transactions procs to individual view files
2020-12-08 17:01:14 -05:00
hydrogen f69da599ae fix: update chat view after user is blocked 2020-12-04 15:52:04 -05:00
Richard Ramos 1e245a3375 fix: don't allow importing existing seed phrases / private keys in wallet and clean error messages when opening popup 2020-12-02 14:44:49 -05:00
Richard Ramos cfb17cd85c fix: remove duplicated SNT in token list and add mouse cursor to wallet list 2020-12-02 14:35:07 -05:00
Jonathan Rainville 6e7bb6ba1c code review 2020-12-01 14:07:31 -05:00
Jonathan Rainville 6098a3e4af chore: update status-go to merged develop 2020-12-01 14:07:31 -05:00
Jonathan Rainville 724b73072f refactor: get the bookmark image from status-go instead 2020-12-01 14:07:31 -05:00
Jonathan Rainville ea436e79c6 feat: put favicon urls in the settings when we fetch them 2020-12-01 14:07:31 -05:00
Jonathan Rainville f7cc0cf78d feat: add popup menu to add favorites on sites themselves 2020-12-01 14:07:31 -05:00
Jonathan Rainville a13f1f2043 feat: add basic bookmark support 2020-12-01 14:07:31 -05:00
hydrogen ff5b972139 fix: stop crash by showing error message
fix #898

The segmentation fault occured because the RPC response returned json with an error message as oppossed to the usual data required to update the chat. Since the section of the code didn't handle this error message it caused the app to crash. I've handled this error to show an error alert box by emitting a  event
2020-12-01 13:40:49 -05:00
Richard Ramos b9d59f44cc feat: show loading indicator on login when requesting mailserver messages 2020-12-01 13:32:39 -05:00
Richard Ramos a0c4839d48 fix: code review 2020-12-01 13:31:30 -05:00
Richard Ramos c405029e37 fix: wallet derivation paths for generated accounts , imported seed phrases and private keys 2020-12-01 13:31:30 -05:00
Jonathan Rainville 95fcee2d00 feat: support italic-bold in messages 2020-11-27 15:19:09 -05:00
Jonathan Rainville b536707646 fix: fix notification banner showing the pubkey of group chats 2020-11-27 15:15:26 -05:00
Richard Ramos b372d8047e
fix: remove echo 2020-11-26 18:33:42 -04:00
Richard Ramos 124ce83ba7 fix: show local nicknames 2020-11-26 13:23:42 -05:00
Richard Ramos a5b9511a55 fix: show ens usernames when creating a 1:1 chat 2020-11-26 13:23:42 -05:00
Richard Ramos 971dca5fb8 fix: request mailserver messages for group and 1:1 chats 2020-11-26 11:44:59 -05:00
Richard Ramos 159c82c329 feat: choose network 2020-11-26 11:44:49 -05:00
Richard Ramos 4e27983047 feat: use cache for network requests 2020-11-26 11:44:09 -05:00
emizzle 417194e7b4 feat: Keyboard shortcuts
Add keyboard shortcuts according to https://notes.status.im/02cfVf1KQLeQU2SqrIi9tw

fix: update chat message bubbles
- Align emojis to middle of text
- Add line-height as per design
- Properly support RTL languages (right-aligned) and LTR languages (left-aligned)
- Remove unneeded non-breaking space at the beginning of current user messages
- Properly support markdown for bold, strikethrough, and italic
- Fix text being removed when in between strikethrough markdown (~~)

fix: emoji resolution update for high resolution monitors
- Emojis now use the 72x72 original set, but are down-scaled to 20x20 (in chat bubbles) or 22x22 in other places, effectively tripling their pixel density

feat: handle new lines in blockquote

Handle new lines in blockquote so that messages display correctly.

Also, add functionality when a new line is entered in to the chat input, if it's inside a blockquote, a new ">" will be added automatically. This is also handled when backspace is entered.

feat: update xss to support full qt html4 table and table-cell attributes
2020-11-26 11:33:32 -05:00
emizzle e0e1487643 refactor: replace transaction modal `reset` functionality
The transaction component's `reset` functionality was meant ot reset a form when the modal was closed. It was difficult to manage and added extra overhead for each additional transaction modal created.

Instead of using reset functions, we can use Loaders to load and destroy the modal's as they are opened and closed. We do not need to keep them in memory and then also reset their functions. It creates a smaller memory footprint to destroy the object and reload on open.

feat: load gas prediction prices asynchronously
2020-11-26 11:17:24 -05:00
Richard Ramos d2ec9854ad fix: transaction dialog not showing up due to missing slot 2020-11-26 10:50:47 -04:00
Pascal Precht af1f03dc7c
feat: allow users to list muted chats and contacts
Partially fixes #1280
2020-11-24 11:17:18 +01:00
Pascal Precht db0b765d74 feat(Notifications): allow users to turn of notifications for non-contacts
Partially fixes #1280
2020-11-24 11:16:02 +01:00
Jonathan Rainville d49be78417 feat: show nickname if there is one in the mentions 2020-11-19 17:00:28 -05:00
Jonathan Rainville 299496a871 fix: remove errors on collectibles rpc errors 2020-11-19 16:58:07 -05:00
Jonathan Rainville 880d97dea0 fix: do not strip spaces from the parts of messages
this caused spaces to disappear when using markdown
2020-11-19 16:54:24 -05:00
Richard Ramos e4b4bf9900 fix: code review 2020-11-19 16:54:09 -05:00
Richard Ramos 997e34ed8a fix: app crashes when adding a contact and getContactById is nil 2020-11-19 16:54:09 -05:00
Jonathan Rainville c10e0a8503 fix: ensure html is escaped in the notification window 2020-11-19 16:53:33 -05:00
Jonathan Rainville 553ff2e915 fix: fix putting a single @ putting a random mention 2020-11-19 13:54:17 -05:00
Richard Ramos 950a7a4241 Set mailserverfleet on init 2020-11-11 15:16:37 -04:00
Richard Ramos f467461ae5 fix: obtain mailservers from fleet config 2020-11-11 12:13:34 -05:00
Pascal Precht fc6c68232b validation and ens resolution fixes 2020-11-11 12:01:38 -05:00
emizzle 76e7897e8d fix: 1-on-1 send tx recipient show in tx preview
We were previously displaying an address in the "to" field for TransactionPreview. Instead, this is meant to be a contact view.
- Fix ContactSelector to trigger selectedContactChanged
- Fix RecipientSelector > ContactSelector to trigger resolveEns from outside call to prevent infinite loop from the above fix
- Add alias to pre-selected contact for the Contact view of TransactionPreview
- Add option to change debounce delay so that when values are pre-selected (readonly), there is no delay before resolution.
- Fix missing tx data param in walletModel.estimateGas
2020-11-11 12:01:38 -05:00
Richard Ramos 97c6abbb05 fix: code review 2020-11-06 16:22:07 -05:00
Richard Ramos ea02c7f0b5 feat: choose fleet 2020-11-06 16:22:07 -05:00
Richard Ramos 3e4e2dae0d fix: code review 2020-11-06 16:21:57 -05:00
Richard Ramos bba08d87b8 feat: populate token details from contract address 2020-11-06 16:21:57 -05:00
emizzle bc1525f513 feat: 1-on-1 chat command ENS flow
1-on-1 chat command to send and request a transaction to/from a contact with ENS enabled.
2020-11-05 11:25:45 -05:00
Iuri Matias 326c6bb6c3 re-add uniswap, compound, balancer, akropolis, orchid tokens 2020-11-05 11:25:33 -05:00
Jonathan Rainville b583a4d4bf feat: show unfurled youtube links 2020-11-05 11:25:22 -05:00
Jonathan Rainville a679758230 feat: show whitelistable sites in the settings and set in qt settings 2020-11-05 11:25:22 -05:00
Richard Ramos 9d771b53dc feat: show tokens details
Fixes #910
2020-11-05 10:55:39 -05:00
Richard Ramos 1122b33ff8 feat: support Swarm and IPNS ENS contenthashes 2020-11-05 10:55:13 -05:00
RichΛrd 86bc8a894b Update src/status/libstatus/accounts.nim
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2020-11-05 10:52:56 -05:00
Richard Ramos aec77b65df feat: use fleets.json to set the node config 2020-11-05 10:52:56 -05:00
emizzle e455586990
refactor: remove wei2Token in favour of wei2Eth. Essentially de-duplicated very similar procs and lessened errors
fix: SignTransactionModal - set default focused account when none is found

refactor: move token lookup from QML to nim in the toMessage procedure.

fix: 1:1 tx requests - handle case where token contract is not found (ie sending SNT from mainnet and receiving message on testnet)

feat: error checking for building a token transaction

feat: TransactionPreview - add a validation check that disallows continuation if the selected "from" account has insufficient funds
2020-10-28 11:07:22 +01:00
emizzle 423882df89
fix: 1:1 chat command transactions "intrinsic gas too low"
I noticed that the 1:1 chat commands were not able to send token transactions due to "intrinsic gas too low" error. I quickly realised there there were a few components missing, which have been fixed.

*feat: update the 1:1 chat commands transaction modal to allow editing of the from account and network fee*

The TransactionStackGroup was updated slightly to allow manual control of back/next actions.

Fixes #870.

*fix: Create distinct modal transaction actions*

Previously, adding `Connection`s for the  `walletModel.transactionWasSent` signal in different dialogs would cause the signal to be handled in the wrong dialog. The solution was to pass a `uuid` from the requesting dialog, and include the `uuid` in the response, so that only requests that were requested from the dialog would be handled.

*fix: update 1:1 translations*
All the translations were not being translated for me. I noticed that they did not exist in the `.ts` translation files either.
2020-10-28 11:07:21 +01:00
Richard Ramos 0a13940742 fix: signatures 2020-10-27 19:55:50 -04:00
Richard Ramos 5461d6f93c feat: remove seed phrase 2020-10-27 19:32:54 -04:00
Richard Ramos 6c641eff42 feat: identify if a token is being approved and estimate gas for contract trxs 2020-10-27 17:13:11 -04:00
Richard Ramos 5ff809b6b8 fix: code review 2020-10-27 17:13:11 -04:00
Richard Ramos 11ae6529e2 feat: dapps permissions 2020-10-27 17:13:11 -04:00
Richard Ramos 7af4f0fd8f feat: dapp browser privileges
- Create privilege dialogs dynamically for each privilege requested
- Check if a privilege has been granted before to determine if dialog must be shown or not
- If dapp is allowed to use privilege, save it in the settings
2020-10-27 17:13:11 -04:00
Richard Ramos 0d717d7919 refactor: improve and simplify mailserver logic to make it thread safe 2020-10-27 17:12:35 -04:00
Jonathan Rainville 84ff2b21a9 fix: fix a couple of QML warnings 2020-10-27 10:23:40 -04:00
Richard Ramos c68498fcfe fix: support downloads in browser 2020-10-20 14:42:36 -04:00
Richard Ramos b18a1d6b4d feat: support message signing 2020-10-20 14:42:36 -04:00
Richard Ramos 37e213e89b feat: dapps permissions 2020-10-20 14:42:36 -04:00
Jonathan Rainville 70177b803a feat: enable sending contract calls from the browser 2020-10-20 14:42:36 -04:00
Jonathan Rainville 0c1156b33c feat: reuse signtxModal and show success and failure 2020-10-20 14:42:36 -04:00
Jonathan Rainville 56d6ece3e9 feat: enable sending an ETH transaction from the browser 2020-10-20 14:42:36 -04:00
Richard Ramos bf5e988cb9 fix: adding a default color to account selector, and changing attribute to result from payload 2020-10-20 14:42:36 -04:00
Richard Ramos 117f4bb6c8 feat: browser account selector 2020-10-20 14:42:36 -04:00
Richard Ramos e512768dc0 fix: replace URL in address bar by ens 2020-10-20 14:42:36 -04:00
Richard Ramos e8183f3a9f feat: use base32 + status infura ipfs for ens contenthash 2020-10-20 14:42:36 -04:00
Richard Ramos ca2fef7c28 feat: resolve ens addresses pointing to IPFS 2020-10-20 14:42:36 -04:00
Richard Ramos f85216e7f7 feat: dapp browser privileges
- Create privilege dialogs dynamically for each privilege requested
- Check if a privilege has been granted before to determine if dialog must be shown or not
- If dapp is allowed to use privilege, save it in the settings
2020-10-20 14:42:36 -04:00
Richard Ramos b6066ef1dd feat: address bar, tabs support and nav buttons 2020-10-20 14:42:36 -04:00
Richard Ramos 3326c8b5f5 feat: ask for user approval for API requests 2020-10-20 14:42:36 -04:00
Richard Ramos 02a7abf864 fix: QWebChannel not available 2020-10-20 14:42:36 -04:00
Richard Ramos b650fa75d5 feat: ethereum.enable(), api: contact-code and readOnly RPC method support on browser 2020-10-20 14:42:36 -04:00
Richard Ramos c2567232b1 feat: injecting scripts needed for communicating from browser to nim
- Changed WebView to WebEngineView
- Created a new controller/view for the web3 provider
- Created a private profile
- Created a channel for comms browser - qml
2020-10-20 14:42:36 -04:00
Pascal Precht 3d0f50a5b3 feat: allow users to configure notification settings
Can choose between all, just mentions, or nothing
2020-10-20 13:50:49 -04:00
emizzle d76667f345 feat: Add warning if sending tokens directly to contract
Fixes #936.

![imgur](https://imgur.com/XuzmdRs.png)
2020-10-19 11:45:59 -04:00
emizzle e58f5b03eb refactor: make event emitter threadsafe 2020-10-16 10:45:24 -04:00
Pascal Precht 9ce0ae08a1 fix: ensure chats are ordered by last message timestamp
Fixes #1146
2020-10-16 10:44:50 -04:00
Pascal Precht 8bf82e1dd6 feat: allow for fetching messages older than 24 hours 2020-10-16 10:43:38 -04:00
Iuri Matias 5b8e3156aa re-update infura key 2020-10-12 11:30:26 -04:00
emizzle 08efd6fc08 refactor: combine list of tokens with contracts
All tokens are now implemented as a strongly-typed Contract, Erc20Contract, or Erc721Contract. This prevents having two separate lists of overlapping tokens/contracts and normalises how to retreive the current SNT contract (depending on the network).
2020-10-09 12:08:25 -04:00
Pascal Precht 1c2a7b0569 fix(Chat): ensure local nicknames are propagated properly
Fixes #1120
2020-10-09 12:06:01 -04:00
Iuri Matias ac3f1e9096 update infura token 2020-10-06 10:14:55 -04:00
Richard Ramos 2da4abf8eb fix: "Contact / Not a contact" indicator was not being updated when an user was added/removed as contact 2020-10-05 10:56:38 -04:00
hydr063n 7a5060da32 feat: load more transactions with a button
use qstrid; trx width and heights; add positionViewEnd; fix some qt rules;

missing semi colons
2020-10-05 10:50:35 -04:00
hydr063n 3229fc06e6 feat: beautify the hex values in transaction history
beautify nonce too

ammend the code to call conversion functions from qt instead

move to utils

var to let
2020-10-05 10:46:00 -04:00
emizzle 6d5bd52d0a fix: Estimating gas prevents transaction modal continue
Fixes: #926.

Gas estimations were not being decoded correctly (indicated with "error getting gas price predictions" in the console) and were preventing transaction dialogs from continuing past the step containing the GasSelector component. This affected mainnet only, because in testnet we have hardcoded gas prices (for when the gas prices on mainnet are insane) which is why it was not apparent in testnet.

fix: Contract address not showing correctly
This was caused by `getStickerMarketContractAddress` being moved to `utilsView` but not updated in QML
2020-10-02 12:33:28 -04:00
Jonathan Rainville 8bac59e98c feat: show the error when sendImage fails
Plus improve toastMessage to better handle wide messages
2020-10-02 12:28:41 -04:00
Jonathan Rainville f9a84c51bb fix: fix windows file upload because of path starting with a slash 2020-10-02 12:28:41 -04:00
emizzle 64b0a11757 feat: add sticker loading UI
Closes: #586

Previously, loading sticker packs and stickers would show a lot of blank and non-interactive content.

Now, stickers and sticker packs have grey circles to indicate loading. Additionally, the sticker market button (+) shows a loading indicator until the sticker packs are loaded.
2020-09-29 15:19:42 -04:00
Jonathan Rainville 8480c4f3da chore: fix typo in collectibles.nim
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
2020-09-29 14:44:10 -04:00
Jonathan Rainville f19bfb7ca7 chore: cleanup collectibles file
Co-authored-by: RichΛrd <info@richardramos.me>
2020-09-29 14:44:10 -04:00
Jonathan Rainville 42102bdae4 feat: limit number of collectibles to 200 to avoid explosions 2020-09-29 14:44:10 -04:00
Jonathan Rainville 51e1ba6f38 feat: enable loading all the cryptokitties assets with recursion 2020-09-29 14:44:10 -04:00
Jonathan Rainville 1dfd16f83d fix: missing type and missing id 2020-09-29 14:34:26 -04:00
Jonathan Rainville 6a57eeccb2 feat: implement new design for the nickname popup 2020-09-29 14:04:32 -04:00
Richard Ramos 2068e85e47 fix: spacing around links 2020-09-29 14:01:51 -04:00
Jonathan Rainville dad1dcf2c5 fix: fix eth2Wei returning a bad string 2020-09-29 14:01:44 -04:00
emizzle c236e01fc8 feat: Support system dark mode theme
Supports system dark mode. Changes the user appearance setting to a 3-way setting of System, Light, Dark.

New accounts will have their appearance setting set to "System", which uses the system setting to determine if dark mode should be applied.

Breaking change: Users who had their settings on Light Theme, will now get the system theme (light or dark). Users who had their theme set to Dark, will now get the Light theme.

At startup, the onboarding screens will have the system-level setting of dark mode applied or not. Once, logged in, the user settings will be applied.

## Note
An appearance setting of "System" is not dynamic to the system-level setting. This means that if a user has "System" set for their appearance (and ie, the user has light mode set), and then user then changes their system setting from light to dark, the app will not respond until it is restarted. This is due to a limitation of Qt not having a reliable way to propagate these changes to QML.
2020-09-29 13:30:13 -04:00
emizzle 7f0720608e fix: total wallet balance not displaying
Fixes: #929.

Calculates total wallet balance when it is requested.
2020-09-29 13:29:18 -04:00
emizzle 078e9758f0 refactor: use nim-web3 library
Use nim-web3 library and remove internal encoding funcs that were copied from nim-web3.

Remove all instances of EthAddress (and therefore eth/common/eth_types imports)
2020-09-29 13:28:08 -04:00
hydr063n 968923e8be chore: refactor ensRegisterAddress too and update the ui to use utilsModel 2020-09-28 10:38:23 -04:00
hydr063n 7e344b0d49 chore: refactor function to UtilsView 2020-09-28 10:38:23 -04:00
chainvisions a0606a169e Added UNI, COMP, BAL, AKRO, and OXT 2020-09-28 10:33:11 -04:00
Michael Bradley, Jr e3dc0469e2 chore: discard instead of echo'ing output of callPrivateRPC("requestMessages", ...) 2020-09-23 16:24:56 -04:00
Richard Ramos 16468960f7 fix: code review 2020-09-22 09:37:41 -04:00
Richard Ramos efac44057a fix: rebase gone wrong 2020-09-22 09:37:41 -04:00
Richard Ramos 346e98c81a feat: Add transaction modal when changing the pubkey 2020-09-22 09:37:41 -04:00
Richard Ramos ca0416dd30 fix: code review and style changes 2020-09-21 15:03:17 -04:00
Richard Ramos 2fb8f2ea55 fix: join/decline group 2020-09-21 15:03:17 -04:00
Jonathan Rainville fd93650b23 refactor: remove duplicated methods in chatModel and use profileModel 2020-09-21 12:52:05 -04:00
Jonathan Rainville 0c0baf29e8 fix: small fixes to the profile popup 2020-09-21 12:52:05 -04:00
Jonathan Rainville 6e357cb5e2 feat: show nickname in the modal from the contact list 2020-09-21 12:52:05 -04:00
Jonathan Rainville bc3b7a5533 feat: enable setting a nickname to a contact 2020-09-21 12:52:05 -04:00
Michael Bradley, Jr dcd5766205
fix: on macOS use status-icon.icns instead of status.svg when setting app.icon() 2020-09-17 15:11:31 -05:00
hydr063n 572e0c3e4c fix: call wakuext_contacts RPC once
include make proposed fix

remove more lines that are already included in `setActiveChannel`
2020-09-17 15:17:42 -04:00
Pascal Precht 02dcc106e4 uiux(Contacts): add loading indicator when searching for contacts to add 2020-09-17 15:16:24 -04:00
Pascal Precht 9c1613acf8 uiux(Wallet): improve readability of high value balances
Uses `toLocaleString()` polyfill to insert `.` and/or `,` as
needed based on currently selected locale.

Closes #845
2020-09-17 15:16:16 -04:00
emizzle 7b0d3c496c fix: exception handling in mutli-threaded transactions
Currently, exceptions thrown during transactions or gas estimation that were spawned in another thread are not being propagated, due to a limitation in nim (see https://nim-lang.org/docs/manual_experimental.html#parallel-amp-spawn).

This means any exceptions from status-go were not propagated correctly and would cause the app to crash. This includes entering the wrong password when trying to send a transaction.

The issue was addressed by passing a `success` variable by reference, which is set to false if an exception was thrown by status-go.
2020-09-17 12:21:29 -04:00
Jonathan Rainville bcbcd13611 refactor: use profileSettingsFile QtProperty instead of profile directly 2020-09-16 16:58:55 -04:00
Jonathan Rainville db9472bc0b refactor: change settings to use a filename instead 2020-09-16 16:58:55 -04:00
Jonathan Rainville 23ca5f9930 feat: make settings user dependant and clean settings uses 2020-09-16 16:58:55 -04:00
Jonathan Rainville cebd889fd6 fix: fix assets not updating in views when getting new balance 2020-09-16 16:58:36 -04:00
Richard Ramos e4ffc897d7 fix: code review + reset sticker pack pending state 2020-09-16 14:22:29 -04:00
Richard Ramos d0bca7afa6 fix: show stickers as pending while trx is being mined
Fixes #885
2020-09-16 14:22:29 -04:00
Richard Ramos e46ab433f4 feat: transaction dialog for registering ENS name 2020-09-16 14:22:29 -04:00
Richard Ramos 83b0c8057e fix: code review 2020-09-16 14:22:29 -04:00
Richard Ramos 0091fded3a feat: toast messages for sticker and ens trxs 2020-09-16 14:22:29 -04:00
Jonathan Rainville 17aa8d274e fix: fix defaultTokenList use in QML 2020-09-14 14:54:17 -04:00
Jonathan Rainville 103f02b289 feat: show toast message for transaction status changes 2020-09-14 14:48:26 -04:00
Jonathan Rainville b0c9155e70 feat: track pending transactions for wallet transfers 2020-09-14 14:48:26 -04:00
Jonathan Rainville 22d9c3be5d refactor: use wallet model instead of lib status 2020-09-11 16:55:36 -04:00
Jonathan Rainville ad00709104 feat: show loading image on the button when sending 2020-09-11 16:55:36 -04:00
Pascal Precht 361c563a4b fix(Wallet): derive accounts from imported mnemonic and store correctly
This commit address two bugs:

1. When importing a mnemonic, the resulting "master" account and its address
  was used as account to be stored as opposed to its derived default account
2. The account was stored in the wrong path, resulting in status not being able
  to locate accounts when sending transactions.

Fixes #787
2020-09-11 14:41:24 -04:00
emizzle 19e801bba8 fix: remove spaces from sticker hashes
Looks like this may have ended up in the codebase unintentionally.
2020-09-11 14:41:01 -04:00
Iuri Matias 212f33b3c0 filter out watch only accounts in account list for sending transactions 2020-09-11 14:40:31 -04:00
Richard Ramos f2a56c70e1 fix: rebase gone wrong 2020-09-11 13:25:55 -04:00
Richard Ramos 2f1416e042 feat: check if a transaction is confirmed before installing a sticker pack 2020-09-11 12:46:13 -04:00
emizzle 80f0f9466b refactor: move stickers to own model
Remove from ChatModel and add StickerModel

# Conflicts:
#	src/app/chat/view.nim
#	src/status/chat.nim
#	src/status/libstatus/contracts.nim
2020-09-11 12:46:13 -04:00
emizzle 366fdc15a1 feat: show stickers purchased from non-main account
Fixes: #815

Previously, only stickers purchased from the main status account were shown. Now, stickers purchased from any of the accounts are shown.

Accounts include any accounts returned by `accounts_getAccounts` and are non-chat accounts.
2020-09-11 12:01:08 -04:00
emizzle 2a36bcc762 change dynamicbytes to be more dynamic
![more dynamicer](https://tenor.com/view/more-cowbell-cowbell-snl-reaction-mrw-gif-14076918.gif)
2020-09-11 12:01:08 -04:00
emizzle 2c7dd929ad feat: enable token transactions
Fixes #788.
Fixes #853.
Fixes #856.

refactor: gas estimation and transaction sends have been abstracted to  allow calling `estimateGas`, `send`, and `call` on the contract method (similar to the web3 API).

Moved sticker pack gas estimation and purchase tx over to the new API

*Sticker purchase:*
 - gas estimate is done using new API and debounced using a timer

*Wallet send transaction:*
 - tokens can now be sent
 - gas is estimated correctly for a token tx, and debounced using a timer

***NOTE***
1. If attempting to send tokens on testnet, you must use a custom token as the token addresses in the pre-built list are for mainnet and will not work on testnet.
2. The new API should support all existing gas estimates, send txs, and calls. The loading of sticker pack data, balance, count, purchased sticker packs, etc, can be moved over to the new API. Almost all of the `eth_sendTransaction`, `eth_gasEstimate`, and `eth_call` could be move over as well (that's the idea at least).
2020-09-11 12:01:08 -04:00
emizzle 4f0cdad8c7 refactor: move stickers to own model
Remove from ChatModel and add StickerModel
2020-09-11 12:01:08 -04:00
Pascal Precht 729a2781f0 feat(TransactionModal): introduce async validation for ENS names
This commit extends the AddressInput to perform ENS lookups when valid
ENS values are entered. The lookup happens asynchronously, so we show a loading
indicator as the request is happening.

Closes #790
2020-09-10 13:40:42 -04:00
Richard Ramos 24212a63e9 feat: testnet tokens 2020-09-09 16:35:51 -04:00
Richard Ramos 27abf30fc8 feat: list, toggle and remove custom tokens 2020-09-09 16:10:51 -04:00
Jonathan Rainville f3f27a5e59 fix: address more comments about the chat commands 2020-09-09 15:03:45 -04:00
Jonathan Rainville 348e0a9bdc fix: address review comments for the send forms 2020-09-09 15:03:45 -04:00
Jonathan Rainville 6b3cac31bc feat: enable sending chat requests 2020-09-09 15:03:45 -04:00
Jonathan Rainville 60492b4db1 feat: add chat command bubbles for received txs 2020-09-09 15:03:45 -04:00
Iuri Matias aeb8d2958d display first menu option; include channel id 2020-09-09 14:08:19 -04:00
Pascal Precht 4bea011417 uiux(Chat): show loading indicator when fetching more messages 2020-09-08 14:09:09 -04:00
Iuri Matias f573574d9a fix addresses of some tokens 2020-09-07 16:37:06 -04:00
Richard Ramos 98aaa69e9d fix: transaction history handling
- Determine if the recent transaction history is being fetched or available before obtaining the first 20 transactions
- On account change, reset the selected tab to show the asset list
- Collectibles were kinda pixelated/blurry (not anymore)

Fixes #806
2020-09-07 12:54:59 -04:00
Pascal Precht 1481f2648f feat: introduce "fetch more messages" button to request old messages
Closes #149
2020-09-07 10:20:17 -04:00
hydr063n 3ea3b618a0 change title from Nim Status Client to Status Desktop 2020-09-07 09:30:02 -04:00
Richard Ramos 057cdc08da feat: update balances when receiving a transaction 2020-09-04 17:21:40 -04:00
Richard Ramos d4e0ef6619 feat: receive wallet events and bump nim-status 2020-09-04 17:21:40 -04:00
Richard Ramos e52d287cf9 refactor: move signals to status and generate events 2020-09-04 16:42:26 -04:00
Richard Ramos 9ef82a2d7a fix: token decimals and returning no collectibles when there's no contract for a collectible on the current network
Fixes #773
2020-09-04 16:36:20 -04:00
emizzle d8b0145eb3 feat: Add Sticker purchase transaction modal
Add gas estimate for sticker pack purchase.

Update transaction for sticker pack purchase.

Add GasValidator component which validates gas is selected correctly and displays an error message if not. This component is not visible until it is not valid (at which point the valdiation error message is displayed).

In a future PR, need to:
1. estimate gas for token txfer (sendTransaction) via a normalised method for estimating gas for EthSend
2. move sticker pack purchase to use an EthSend object so gas can be estimated and tx sent
2020-09-04 16:13:33 -04:00
Richard Ramos 374da83cff feat: receive wallet events and bump nim-status 2020-09-04 15:57:29 -04:00
Richard Ramos 0b6643ac2d feat: show SNT by default in the token list, and STT in ropsten
fixes #805
2020-09-03 16:06:20 -04:00
Pascal Precht addd1d9c3e chore(chat): request mailserver messages since last request
Prior to this commit, the app would request messages from the last
24 hours for all joined channels.
The changes made here ensure that messages since the *last* request
are requested. The last request for each topic/chat is stored in the
nodes mailserver topics.

When no channels are joined, the default is still 24 hours, however,
as soon as a channel is joined, the last request time will be updated
and honored in the next request.
2020-09-03 15:58:49 -04:00
Richard Ramos 782e89508c fix: escape html in messages 2020-09-03 15:47:05 -04:00
emizzle 1e020a203c feat(tx-comps): Send transaction modal
Fixes #669.

Composes all tx components to create a send transaction modal for the wallet.

1. Add a reusable TransactionStackView component that wraps a StackView component to show the screens of the Send Tx modal and handles back/forward/reset functionality.
2. Add a reusable TransactionStackGroup which holds tx components and allows modal header and button text to be defined and handles validation for all child components.
3. Add an isValid property to all tx comps for pristine validation state.
4. Reset all components in modal once modal is closed. This consists of a `resetInternal` function that each component should implement to reinstate its original starting state, and a `reset` function that parent components can use to reinstate the overridden properties.
5. Tx error handling to display either a StatusGo error message in the dialog, or wrong password in the TransactionSigner.
6. Fix ReceiveModal to allow for pre-selected account based on current wallet account.
7. Add focused border colour to Input component.
8. Fix issue with last TransactionStackGroup input not being able to obtain focus.
9. Fix fiatBalance not appearing on initial load on AccountSelector.
10. Fix selected asset updated properly when assets changed in the AssetSelector component.
11. AccountSelector is pre-populated with selected wallet account. Supporting work on the components has been done to suppor this.
12. Changing accounts in the "from account" updates the asset balances in the AssetAndAmountInput component.
13. Move validation from ContactSelector to the Select component.

1. Test sending of tokens. This requires that tokens contracts are setup on testnet. Right now, they are set up for contract addresses on mainnet.
2. Loading state once transaction is sent. Button in modal needs to move to a loading state and the "toast" messages in the wallet need to appear informaing user of tx progress.
3. Need to clarify (and implement?) support of ENS names in the AddressInput. It appears that ENS names could be resolved. This would be a long operation and require some kind of UI loading indication.
4. Wallet balances need to be updated on every block, so for example, sending funds between accounts I should be able to see the balance updated in real time.

1. Sending to a contact currently doesn't work because the ContactSelector component selects the Contact's whipser key, instead of his/her wallet address. May need to figure out how this is done in status-react. As it stands, attempting to send to a contact will crash the app.
2. Sending *from* an imported account does not work, with an error from StatusGo `cannot locate account for address: 0x123...`
2020-09-03 15:32:55 -04:00
Pascal Precht fb83886086 fix(Chat): ensure only mentions with leading whitespace are replaced 2020-09-01 11:54:44 +02:00
Richard Ramos 84df214f6f fix: handle message reactions for old messages not loaded 2020-08-28 13:38:54 -04:00
Richard Ramos d134ef8e45 fix: disable on testnet 2020-08-28 11:31:35 -04:00
Richard Ramos 8bf2e394c6 fix: update contract address on ropsten and use label instead of namehash 2020-08-28 11:31:35 -04:00
Richard Ramos 7d4c4ac4c7 feat: change pubkeys for already owned ens usernames 2020-08-28 11:31:35 -04:00
Richard Ramos 7df357dcf7 feat: show terms and conditions, add ens registry contract, and determine if you have enough SNT balance. 2020-08-28 11:31:35 -04:00
Richard Ramos 8f1f01b6a0 feat: register status ens usernames 2020-08-28 11:31:35 -04:00
Richard Ramos ce8cd4183f feat: show terms and conditions, add ens registry contract, and determine if you have enough SNT balance. 2020-08-28 11:06:12 -04:00
Jonathan Rainville fef2e6651d feat: add stickers to collectibles 2020-08-28 11:05:19 -04:00
Pascal Precht bdfdf263cc fix(Chat): Allow for case insensitive pubkey replacement
When entering a user name like `@Pascal` it wouldn't be properly replaced
with the pubKey of `pascal.stateofus.eth` since it was comparing to `@pascal`

This commit ensures simple user name mentions are properly matched against
their ens names regardles of their case.

Fixes part of #769
2020-08-27 17:38:32 -04:00
Jonathan Rainville d19f15bb84 fix: fix chat links in a couple of ways
- link color in compact mode
- channel links did not have a #
- clicking on a mention should show that profile
- The AddChat button image didn't reposition when closing
2020-08-27 17:09:04 -04:00
Pascal Precht f47fda6d68 fix(Chat): ensure new active channel messages are marked as seen
Also, selecting a channel with unread messages marks them as seen as well

Closes #738
2020-08-27 17:00:08 -04:00
Jonathan Rainville 22a86b939f refactor: do not cache the mnemonic in settings 2020-08-27 16:42:25 -04:00
Jonathan Rainville bd9e1619fa refactor: never save mnemonic in memory unless totally necessary
Necessary cases are:
- Onboarding to show the list of 5 accounts
- In QML when we show it to the user for the backup
  - Change it to a Loader, so the component and its memory is cleaned when closed
2020-08-27 16:42:25 -04:00
Jonathan Rainville 31699efc39 chore: remove forgotten log 2020-08-27 16:34:35 -04:00
Jonathan Rainville 5f119e1ead feat: enable removing emoji reactions from the context menu 2020-08-27 16:34:35 -04:00
Jonathan Rainville 99ca0e9e55 feat: enable adding reactions to chat messages from the menu 2020-08-27 16:34:35 -04:00
Jonathan Rainville 72af6adb69 feat: get and display emoji reactions in chat 2020-08-27 16:34:35 -04:00
Jonathan Rainville 273d565e9e fix: fix mailserver getting a random with a possible wrong index 2020-08-25 11:49:43 -04:00
Jonathan Rainville 898bb27b56 feat: save collectiblesList to WalletAccount 2020-08-25 11:49:11 -04:00
Jonathan Rainville 68a903e3f0 feat: add error management to the collectibles
plus reload button

(cherry picked from commit 718f806557ffb041263e035845a21c2f7126807c)
2020-08-25 11:49:11 -04:00
Jonathan Rainville 9d8fe87fd8 Revert "feat: add error management to the collectibles"
This reverts commit 9eaf0a2d90.
2020-08-25 09:19:28 -04:00
Jonathan Rainville 9eaf0a2d90 feat: add error management to the collectibles
plus reload button

(cherry picked from commit 718f806557ffb041263e035845a21c2f7126807c)
2020-08-25 09:18:50 -04:00
Jonathan Rainville 3219b0f5f4 refactor: refactor collectibles to be loaded individually 2020-08-25 09:15:01 -04:00
Jonathan Rainville 95f4bd8d09 fix: fix pixelated icon and add description and URL for kudos 2020-08-25 09:15:01 -04:00
Jonathan Rainville f083310193 feat: make all collectibles work and fix Cryptokitties 2020-08-20 14:21:20 -04:00
Pascal Precht b528e784c9 feat: introduce TransactionSigner UI component
Closes #676
2020-08-19 15:33:05 -04:00