Implement `eth_decrypt` and `eth_getEncryptionPublicKey`. This allows decryption backed by the user's private key. The message decryption uses a confirmation flow similar to the messaging signing flow, where the message to be decrypted is also able to be decrypted inline for the user to read directly before confirming.
* Remove unnecessary `getEnvironmentType` parameter
The default value of the first parameter is `window.location.href`, so
there is no need to pass it in explicitly.
* Remove junk parameter from `getEnvironmentType` invocation
`getEnvironmentType` doesn't need to be passed any parameter, as the
default value is `window.location.href` which is generally what is
wanted. In this case, the variable `location.href` was always
`undefined` anyway. This particular `location` variable is from React
Router, and does not have an `href` property.
* Fix comment for `getEnvironmentType`
One of the possible return values was referred to by the wrong name.
The only web API that our usage of DetectRTC relied upon was
'enumerateDevices', which is supported and stable among all of our
supported browsers.
Note that the error handling here is a little... non-standard, and the
logic around how Firefox and Brave are handled should be justified, but
I've left the logic as-is for now to keep this PR small.
This component used to persist form contents to LocalStorage. This was
especially useful for the popup UI, as each time the mouse left the
popup, the UI was completely torn down and state was lost.
This component was only being referenced by one form, and it wasn't
even being used there (e.g. no fields were labelled appropriately to
be persisted).
This was a useful component, and it seems this feature was lost
somewhere in the past couple of years. It was tempting to re-instate it
rather than delete it, but I decided not to because I'd likely approach
the problem differently if we wanted to reinstate it again today (maybe
by using a React Hook, or storing the state in Redux and persisting a
subset of the Redux store instead).
The "blockies" style identicon is handled by a module that was copied
from MyEtherWallet and inlined. This has been removed, and replaced
with the upstream package it was originally derived from.
* Add networks tab to settings, with header.
* Adds network list to settings network tab.
* Adds form to settings networks tab and connects it to network list.
* Network tab: form adding and editing working
* Settings network form properly handles input errors
* Add translations for settings network form
* Clean up styles of settings network tab.
* Add popup-view styles and behaviour to settings network tab.
* Fix save button on settings network form
* Adds 'Add Network' button and addMode to settings networks tab
* Lint fix for settings networks tab addition
* Fix navigation in settings networks tab.
* Editing an rpcurl in networks tab does not create new network, just changes rpc of old
* Fix layout of settings tabs other than network
* Networks dropdown 'Custom Rpc' item links to networks tab in settings.
* Update settings sidebar networks subheader.
* Make networks tab buttons width consistent with input widths in extension view.
* Fix settings screen subheader height in popup view
* Fix height of add networks button in popup view
* Add optional label to chainId and symbol form labels in networks setting tab
* Style fixes for networks tab headers
* Add ability to customize block explorer used by custom rpc
* Stylistic improvements+fixes to custom rpc form.
* Hide cancel button.
* Highlight and show network form of provider by default.
* Standardize network subheader name to 'Networks'
* Update e2e tests for new settings network form
* Update unit tests for new rpcPrefs prop
* Extract blockexplorer url construction into method.
* Fix broken styles on non-network tabs in popup mode
* Fix block explorer url links for cases when provider in state has not been updated.
* Fix vertical spacing of network form
* Don't allow click of save button on network form if nothing has changed
* Ensure add network button is shown in popup view
* Lint fix for networks tab
* Fix block explorer url preference setting.
* Fix e2e tests for custom blockexplorer in account details modal changes.
* Update integration test states to include frequentRpcList property
* Fix some capitalizations in en/messages.json
* Remove some console.logs added during custom rpc form work
* Fix external account link text and url for modal and dropdown.
* Documentation, url validation, proptype required additions and lint fixes on network tab and form.
* eslint: Check for unused function arguments
* eslint: Ignore unused '_' in argument list
Also allow any number of '_' e.g., '__' or '___' which is to be used sparingly
* Remove and rename unused arguments
* Removed unused UI files. Fixes#3434.
* Reverted the deletion of "feature-toggle-utils.js". Reverted the deletion of the test files and modified the paths so they referred to the old-ui.
Fixed warnings:
```md
app/scripts/controllers/computed-balances.js
+ 35:27 warning Missing space before function parentheses space-before-function-paren
+ 41:14 warning 'address' is never reassigned. Use 'const' instead prefer-const
+ 61:9 warning 'updater' is never reassigned. Use 'const' instead prefer-const
+ 68:11 warning 'newState' is never reassigned. Use 'const' instead prefer-const
app/scripts/controllers/network.js
+ 104:29 warning Missing space before function parentheses space-before-function-paren
app/scripts/lib/createLoggerMiddleware.js
+ 4:32 warning Missing space before function parentheses space-before-function-paren
+ 15:2 warning Newline required at end of file but not found eol-last
app/scripts/lib/createOriginMiddleware.js
+ 4:32 warning Missing space before function parentheses space-before-function-paren
+ 9:2 warning Newline required at end of file but not found eol-last
app/scripts/lib/createProviderMiddleware.js
+ 5:34 warning Missing space before function parentheses space-before-function-paren
+ 13:2 warning Newline required at end of file but not found eol-last
app/scripts/lib/events-proxy.js
+ 1:50 warning Missing space before function parentheses space-before-function-paren
+ 31:2 warning Newline required at end of file but not found eol-last
app/scripts/lib/nodeify.js
+ 2:22 warning Missing space before function parentheses space-before-function-paren
+ 2:24 warning Missing space before opening brace space-before-blocks
+ 5:18 warning Missing space before function parentheses space-before-function-paren
+ 5:20 warning Missing space before opening brace space-before-blocks
app/scripts/lib/pending-balance-calculator.js
+ 16:19 warning Missing space before function parentheses space-before-function-paren
app/scripts/lib/pending-tx-tracker.js
+ 85:11 warning '||' should be placed at the end of the line operator-linebreak
+ 87:11 warning '||' should be placed at the end of the line operator-linebreak
+ 88:11 warning '||' should be placed at the end of the line operator-linebreak
+ 90:11 warning '||' should be placed at the end of the line operator-linebreak
+ 91:11 warning '||' should be placed at the end of the line operator-linebreak
app/scripts/lib/port-stream.js
+ 3:22 warning Missing space before function parentheses space-before-function-paren
+ 3:24 warning Missing space before opening brace space-before-blocks
app/scripts/lib/tx-gas-utils.js
+ 84:2 warning Newline required at end of file but not found eol-last
app/scripts/lib/tx-state-history-helper.js
+ 12:37 warning Missing space before function parentheses space-before-function-paren
+ 23:30 warning Missing space before function parentheses space-before-function-paren
+ 30:23 warning Missing space before function parentheses space-before-function-paren
+ 35:28 warning Missing space before function parentheses space-before-function-paren
+ 41:2 warning Newline required at end of file but not found eol-last
app/scripts/lib/tx-state-manager.js
+ 94:13 warning 'value' is never reassigned. Use 'const' instead prefer-const
ui/app/reducers.js
+ 45:7 warning 'state' is never reassigned. Use 'const' instead prefer-const
+ 53:7 warning 'stateString' is never reassigned. Use 'const' instead prefer-const
ui/lib/tx-helper.js
+ 27:2 warning Newline required at end of file but not found eol-last
ui/app/components/account-dropdowns.js
+ 163:1 warning More than 2 blank lines not allowed no-multiple-empty-lines
ui/app/components/menu-droppo.js
+ 22:7 warning 'style' is never reassigned. Use 'const' instead prefer-const
ui/app/components/shapeshift-form.js
+ 135:11 warning '&&' should be placed at the end of the line operator-linebreak
ui/app/components/typed-message-renderer.js
+ 35:25 warning Missing space before function parentheses space-before-function-paren
+ 42:2 warning Newline required at end of file but not found eol-last
mascara/server/index.js
+ 11:42 warning Use path.join() or path.resolve() instead of + to create paths no-path-concat
+ 12:36 warning Use path.join() or path.resolve() instead of + to create paths no-path-concat
+ 13:33 warning Use path.join() or path.resolve() instead of + to create paths no-path-concat
+ 14:40 warning Use path.join() or path.resolve() instead of + to create paths no-path-concat
+ 20:29 warning Use path.join() or path.resolve() instead of + to create paths no-path-concat
+ 21:29 warning Use path.join() or path.resolve() instead of + to create paths no-path-concat
+ 26:40 warning Use path.join() or path.resolve() instead of + to create paths no-path-concat
```
Newest tx or message will now always appear last, and a new tx proposed after the user has a confirmation box open will never change the confirmation to a different tx proposed.
Fixes#1637