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
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
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
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
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.
- 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
- 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
- Changed WebView to WebEngineView
- Created a new controller/view for the web3 provider
- Created a private profile
- Created a channel for comms browser - qml
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).
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
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.
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.
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)
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.
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
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.
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).
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
- 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