1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-26 12:29:06 +01:00
🦊 Minimalized version of MetaMask for my own personal use.
Go to file
Mark Stacey 17f7ca2cfe
Update address book state upon custom RPC chainId edit (#9493)
When the `chainId` for a custom RPC endpoint is edited, we now migrate
the corresponding address book entries to ensure they are not orphaned.

The address book entries are grouped by the `metamask.network` state,
which unfortunately was sometimes the `chainId`, and sometimes the
`networkId`. It was always the `networkId` for built-in Infura
networks, but for custom RPC endpoints it would be set to the user-set
`chainId` field, with a fallback to the `networkId` of the network.

A recent change will force users to enter valid `chainId`s on all
custom networks, which will be normalized to be hex-prefixed. As a
result, address book contacts will now be keyed by a different string.
The contact entries are now migrated when this edit takes place.

There are some edge cases where two separate entries share the same set
of contacts. For example, if two entries have the same `chainId`, or if
they had the same `networkId` and had no `chainId` set. When the
`chainId` is edited in such cases, the contacts are duplicated on both
networks. This is the best we can do, as we don't have any way to know
which network the contacts _should_ be on.

The `typed-message-manager` unit tests have also been updated as part
of this commit because the addition of `sinon.restore()` to the
preferences controller tests ended up clearing a test object in-between
individual tests in that file. The test object is now re-constructed
before each individual test.
2020-10-07 15:02:17 -02:30
.circleci Fix create_release_pull_request build step (#9484) 2020-10-06 16:39:53 -02:30
.github Add MetaMask Bot to the CLA allow list (#9426) 2020-09-16 17:42:16 -02:30
.storybook Add MetaMask Swaps (#9482) 2020-10-06 15:58:38 -02:30
app Update address book state upon custom RPC chainId edit (#9493) 2020-10-07 15:02:17 -02:30
development add segment implementation of metametrics (#9382) 2020-09-14 12:04:05 -05:00
docs Fix words (#9038) 2020-07-20 14:32:49 -02:30
test Update address book state upon custom RPC chainId edit (#9493) 2020-10-07 15:02:17 -02:30
ui Prevent user from submitting swap if they do not have enough for the max gas fee (#9500) 2020-10-07 09:55:38 -07:00
.editorconfig Clean EditorConfig file 2019-05-23 07:17:42 -02:30
.eslintrc.js Use prettier for JSON linting (#9396) 2020-09-11 10:57:39 -03:00
.gitattributes Use Infura v3 API (#9368) 2020-09-10 13:46:00 -02:30
.gitignore Add build-artifacts to .gitignore (#9109) 2020-07-30 13:55:56 -03:00
.metamaskrc.dist add segment implementation of metametrics (#9382) 2020-09-14 12:04:05 -05:00
.nvmrc Bump Node version to 10.18 (#7925) 2020-01-29 13:36:10 -03:30
.prettierignore make gas edit tooltips use Tooltip (#9434) 2020-09-17 17:05:31 -05:00
babel.config.js add support for nullish coalescing (#8935) 2020-07-07 15:15:04 -05:00
CHANGELOG.md Update CHANGELOG.md 2020-09-16 17:56:42 -02:30
LICENSE Add new license (#9282) 2020-08-20 16:01:22 -07:00
nyc.config.js Add permissions controller unit tests (#7969) 2020-03-16 10:13:22 -07:00
package.json Add MetaMask Swaps (#9482) 2020-10-06 15:58:38 -02:30
README.md add segment implementation of metametrics (#9382) 2020-09-14 12:04:05 -05:00
stylelint.config.js Move stylelint ignore patterns into config (#9391) 2020-09-10 14:30:30 -02:30
yarn.lock Use node-forge@0.10.0 (#9473) 2020-10-01 16:37:07 -02:30

MetaMask Browser Extension

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
  • Copy the .metamaskrc.dist file to .metamaskrc
    • Replace the INFURA_PROJECT_ID value with your own personal Infura Project ID.
    • If debugging MetaMetrics, you'll need to add a value for SEGMENT_WRITE_KEY Segment write key.
  • 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