1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00
🦊 Minimalized version of MetaMask for my own personal use.
Go to file
Mark Stacey 656dc4cf18
Cleanup detect-tokens controller and tests (#8329)
The tests for the detect-tokens controller were nearly all broken. They
have been fixed, and a few improvements were made to controller itself
to help with this.

* The core `detectNewTokens` method has been updated to be async, so
that the caller can know when the operation had completed.
* The part of the function that used `Web3` to check the token balances
has been split into a separate function, so that that part could be
stubbed out in tests. Eventually we should test this using `ganache`
instead, but this was an easier first step.
* The internal `tokenAddresses` array is now initialized on
construction, rather than upon the first Preferences controller update.
The `detectNewTokens` function would have previously failed if it ran
prior to this initialization, so it was failing if called before any
preferences state changes.

Additionally, the `detectTokenBalance` function was removed, as it was
no longer used.

The tests have been updated to ensure they're actually testing the
behavior they purport to be testing. I've simulated a test failure with
each one to check that it'd fail when it should. The preferences
controller instance was updated to set addresses correctly as well.
2020-04-13 17:14:42 -03:00
.circleci Build system refactor (#8140) 2020-03-09 08:55:02 +08:00
.github add jenny to codeowners (#8219) 2020-03-19 16:28:38 -03:00
.storybook Fix Font Awesome in Storybook build (#8304) 2020-04-08 10:22:20 -03:00
app Cleanup detect-tokens controller and tests (#8329) 2020-04-13 17:14:42 -03:00
development Remove unused isPopup state (#8280) 2020-04-01 20:01:47 -03:00
docs Remove version bump scripts (#8006) 2020-02-06 18:56:31 -03:30
test Cleanup detect-tokens controller and tests (#8329) 2020-04-13 17:14:42 -03:00
ui Remove unused getActiveTab selector (#8319) 2020-04-09 21:17:43 -03:00
.editorconfig Clean EditorConfig file 2019-05-23 07:17:42 -02:30
.eslintignore Use shared MetaMask ESLint config (#7882) 2020-01-22 11:07:19 -03:30
.eslintrc.js Enable react/jsx-first-prop-new-line for multiline, single prop JSX (#8276) 2020-04-01 18:08:19 -02:30
.gitattributes Suppress diffs for test/e2e/send-eth-with-private-key-test/*.js (#7767) 2020-01-08 13:02:16 -03:30
.gitignore Enable Storybook deploy on CI (#8009) 2020-02-08 16:26:33 -03:30
.nvmrc Bump Node version to 10.18 (#7925) 2020-01-29 13:36:10 -03:30
.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 Add optional chaining (#8052) 2020-02-18 10:11:52 -05:00
CHANGELOG.md Make seed phrase import case-insensitive (#8246) 2020-03-30 10:21:04 -02:30
LICENSE License 2018-06-22 16:28:54 -04:00
MISSION.md Mission v2 2018-05-29 09:30:59 -07:00
nyc.config.js Add permissions controller unit tests (#7969) 2020-03-16 10:13:22 -07:00
package.json Fix Font Awesome in Storybook build (#8304) 2020-04-08 10:22:20 -03:00
README.md Browser tests (#8010) 2020-02-07 13:19:32 -03:30
USER_AGREEMENT.md fix tos link; 2018-07-12 16:24:13 -04:00
yarn.lock Dedupe eth-phishing-detect versions, use 1.1.13 (#8323) 2020-04-10 17:05:35 -02:30

MetaMask Browser Extension

Hey! We are hiring a Senior Mobile Engineer! Apply here: https://boards.greenhouse.io/consensys/jobs/1990589

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

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

Other Docs