1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-22 18:00:18 +01:00
🦊 Minimalized version of MetaMask for my own personal use.
Go to file
Mark Stacey ba25d52670
Use AdvancedGasInputs in AdvancedTabContent (#7186)
* Use `AdvancedGasInputs` in `AdvancedTabContent`

The `AdvancedGasInputs` component was originally extracted from the
`AdvancedTabContent` component, duplicating much of the rendering
logic. They have since evolved separately, with bugs being fixed in one
place but not the other.

The inputs and outputs expected weren't exactly the same, as the
`AdvancedGasInputs` component converts the input custom gas price and
limit, and it converts them both in the setter methods as well.
The `GasModalPageContainer` had to be adjusted to avoid converting
these values multiple times.

Both components dealt with input debouncing separately, both in less
than ideal ways. `AdvancedTabContent` didn't debounce either field, but
it did debounce the check for whether the gas limit field was below the
minimum value. So if a less-than-minimum value was set, it would be
propogated upwards and could be saved if the user clicked 'Save'
quickly enough. After a second delay it would snap back to the minimum
value. The `AdvancedGasInputs` component debounced both fields, but
it would replace any gas limit below the minimum with the minimum
value. This led to a problem where a brief pause during typing would
reset the field to 21000.

The `AdvancedGasInputs` approach was chosen, except that it was
updated to no longer change the gas limit if it was below the minimum.
Instead it displays an error. Parent components were checked to ensure
they would detect the error case of the gas limit being set too low,
and prevent the form submission in those cases. Of the three parents,
one had already dealt with it correctly, one needed to convert the
gas limit from hex first, and another needed the gas limit check added.

Closes #6872

* Cleanup send components

Empty README files have been removed, and a mistake in the index file
for the send page has been corrected. The Gas Slider component class
name was updated as well; it looks like it was originally created from
`AdvancedTabContent`, so it still had that class name.
2019-10-23 09:23:15 -03:00
.circleci ci - install deps - limit install scripts to whitelist (#7208) 2019-09-25 20:01:10 +08:00
.github ci - install deps - limit install scripts to whitelist (#7208) 2019-09-25 20:01:10 +08:00
.storybook Switch from npm to yarn (#6843) 2019-07-30 15:36:23 -03:00
app Turn off full screen vs popup a/b test (#7298) 2019-10-21 20:59:02 -03:00
development Add migration on 3box imports and remove feature flag (#7209) 2019-09-26 03:24:52 -04:00
docs dev - move gource instructions from docs to development script 2019-09-10 22:05:16 +08:00
test Use AdvancedGasInputs in AdvancedTabContent (#7186) 2019-10-23 09:23:15 -03:00
ui Use AdvancedGasInputs in AdvancedTabContent (#7186) 2019-10-23 09:23:15 -03:00
.dockerignore mascara - ready to deploy via docker 2017-04-05 22:59:25 -07:00
.editorconfig Clean EditorConfig file 2019-05-23 07:17:42 -02:30
.eslintignore Lint .json files (#6852) 2019-07-15 11:03:22 -03:00
.eslintrc Remove trailing commas from JSON files (#7284) 2019-10-16 22:01:19 -02:30
.gitattributes I5849 incremental account security (#6874) 2019-08-02 01:27:26 -02:30
.gitignore Switch from npm to yarn (#6843) 2019-07-30 15:36:23 -03:00
.nvmrc nvm: Update to v10.16.3 (#7127) 2019-09-09 14:19:39 -04:00
.stylelintignore mascara - remove from project (#6283) 2019-03-12 11:17:21 -02:30
.stylelintrc Remove trailing commas from JSON files (#7284) 2019-10-16 22:01:19 -02:30
babel.config.js Set minimum Firefox version to v56.2 to support Waterfox (#7156) 2019-09-12 16:55:20 -03:00
CHANGELOG.md Update changelog for v7.3.1 2019-10-21 20:40:03 -02:30
CONTRIBUTING.md Switch from npm to yarn (#6843) 2019-07-30 15:36:23 -03:00
fonts Improved Ui Dev Mode 2016-07-01 14:23:37 -07:00
gulpfile.js Optimize images only during production build (#7194) 2019-09-21 13:32:17 -03:00
images Improved Ui Dev Mode 2016-07-01 14:23:37 -07:00
ISSUE_TEMPLATE Point issue template at new support center 2017-11-17 11:27:02 -08:00
LICENSE License 2018-06-22 16:28:54 -04:00
MISSION.md Mission v2 2018-05-29 09:30:59 -07:00
package.json Update superagent-proxy to address security advisory (#7301) 2019-10-22 16:29:21 -03:00
README.md Add browser recommendation to README (#6941) 2019-08-02 10:29:18 -02:30
USER_AGREEMENT.md fix tos link; 2018-07-12 16:24:13 -04:00
yarn.lock Update superagent-proxy to address security advisory (#7301) 2019-10-22 16:29:21 -03:00

MetaMask Browser Extension

Build Status Coverage Status

You can find the latest version of MetaMask on our official website. For help using MetaMask, visit our User Support Site.

MetaMask supports Firefox, Google Chrome, and Chromium-based browsers. We recommend using the latest available browser version.

For up to the minute news, follow our Twitter or Medium pages.

To learn how to develop MetaMask-compatible applications, visit our Developer Docs.

To learn how to contribute to the MetaMask project itself, visit our Internal Docs.

Building locally

  • Install Node.js version 10
    • If you are using nvm (recommended) running nvm use will automatically choose the right node version for you.
  • Install Yarn
  • Install dependencies: yarn
  • Build the project to the ./dist/ folder with yarn dist.
  • Optionally, to start a development build (e.g. with logging and file watching) run yarn start instead.
    • To start the React DevTools and Redux DevTools Extension alongside the app, use yarn start:dev.
      • React DevTools will open in a separate window; no browser extension is required
      • Redux DevTools will need to be installed as a browser extension. Open the Redux Remote Devtools to access Redux state logs. This can be done by either right clicking within the web browser to bring up the context menu, expanding the Redux DevTools panel and clicking Open Remote DevTools OR clicking the Redux DevTools extension icon and clicking Open Remote DevTools.
        • You will also need to check the "Use custom (local) server" checkbox in the Remote DevTools Settings, using the default server configuration (host localhost, port 8000, secure connection checkbox unchecked)

Uncompressed builds can be found in /dist, compressed builds can be found in /builds once they're built.

Contributing

You can read our internal docs here.

You can re-generate the docs locally by running yarn doc, and contributors can update the hosted docs by running yarn publish-docs.

Running Tests

Run tests with yarn test.

You can also test with a continuously watching process, via yarn watch.

You can run the linter by itself with yarn lint.

Architecture

Architecture Diagram

Development

yarn
yarn start

Build for Publishing

yarn dist

Writing Browser Tests

To write tests that will be run in the browser using QUnit, add your test files to test/integration/lib.

Other Docs