1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-26 12:29:06 +01:00
metamask-extension/development
David Walsh c079c4320e
UX: Multichain: Account Menu List (#17947)
* UX: Multichain: Account Menu List

* Move to using stylesheet

* Add hover state

* Implement George's suggestions

* Add connected site avatar

* Add hardware tag

* Create story for selected hardware item

* Progress on the AccountListItemMenu

* Add story for AccountListItemMenu

* Better position the account menu

* Fix AvatarFavicon missing name prop

* Update menu options label to be account specific

* Update text of 'View on Explorer'

* Add AccountListMenu component

* Move all items to multichain directory

* Fix paths

* Fix linting, use AvatarIcon

* Add title and close button to account menu

* Center the popover title

* Add search functionality

* Implementation WIP

* Add MULTICHAIN feature flag

* Add MULTICHAIN feature flag, add actions for menu items

* Properly dispatch events

* Fix search box padding

* Fix sizing of menu item text

* Fix isRequired

* Fix alignment of the popover

* Update label for hardware wallet items, add text for no search results

* Update keyring retreival to remove account and add label

* Fix storybook

* Fix double link click issue, prevent wrapping of values

* Use labelProps for tag variant

* Restructure item menu story

* Empower storybooks for all new components

* Allow only 3 decimals for currencies

* Avoid inline styles

* Prefix classes with multichain, fix account-list-menu storybook

* Close the accounts menu when account details is clicked

* Restore tag.js

* Create global file for multichain css

* Add index file for multichain js

* Update file paths

* Ensure the block domain is present in menu

* Add AccountListItem test

* Add AccountListItemMenu tests

* Show account connect to current dapp

* Improve tests

* Make avatar smaller

* Add tooltip for account menu

* Align icon better

* Update snapshot

* Rename files to DS standard

* Add index files for export

* Export all multichain components

* Update snapshot

* Remove embedded style in popover

* Add comments for props, cleanup storybook

* Improve test coverage

* Improve test code quality

* Remove border form avatar

* Switch to using the ButtonLink iconName prop

* Only show tooltip if character limit is reached

* Restore prior search settings

* Add test for tooltip
2023-03-22 15:30:08 +05:30
..
build UX: Multichain: Account Menu List (#17947) 2023-03-22 15:30:08 +05:30
charts
fitness-functions Fix mocha syntax fitness function (#17712) 2023-02-10 17:36:14 +00:00
highlights Nit fixes for story-test integration (#17344) 2023-01-25 09:24:13 +05:30
lib feat(17494): beta build trigger in release branch and cleanup (#17749) 2023-03-04 12:51:04 +00:00
states feat: add the ConsenSys zkEVM (Linea) as a default network (#17875) 2023-03-21 13:58:38 -02:30
ts-migration-dashboard [TS dashboard] Draw dependencies between files (#17338) 2023-03-16 20:03:12 -06:00
announcer.js development scripts: add node shebang; mark as executable (#15655) 2022-08-24 12:25:27 -05:00
chromereload.js
create-static-server.js development scripts: add node shebang; mark as executable (#15655) 2022-08-24 12:25:27 -05:00
empty.js
generate-beta-commit.js feat(17494): add generate-beta-commit (#17684) 2023-02-10 20:02:52 +00:00
generate-icon-names.js icon audit, remove xxs icon size (#17089) 2023-01-24 09:39:46 -08:00
generate-lavamoat-policies.js [LavaMoat] improve policy generation performance in dev workflow (#16338) 2022-11-01 08:52:38 -10:00
generate-migration.sh
get-changed-file-names.sh fix script for linting changed files (#17028) 2023-01-20 09:16:58 -06:00
gource-viz.sh chore: Adjust trailing whitespace (#15636) 2022-08-24 14:11:49 -05:00
jest.config.js split unit tests (#16455) 2023-01-11 12:23:38 -06:00
metamaskbot-build-announce.js feat(17494): beta build trigger in release branch and cleanup (#17749) 2023-03-04 12:51:04 +00:00
missing-locale-strings.js development scripts: add node shebang; mark as executable (#15655) 2022-08-24 12:25:27 -05:00
mock-segment.js development scripts: add node shebang; mark as executable (#15655) 2022-08-24 12:25:27 -05:00
README.md [skip e2e] debug using source maps (#16933) 2022-12-13 14:29:38 +00:00
run-ganache.sh Fix the ganache:start command by making the 'yarn bin' usage compatible with yarn3 (#16983) 2022-12-16 11:43:06 -03:30
sentry-publish.js development scripts: add node shebang; mark as executable (#15655) 2022-08-24 12:25:27 -05:00
sentry-upload-artifacts.sh
shellcheck.sh
show-deps-install-scripts.js development scripts: add node shebang; mark as executable (#15655) 2022-08-24 12:25:27 -05:00
source-map-explorer.sh
sourcemap-validator.js development scripts: add node shebang; mark as executable (#15655) 2022-08-24 12:25:27 -05:00
static-server.js Remove use of pify from the static-server script (#18239) 2023-03-21 15:07:22 -02:30
stream-flat-map.js
verify-locale-strings.js [MMI] Adds mmi build type + manifest files and images (#17842) 2023-03-01 09:38:15 +00:00

Development

Several files which are needed for developing on MetaMask.

Usually each file or directory contains information about its scope / usage.

Segment

Debugging with the Mock Segment API

To start the Mock Segment API:

  • Add/replace the SEGMENT_HOST and SEGMENT_WRITE_KEY variables in .metamaskrc
    SEGMENT_HOST='http://localhost:9090'
    SEGMENT_WRITE_KEY='FAKE'
    
  • Build the project to the ./dist/ folder with yarn dist
  • Run the Mock Segment API from the command line
    node development/mock-segment.js
    

Events triggered whilst using the extension will be logged to the console of the Mock Segment API.

More information on the API and its usage can be found here.

Debugging in Segment

To debug in a production Segment environment:

  • Create a free account on Segment
  • Create a New Workspace
  • Add a Source (Node.js)
  • Copy the Write Key from the API Keys section under Settings
  • Add/replace the SEGMENT_HOST and SEGMENT_WRITE_KEY variables in .metamaskrc
    SEGMENT_HOST='https://api.segment.io'
    SEGMENT_WRITE_KEY='COPIED_WRITE_KEY'
    
  • Build the project to the ./dist/ folder with yarn dist

Events triggered whilst using the extension will be displayed in Segment's Debugger.

Debugging Segment requests in MetaMask

To opt in to MetaMetrics;

  • Unlock the extension
  • Open the Account menu
  • Click the Settings menu item
  • Click the Security & Privacy menu item
  • Toggle the Participate in MetaMetrics menu option to the ON position

You can inspect the requests in the Network tab of your browser's Developer Tools (background.html) by filtering for POST requests to /v1/batch. The full url will be http://localhost:9090/v1/batch or https://api.segment.io/v1/batch respectively.

Sentry

Debugging in Sentry

To debug in a production Sentry environment:

  • If you have not already got a Sentry account, you can create a free account on Sentry
  • Create a New Sentry Organization
    • If you already have an existing Sentry account and workspace, open the sidebar drop down menu, then click Switch organization followed by Create a new organization
  • Create a New Project
  • Copy the Public Key and Project ID from the Client Keys section under your projects Settings
    • Select Settings in the sidebar menu, then select Projects in the secondary menu. Click your project then select Client Keys (DSN) from the secondary menu. Click the Configure button on the Client Keys page and copy your Project Id and Public Key
  • Add/replace the SENTRY_DSN and SENTRY_DSN_DEV variables in .metamaskrc
    SENTRY_DSN_DEV=https://{SENTRY_PUBLIC_KEY}@sentry.io/{SENTRY_PROJECT_ID}
    SENTRY_DSN=https://{SENTRY_PUBLIC_KEY}@sentry.io/{SENTRY_PROJECT_ID}
    
  • Build the project to the ./dist/ folder with yarn dist

Errors reported whilst using the extension will be displayed in Sentry's Issues page.

Source Maps

Debugging production builds using Source Maps

To unbundle the extensions compiled and minified JavaScript using Source Maps:

  • Open Chrome DevTools to inspect the background.html or home.html view
  • Click on the Sources tab in Chrome DevTools
  • In the Sources tab, click on the Page panel
  • Expand the file directory in the Page panel until you see the source files you're after
  • Select a source file in the Page panel
chrome-extension://{EXTENSION_ID}/common-0.js
  • Double click the source file to open it in the Workspace
  • Right click in the body of the source file and select Add source map...
  • Enter the path to the corresponding source map file, and Click Add
file:///{LOCAL_FILE_SYSTEM}/metamask-extension/dist/sourcemaps/common-0.js.map
  • Repeat the steps above as necessary adding all the relevant source map files
  • Your source maps should now be added to the DevTools Console, and you should be able to see your original source files when you debug your code