Fix/use etherjs specific imports
Explanation
We don't need to import both whole ethers npm package. This PR replaces all imports of ethers npm umbrella package with a specific ethers package.
More Information
Fixes #15232
Screenshots/Screencaps
Before
Current bundle size on develop "background": { "name": "background", "size": 76085955
"ui": { "name": "ui", "size": 94503010,
Google Chrome build size after removing web3 npm package.
"background": { "name": "background", "size": 10236142,
"ui": { "name": "ui", "size": 12504705,
After
Google Chrome build size after removing ethers umbrella npm package. "background": { "name": "background", "size": 13145874,
"ui": { "name": "ui", "size": 16133810,
Manual Testing Steps
Check if the extension works correctly. There are a lot of places where we changed ethers package.
Pre-Merge Checklist
- [x] PR template is filled out
- [ ] IF this PR fixes a bug, a test that would have caught the bug has been added
- [x] PR is linked to the appropriate GitHub issue
- [ ] PR has been added to the appropriate release Milestone
+ If there are functional changes:
- [ ] Manual testing complete & passed
- [ ] "Extension QA Board" label has been applied
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.
Builds ready [89a1ff0]
- builds: chrome, firefox, opera
- builds (beta): chrome, firefox, opera
- builds (flask): chrome, firefox, opera
- build viz: Build System
- mv3: Background Module Init Stats
- mv3: UI Init Stats
- mv3: Module Load Stats
- mv3: Bundle Size Stats
- mv2: E2e Actions Stats
- code coverage: Report
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
Page Load Metrics (2107 ± 126 ms)
| Platform | Page | Metric | Min (ms) | Max (ms) | Average (ms) | StandardDeviation (ms) | MarginOfError (ms) |
|---|---|---|---|---|---|---|---|
| Chrome | Home | firstPaint | 91 | 235 | 119 | 30 | 15 |
| domContentLoaded | 1791 | 2783 | 2075 | 254 | 122 | ||
| load | 1823 | 2918 | 2107 | 262 | 126 | ||
| domInteractive | 1791 | 2783 | 2075 | 254 | 122 |
highlights:
storybook
- ui/components/app/account-list-item/account-list-item.stories.js
- ui/components/app/add-network/add-network.stories.js
- ui/components/app/advanced-gas-controls/advanced-gas-controls.stories.js
- ui/components/app/app-header/app-header.stories.js
- ui/components/app/asset-list/detetcted-tokens-link/detected-tokens-link.stories.js
- ui/components/app/collectible-details/collectible-details.stories.js
- ui/components/app/confirm-page-container/confirm-detail-row/confirm-detail-row.stories.js
- ui/components/app/confirm-page-container/confirm-page-container-header/confirm-page-container-header.stories.js
- ui/components/app/connected-accounts-list/connected-accounts-list.stories.js
- ui/components/app/create-new-vault/create-new-vault.stories.js
- ui/components/app/currency-input/currency-input.stories.js
- ui/components/app/detected-token/detected-token-details/detected-token-details.stories.js
- ui/components/app/detected-token/detected-token-selection-popover/detected-token-selection-popover.stories.js
- ui/components/app/detected-token/detected-token-values/detected-token-values.stories.js
- ui/components/app/edit-gas-display/edit-gas-display.stories.js
- ui/components/app/edit-gas-popover/edit-gas-popover.stories.js
- ui/components/app/menu-bar/accoutn-options-menu.stories.js
- ui/components/app/metamask-template-renderer/metamask-template-renderer.stories.js
- ui/components/app/modals/confirm-remove-account/confirm-remove-account.stories.js
- ui/components/app/modals/export-private-key-modal/export-private-key-modal.stories.js
- ui/components/app/modals/hide-token-confirmation-modal/hide-token-confirmation.stories.js
- ui/components/app/modals/transaction-confirmed/transaction-confirmed.stories.js
- ui/components/app/network-display/network-display.stories.js
- ui/components/app/signature-request-original/signature-request-original.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe-header/signature-request-siwe-header.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe.stories.js
- ui/components/app/signature-request/signature-request-header/signature-request-header.stories.js
- ui/components/app/signature-request/signature-request.stories.js
- ui/components/app/srp-input/srp-input.stories.js
- ui/components/app/transaction-detail/transaction-detail.stories.js
- ui/components/app/transaction-list-item/transaction-list-item.stories.js
- ui/components/app/transaction-list/transaction-list.stories.js
- ui/components/app/user-preferenced-currency-display/user-preferenced-currency-display.stories.js
- ui/components/ui/account-list/account-list.stories.js
- ui/components/ui/nickname-popover/nickname-popover.stories.js
- ui/components/ui/sender-to-recipient/sender-to-recipient.stories.js
- ui/components/ui/update-nickname-popover/update-nickname-popover.stories.js
- ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.stories.js
- ui/pages/confirm-approve/confirm-approve-content/confirm-approve-content.stories.js
- ui/pages/confirm-approve/confirm-approve.stories.js
- ui/pages/confirm-deploy-contract/confirm-deploy-contract.stories.js
- ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.stories.js
- ui/pages/confirm-import-token/confirm-import-token.stories.js
- ui/pages/confirm-send-ether/confirm-send-ether.stories.js
- ui/pages/confirm-send-token/confirm-send-token.stories.js
- ui/pages/confirm-token-transaction-base/confirm-token-transaction-base.stories.js
- ui/pages/confirm-transaction-base/confirm-transaction-base.stories.js
- ui/pages/connected-accounts/connected-accounts.stories.js
- ui/pages/connected-sites/connected-sites.stories.js
- ui/pages/first-time-flow/create-password/create-password.stories.js
- ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.stories.js
- ui/pages/import-token/import-token.stories.js
- ui/pages/import-token/token-search/token-search.stories.js
- ui/pages/keychains/reveal-seed.stories.js
- ui/pages/onboarding-flow/creation-successful/creation-successful.stories.js
- ui/pages/onboarding-flow/metametrics/metametrics.stories.js
- ui/pages/onboarding-flow/privacy-settings/privacy-settings.stories.js
- ui/pages/onboarding-flow/welcome/welcome.stories.js
- ui/pages/permissions-connect/permissions-connect.stories.js
- ui/pages/send/send-content/add-recipient/add-recipient.stories.js
- ui/pages/send/send-content/send-asset-row/send-asset-row.stories.js
- ui/pages/send/send-content/send-content.stories.js
- ui/pages/send/send-content/send-gas-row/send-gas-row.stories.js
- ui/pages/send/send-content/send-hex-data-row/send-hex-data-row.stories.js
- ui/pages/send/send-footer/send-footer.stories.js
- ui/pages/send/send-header/send-header.stories.js
- ui/pages/settings/contact-list-tab/contact-list-tab.stories.js
- ui/pages/settings/flask/snaps-list-tab/snap-list-tab.stories.js
- ui/pages/settings/networks-tab/custom-content-search/custom-content-search.stories.js
- ui/pages/settings/networks-tab/networks-list-item/networks-list-item.stories.js
- ui/pages/settings/networks-tab/networks-list/network-list.stories.js
- ui/pages/settings/settings-search/settings-search.stories.js
- ui/pages/settings/settings.stories.js
- ui/pages/swaps/awaiting-signatures/awaiting-signatures.stories.js
- ui/pages/swaps/build-quote/build-quote.stories.js
- ui/pages/swaps/countdown-timer/countdown-timer.stories.js
- ui/pages/swaps/dropdown-input-pair/dropdown-input-pair.stories.js
- ui/pages/swaps/dropdown-search-list/dropdown-search-list.stories.js
- ui/pages/swaps/exchange-rate-display/exchange-rate-display.stories.js
- ui/pages/swaps/fee-card/fee-card.stories.js
- ui/pages/swaps/loading-swaps-quotes/loading-swap-quotes.stories.js
- ui/pages/swaps/main-quote-summary/main-quote-summary.stories.js
- ui/pages/swaps/searchable-item-list/list-item-search/list-item-search.stories.js
- ui/pages/swaps/select-quote-popover/select-quote-popover.stories.js
- ui/pages/swaps/smart-transaction-status/smart-transaction-status.stories.js
Builds ready [0367001]
- builds: chrome, firefox, opera
- builds (beta): chrome, firefox, opera
- builds (flask): chrome, firefox, opera
- build viz: Build System
- mv3: Background Module Init Stats
- mv3: UI Init Stats
- mv3: Module Load Stats
- mv3: Bundle Size Stats
- mv2: E2e Actions Stats
- code coverage: Report
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
Page Load Metrics (1947 ± 57 ms)
| Platform | Page | Metric | Min (ms) | Max (ms) | Average (ms) | StandardDeviation (ms) | MarginOfError (ms) |
|---|---|---|---|---|---|---|---|
| Chrome | Home | firstPaint | 99 | 265 | 137 | 39 | 19 |
| domContentLoaded | 1771 | 2214 | 1930 | 103 | 49 | ||
| load | 1771 | 2214 | 1947 | 118 | 57 | ||
| domInteractive | 1771 | 2214 | 1930 | 103 | 49 |
highlights:
storybook
- ui/components/app/account-list-item/account-list-item.stories.js
- ui/components/app/add-network/add-network.stories.js
- ui/components/app/advanced-gas-controls/advanced-gas-controls.stories.js
- ui/components/app/app-header/app-header.stories.js
- ui/components/app/asset-list/detetcted-tokens-link/detected-tokens-link.stories.js
- ui/components/app/collectible-details/collectible-details.stories.js
- ui/components/app/confirm-page-container/confirm-detail-row/confirm-detail-row.stories.js
- ui/components/app/confirm-page-container/confirm-page-container-header/confirm-page-container-header.stories.js
- ui/components/app/connected-accounts-list/connected-accounts-list.stories.js
- ui/components/app/create-new-vault/create-new-vault.stories.js
- ui/components/app/currency-input/currency-input.stories.js
- ui/components/app/detected-token/detected-token-details/detected-token-details.stories.js
- ui/components/app/detected-token/detected-token-selection-popover/detected-token-selection-popover.stories.js
- ui/components/app/detected-token/detected-token-values/detected-token-values.stories.js
- ui/components/app/edit-gas-display/edit-gas-display.stories.js
- ui/components/app/edit-gas-popover/edit-gas-popover.stories.js
- ui/components/app/menu-bar/accoutn-options-menu.stories.js
- ui/components/app/metamask-template-renderer/metamask-template-renderer.stories.js
- ui/components/app/modals/confirm-remove-account/confirm-remove-account.stories.js
- ui/components/app/modals/export-private-key-modal/export-private-key-modal.stories.js
- ui/components/app/modals/hide-token-confirmation-modal/hide-token-confirmation.stories.js
- ui/components/app/modals/transaction-confirmed/transaction-confirmed.stories.js
- ui/components/app/network-display/network-display.stories.js
- ui/components/app/signature-request-original/signature-request-original.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe-header/signature-request-siwe-header.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe.stories.js
- ui/components/app/signature-request/signature-request-header/signature-request-header.stories.js
- ui/components/app/signature-request/signature-request.stories.js
- ui/components/app/srp-input/srp-input.stories.js
- ui/components/app/transaction-detail/transaction-detail.stories.js
- ui/components/app/transaction-list-item/transaction-list-item.stories.js
- ui/components/app/transaction-list/transaction-list.stories.js
- ui/components/app/user-preferenced-currency-display/user-preferenced-currency-display.stories.js
- ui/components/ui/account-list/account-list.stories.js
- ui/components/ui/nickname-popover/nickname-popover.stories.js
- ui/components/ui/sender-to-recipient/sender-to-recipient.stories.js
- ui/components/ui/update-nickname-popover/update-nickname-popover.stories.js
- ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.stories.js
- ui/pages/confirm-approve/confirm-approve-content/confirm-approve-content.stories.js
- ui/pages/confirm-approve/confirm-approve.stories.js
- ui/pages/confirm-deploy-contract/confirm-deploy-contract.stories.js
- ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.stories.js
- ui/pages/confirm-import-token/confirm-import-token.stories.js
- ui/pages/confirm-send-ether/confirm-send-ether.stories.js
- ui/pages/confirm-send-token/confirm-send-token.stories.js
- ui/pages/confirm-token-transaction-base/confirm-token-transaction-base.stories.js
- ui/pages/confirm-transaction-base/confirm-transaction-base.stories.js
- ui/pages/connected-accounts/connected-accounts.stories.js
- ui/pages/connected-sites/connected-sites.stories.js
- ui/pages/first-time-flow/create-password/create-password.stories.js
- ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.stories.js
- ui/pages/import-token/import-token.stories.js
- ui/pages/import-token/token-search/token-search.stories.js
- ui/pages/keychains/reveal-seed.stories.js
- ui/pages/onboarding-flow/creation-successful/creation-successful.stories.js
- ui/pages/onboarding-flow/metametrics/metametrics.stories.js
- ui/pages/onboarding-flow/privacy-settings/privacy-settings.stories.js
- ui/pages/onboarding-flow/welcome/welcome.stories.js
- ui/pages/permissions-connect/permissions-connect.stories.js
- ui/pages/send/send-content/add-recipient/add-recipient.stories.js
- ui/pages/send/send-content/send-asset-row/send-asset-row.stories.js
- ui/pages/send/send-content/send-content.stories.js
- ui/pages/send/send-content/send-gas-row/send-gas-row.stories.js
- ui/pages/send/send-content/send-hex-data-row/send-hex-data-row.stories.js
- ui/pages/send/send-footer/send-footer.stories.js
- ui/pages/send/send-header/send-header.stories.js
- ui/pages/settings/contact-list-tab/contact-list-tab.stories.js
- ui/pages/settings/flask/snaps-list-tab/snap-list-tab.stories.js
- ui/pages/settings/networks-tab/custom-content-search/custom-content-search.stories.js
- ui/pages/settings/networks-tab/networks-list-item/networks-list-item.stories.js
- ui/pages/settings/networks-tab/networks-list/network-list.stories.js
- ui/pages/settings/settings-search/settings-search.stories.js
- ui/pages/settings/settings.stories.js
- ui/pages/swaps/awaiting-signatures/awaiting-signatures.stories.js
- ui/pages/swaps/build-quote/build-quote.stories.js
- ui/pages/swaps/countdown-timer/countdown-timer.stories.js
- ui/pages/swaps/dropdown-input-pair/dropdown-input-pair.stories.js
- ui/pages/swaps/dropdown-search-list/dropdown-search-list.stories.js
- ui/pages/swaps/exchange-rate-display/exchange-rate-display.stories.js
- ui/pages/swaps/fee-card/fee-card.stories.js
- ui/pages/swaps/loading-swaps-quotes/loading-swap-quotes.stories.js
- ui/pages/swaps/main-quote-summary/main-quote-summary.stories.js
- ui/pages/swaps/searchable-item-list/list-item-search/list-item-search.stories.js
- ui/pages/swaps/select-quote-popover/select-quote-popover.stories.js
- ui/pages/swaps/smart-transaction-status/smart-transaction-status.stories.js
seconding @danjm 's message above, in the before and after all the numbers you posted look good (reduction in bundle size) but the image of the zip files show an increase in total size. We should at least understand that portion and where the size is coming from.
I was trying this approach to measuring size increase as well - looking at the zip file size - but I'm not sure if its a valid way to measure...? @brad-decker @Gudahtt what do you think?
Builds ready [492f884]
- builds: chrome, firefox, opera
- builds (beta): chrome, firefox, opera
- builds (flask): chrome, firefox, opera
- build viz: Build System
- mv3: Background Module Init Stats
- mv3: UI Init Stats
- mv3: Module Load Stats
- mv3: Bundle Size Stats
- mv2: E2e Actions Stats
- code coverage: Report
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
Page Load Metrics (2139 ± 92 ms)
| Platform | Page | Metric | Min (ms) | Max (ms) | Average (ms) | StandardDeviation (ms) | MarginOfError (ms) |
|---|---|---|---|---|---|---|---|
| Chrome | Home | firstPaint | 107 | 173 | 134 | 21 | 10 |
| domContentLoaded | 1900 | 2557 | 2109 | 179 | 86 | ||
| load | 1900 | 2557 | 2139 | 192 | 92 | ||
| domInteractive | 1900 | 2557 | 2109 | 179 | 86 |
highlights:
storybook
- ui/components/app/account-list-item/account-list-item.stories.js
- ui/components/app/add-network/add-network.stories.js
- ui/components/app/advanced-gas-controls/advanced-gas-controls.stories.js
- ui/components/app/app-header/app-header.stories.js
- ui/components/app/asset-list/detetcted-tokens-link/detected-tokens-link.stories.js
- ui/components/app/collectible-details/collectible-details.stories.js
- ui/components/app/confirm-page-container/confirm-detail-row/confirm-detail-row.stories.js
- ui/components/app/confirm-page-container/confirm-page-container-header/confirm-page-container-header.stories.js
- ui/components/app/connected-accounts-list/connected-accounts-list.stories.js
- ui/components/app/create-new-vault/create-new-vault.stories.js
- ui/components/app/currency-input/currency-input.stories.js
- ui/components/app/detected-token/detected-token-details/detected-token-details.stories.js
- ui/components/app/detected-token/detected-token-selection-popover/detected-token-selection-popover.stories.js
- ui/components/app/detected-token/detected-token-values/detected-token-values.stories.js
- ui/components/app/edit-gas-display/edit-gas-display.stories.js
- ui/components/app/edit-gas-popover/edit-gas-popover.stories.js
- ui/components/app/menu-bar/accoutn-options-menu.stories.js
- ui/components/app/metamask-template-renderer/metamask-template-renderer.stories.js
- ui/components/app/modals/confirm-remove-account/confirm-remove-account.stories.js
- ui/components/app/modals/export-private-key-modal/export-private-key-modal.stories.js
- ui/components/app/modals/hide-token-confirmation-modal/hide-token-confirmation.stories.js
- ui/components/app/modals/transaction-confirmed/transaction-confirmed.stories.js
- ui/components/app/network-display/network-display.stories.js
- ui/components/app/signature-request-original/signature-request-original.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe-header/signature-request-siwe-header.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe.stories.js
- ui/components/app/signature-request/signature-request-header/signature-request-header.stories.js
- ui/components/app/signature-request/signature-request.stories.js
- ui/components/app/srp-input/srp-input.stories.js
- ui/components/app/transaction-detail/transaction-detail.stories.js
- ui/components/app/transaction-list-item/transaction-list-item.stories.js
- ui/components/app/transaction-list/transaction-list.stories.js
- ui/components/app/user-preferenced-currency-display/user-preferenced-currency-display.stories.js
- ui/components/ui/account-list/account-list.stories.js
- ui/components/ui/nickname-popover/nickname-popover.stories.js
- ui/components/ui/sender-to-recipient/sender-to-recipient.stories.js
- ui/components/ui/update-nickname-popover/update-nickname-popover.stories.js
- ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.stories.js
- ui/pages/confirm-approve/confirm-approve-content/confirm-approve-content.stories.js
- ui/pages/confirm-approve/confirm-approve.stories.js
- ui/pages/confirm-deploy-contract/confirm-deploy-contract.stories.js
- ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.stories.js
- ui/pages/confirm-import-token/confirm-import-token.stories.js
- ui/pages/confirm-send-ether/confirm-send-ether.stories.js
- ui/pages/confirm-send-token/confirm-send-token.stories.js
- ui/pages/confirm-token-transaction-base/confirm-token-transaction-base.stories.js
- ui/pages/confirm-transaction-base/confirm-transaction-base.stories.js
- ui/pages/connected-accounts/connected-accounts.stories.js
- ui/pages/connected-sites/connected-sites.stories.js
- ui/pages/first-time-flow/create-password/create-password.stories.js
- ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.stories.js
- ui/pages/import-token/import-token.stories.js
- ui/pages/import-token/token-search/token-search.stories.js
- ui/pages/keychains/reveal-seed.stories.js
- ui/pages/onboarding-flow/creation-successful/creation-successful.stories.js
- ui/pages/onboarding-flow/metametrics/metametrics.stories.js
- ui/pages/onboarding-flow/privacy-settings/privacy-settings.stories.js
- ui/pages/onboarding-flow/welcome/welcome.stories.js
- ui/pages/permissions-connect/permissions-connect.stories.js
- ui/pages/send/send-content/add-recipient/add-recipient.stories.js
- ui/pages/send/send-content/send-asset-row/send-asset-row.stories.js
- ui/pages/send/send-content/send-content.stories.js
- ui/pages/send/send-content/send-gas-row/send-gas-row.stories.js
- ui/pages/send/send-content/send-hex-data-row/send-hex-data-row.stories.js
- ui/pages/send/send-footer/send-footer.stories.js
- ui/pages/send/send-header/send-header.stories.js
- ui/pages/settings/contact-list-tab/contact-list-tab.stories.js
- ui/pages/settings/flask/snaps-list-tab/snap-list-tab.stories.js
- ui/pages/settings/networks-tab/custom-content-search/custom-content-search.stories.js
- ui/pages/settings/networks-tab/networks-list-item/networks-list-item.stories.js
- ui/pages/settings/networks-tab/networks-list/network-list.stories.js
- ui/pages/settings/settings-search/settings-search.stories.js
- ui/pages/settings/settings.stories.js
- ui/pages/swaps/awaiting-signatures/awaiting-signatures.stories.js
- ui/pages/swaps/build-quote/build-quote.stories.js
- ui/pages/swaps/countdown-timer/countdown-timer.stories.js
- ui/pages/swaps/dropdown-input-pair/dropdown-input-pair.stories.js
- ui/pages/swaps/dropdown-search-list/dropdown-search-list.stories.js
- ui/pages/swaps/exchange-rate-display/exchange-rate-display.stories.js
- ui/pages/swaps/fee-card/fee-card.stories.js
- ui/pages/swaps/loading-swaps-quotes/loading-swap-quotes.stories.js
- ui/pages/swaps/main-quote-summary/main-quote-summary.stories.js
- ui/pages/swaps/searchable-item-list/list-item-search/list-item-search.stories.js
- ui/pages/swaps/select-quote-popover/select-quote-popover.stories.js
- ui/pages/swaps/smart-transaction-status/smart-transaction-status.stories.js
@danjm I investigated why we have bundle sizes bigger after using specific ethers packages.
It looks like every specific ethers package will install node modules that he needs, so it will cause multiple installations of the same package. Like in the picture below.
When we install umbrella ethers, the size of that node module is 8,5 MB. When we install only specific packages that we use, the size of that node module is 25,5MB.
@danjm I investigated why we have bundle sizes bigger after using specific ethers packages.
It looks like every specific ethers package will install node modules that he needs, so it will cause multiple installations of the same package. Like in the picture below.
![]()
When we install umbrella ethers, the size of that node module is 8,5 MB. When we install only specific packages that we use, the size of that node module is 25,5MB.
looking into this.
So at least part of the problem is that any places in our dependency tree that ethers is imported rather than the component @ethersproject/<subfolder> it makes sure that we will have atleast one fixed version import of each @ethersproject/ dependency, since each version of ethers depends on the same fixed equivalent version of each of the @ethersproject/ components: 5.7.0, 5.6.0, etc. So we should try to get rid of all uses of the "umbrella" ethers package in our dependency tree if possible, otherwise de-duping our way out of this will become harder. Yes de-duping means we only end up with one fixed (no ^ or >) version of all the @ethersproject/ packages but still.
Actually not sure if we can do this since @ethersproject/hardware-wallets depends on ethers itself...
Looks like upgrading our version of @eth-optimism/contracts could help... @danjm do you know if this will require complex adaptations, seems like we're pretty far behind: currently .0.0-2021919175625 -> latest 0.5.33
Looks like upgrading our version of
@eth-optimism/contractscould help... @danjm do you know if this will require complex adaptations, seems like we're pretty far behind: currently.0.0-2021919175625-> latest0.5.33
Looks like the interfaces haven't changed for the functions/objects we use
Looks like the interfaces haven't changed for the functions/objects we use @adonesky1 I agree. I don't think updating will be breaking for us
So despite consolidating all of the @ethersproject/ components to a single version, i'm still seeing the size increase about the same amount. Looking at the remaining instances of ethers in our dependency graph:

we can easily move @metamask/controllers and @metamask/smart-transactions-controller to use the specific imports ourselves, but will need eth-optimism team to update @eth-optimism/core-utils to use specific imports instead of ethers if we want to get it out of our dependency tree altogether.
Do we think its worth asking them to make that update for us @danjm? almost certainly doesn't make sense to make our own fork just for this...
I've pinged the Optimism team about this here: https://consensys.slack.com/archives/C01KXHPU3C6/p1662579353556779
Builds ready [52ec9c6]
- builds: chrome, firefox, opera
- builds (beta): chrome, firefox, opera
- builds (flask): chrome, firefox, opera
- build viz: Build System
- mv3: Background Module Init Stats
- mv3: UI Init Stats
- mv3: Module Load Stats
- mv3: Bundle Size Stats
- mv2: E2e Actions Stats
- code coverage: Report
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
Page Load Metrics (1895 ± 79 ms)
| Platform | Page | Metric | Min (ms) | Max (ms) | Average (ms) | StandardDeviation (ms) | MarginOfError (ms) |
|---|---|---|---|---|---|---|---|
| Chrome | Home | firstPaint | 95 | 164 | 128 | 18 | 9 |
| domContentLoaded | 1697 | 2351 | 1865 | 143 | 68 | ||
| load | 1697 | 2482 | 1895 | 164 | 79 | ||
| domInteractive | 1697 | 2351 | 1865 | 143 | 68 |
highlights:
storybook
- ui/components/app/account-list-item/account-list-item.stories.js
- ui/components/app/add-network/add-network.stories.js
- ui/components/app/advanced-gas-controls/advanced-gas-controls.stories.js
- ui/components/app/app-header/app-header.stories.js
- ui/components/app/asset-list/detetcted-tokens-link/detected-tokens-link.stories.js
- ui/components/app/collectible-details/collectible-details.stories.js
- ui/components/app/confirm-page-container/confirm-detail-row/confirm-detail-row.stories.js
- ui/components/app/confirm-page-container/confirm-page-container-header/confirm-page-container-header.stories.js
- ui/components/app/connected-accounts-list/connected-accounts-list.stories.js
- ui/components/app/create-new-vault/create-new-vault.stories.js
- ui/components/app/currency-input/currency-input.stories.js
- ui/components/app/detected-token/detected-token-details/detected-token-details.stories.js
- ui/components/app/detected-token/detected-token-selection-popover/detected-token-selection-popover.stories.js
- ui/components/app/detected-token/detected-token-values/detected-token-values.stories.js
- ui/components/app/edit-gas-display/edit-gas-display.stories.js
- ui/components/app/edit-gas-popover/edit-gas-popover.stories.js
- ui/components/app/menu-bar/accoutn-options-menu.stories.js
- ui/components/app/metamask-template-renderer/metamask-template-renderer.stories.js
- ui/components/app/modals/confirm-remove-account/confirm-remove-account.stories.js
- ui/components/app/modals/export-private-key-modal/export-private-key-modal.stories.js
- ui/components/app/modals/hide-token-confirmation-modal/hide-token-confirmation.stories.js
- ui/components/app/modals/transaction-confirmed/transaction-confirmed.stories.js
- ui/components/app/network-display/network-display.stories.js
- ui/components/app/signature-request-original/signature-request-original.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe-header/signature-request-siwe-header.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe.stories.js
- ui/components/app/signature-request/signature-request-header/signature-request-header.stories.js
- ui/components/app/signature-request/signature-request.stories.js
- ui/components/app/srp-input/srp-input.stories.js
- ui/components/app/transaction-detail/transaction-detail.stories.js
- ui/components/app/transaction-list-item/transaction-list-item.stories.js
- ui/components/app/transaction-list/transaction-list.stories.js
- ui/components/app/user-preferenced-currency-display/user-preferenced-currency-display.stories.js
- ui/components/ui/account-list/account-list.stories.js
- ui/components/ui/nickname-popover/nickname-popover.stories.js
- ui/components/ui/sender-to-recipient/sender-to-recipient.stories.js
- ui/components/ui/update-nickname-popover/update-nickname-popover.stories.js
- ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.stories.js
- ui/pages/confirm-approve/confirm-approve-content/confirm-approve-content.stories.js
- ui/pages/confirm-approve/confirm-approve.stories.js
- ui/pages/confirm-deploy-contract/confirm-deploy-contract.stories.js
- ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.stories.js
- ui/pages/confirm-import-token/confirm-import-token.stories.js
- ui/pages/confirm-send-ether/confirm-send-ether.stories.js
- ui/pages/confirm-send-token/confirm-send-token.stories.js
- ui/pages/confirm-token-transaction-base/confirm-token-transaction-base.stories.js
- ui/pages/confirm-transaction-base/confirm-transaction-base.stories.js
- ui/pages/connected-accounts/connected-accounts.stories.js
- ui/pages/connected-sites/connected-sites.stories.js
- ui/pages/first-time-flow/create-password/create-password.stories.js
- ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.stories.js
- ui/pages/import-token/import-token.stories.js
- ui/pages/import-token/token-search/token-search.stories.js
- ui/pages/keychains/reveal-seed.stories.js
- ui/pages/onboarding-flow/creation-successful/creation-successful.stories.js
- ui/pages/onboarding-flow/metametrics/metametrics.stories.js
- ui/pages/onboarding-flow/privacy-settings/privacy-settings.stories.js
- ui/pages/onboarding-flow/welcome/welcome.stories.js
- ui/pages/permissions-connect/permissions-connect.stories.js
- ui/pages/send/send-content/add-recipient/add-recipient.stories.js
- ui/pages/send/send-content/send-asset-row/send-asset-row.stories.js
- ui/pages/send/send-content/send-content.stories.js
- ui/pages/send/send-content/send-gas-row/send-gas-row.stories.js
- ui/pages/send/send-content/send-hex-data-row/send-hex-data-row.stories.js
- ui/pages/send/send-footer/send-footer.stories.js
- ui/pages/send/send-header/send-header.stories.js
- ui/pages/settings/contact-list-tab/contact-list-tab.stories.js
- ui/pages/settings/flask/snaps-list-tab/snap-list-tab.stories.js
- ui/pages/settings/networks-tab/custom-content-search/custom-content-search.stories.js
- ui/pages/settings/networks-tab/networks-list-item/networks-list-item.stories.js
- ui/pages/settings/networks-tab/networks-list/network-list.stories.js
- ui/pages/settings/settings-search/settings-search.stories.js
- ui/pages/settings/settings.stories.js
- ui/pages/swaps/awaiting-signatures/awaiting-signatures.stories.js
- ui/pages/swaps/build-quote/build-quote.stories.js
- ui/pages/swaps/countdown-timer/countdown-timer.stories.js
- ui/pages/swaps/dropdown-input-pair/dropdown-input-pair.stories.js
- ui/pages/swaps/dropdown-search-list/dropdown-search-list.stories.js
- ui/pages/swaps/exchange-rate-display/exchange-rate-display.stories.js
- ui/pages/swaps/fee-card/fee-card.stories.js
- ui/pages/swaps/loading-swaps-quotes/loading-swap-quotes.stories.js
- ui/pages/swaps/main-quote-summary/main-quote-summary.stories.js
- ui/pages/swaps/searchable-item-list/list-item-search/list-item-search.stories.js
- ui/pages/swaps/select-quote-popover/select-quote-popover.stories.js
- ui/pages/swaps/smart-transaction-status/smart-transaction-status.stories.js
the Optimism team has graciously opened PR that will help us remove the umbrella package ethers from our dependency tree: https://github.com/ethereum-optimism/optimism/pull/3363. Once they publish we can pull that in and update here.
Working with eth-optimism team to get their new build right.
Currently waiting for updated build from Optimism: thread
@adonesky1 are there any updates relevant to this PR that can be shared?
Builds ready [98092de]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- build viz: Build System
- mv3: Background Module Init Stats
- mv3: UI Init Stats
- mv3: Module Load Stats
- mv3: Bundle Size Stats
- mv2: E2e Actions Stats
- code coverage: Report
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
Page Load Metrics (1333 ± 105 ms)
| Platform | Page | Metric | Min (ms) | Max (ms) | Average (ms) | StandardDeviation (ms) | MarginOfError (ms) |
|---|---|---|---|---|---|---|---|
| Chrome | Home | firstPaint | 97 | 135 | 113 | 11 | 5 |
| domContentLoaded | 986 | 1719 | 1305 | 220 | 105 | ||
| load | 1048 | 1793 | 1333 | 219 | 105 | ||
| domInteractive | 986 | 1719 | 1305 | 220 | 105 |
Bundle size diffs [🚀 Bundle size reduced!]
- background: 76238 bytes
- ui: 197263 bytes
- common: -183927 bytes
highlights:
storybook
- ui/components/app/account-list-item/account-list-item.stories.js
- ui/components/app/add-network/add-network.stories.js
- ui/components/app/advanced-gas-controls/advanced-gas-controls.stories.js
- ui/components/app/app-header/app-header.stories.js
- ui/components/app/approve-content-card/approve-content-card.stories.js
- ui/components/app/asset-list/detetcted-tokens-link/detected-tokens-link.stories.js
- ui/components/app/beta-header/beta-header.stories.js
- ui/components/app/collectible-details/collectible-details.stories.js
- ui/components/app/confirm-page-container/confirm-detail-row/confirm-detail-row.stories.js
- ui/components/app/confirm-page-container/confirm-page-container-header/confirm-page-container-header.stories.js
- ui/components/app/connected-accounts-list/connected-accounts-list.stories.js
- ui/components/app/create-new-vault/create-new-vault.stories.js
- ui/components/app/currency-input/currency-input.stories.js
- ui/components/app/custom-spending-cap/custom-spending-cap.stories.js
- ui/components/app/detected-token/detected-token-details/detected-token-details.stories.js
- ui/components/app/detected-token/detected-token-selection-popover/detected-token-selection-popover.stories.js
- ui/components/app/detected-token/detected-token-values/detected-token-values.stories.js
- ui/components/app/edit-gas-display/edit-gas-display.stories.js
- ui/components/app/edit-gas-popover/edit-gas-popover.stories.js
- ui/components/app/flask/snap-ui-renderer/snap-ui-renderer.stories.js
- ui/components/app/menu-bar/account-options-menu.stories.js
- ui/components/app/modals/confirm-remove-account/confirm-remove-account.stories.js
- ui/components/app/modals/contract-details-modal/contract-details-modal.stories.js
- ui/components/app/modals/export-private-key-modal/export-private-key-modal.stories.js
- ui/components/app/modals/hide-token-confirmation-modal/hide-token-confirmation.stories.js
- ui/components/app/modals/transaction-confirmed/transaction-confirmed.stories.js
- ui/components/app/network-account-balance-header/network-account-balance-header.stories.js
- ui/components/app/set-approval-for-all-warning/set-approval-for-all-warning.stories.js
- ui/components/app/signature-request-original/signature-request-original.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe-header/signature-request-siwe-header.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe.stories.js
- ui/components/app/signature-request/signature-request-data/signature-request-data.stories.js
- ui/components/app/signature-request/signature-request-header/signature-request-header.stories.js
- ui/components/app/signature-request/signature-request-message/signature-request-message.stories.js
- ui/components/app/signature-request/signature-request.stories.js
- ui/components/app/srp-input/srp-input.stories.js
- ui/components/app/transaction-detail/transaction-detail.stories.js
- ui/components/app/transaction-list-item/transaction-list-item.stories.js
- ui/components/app/transaction-list/transaction-list.stories.js
- ui/components/app/user-preferenced-currency-display/user-preferenced-currency-display.stories.js
- ui/components/ui/account-list/account-list.stories.js
- ui/components/ui/contract-token-values/contract-token-values.stories.js
- ui/components/ui/deprecated-test-networks/deprecated-test-networks.stories.js
- ui/components/ui/nft-info/nft-info.stories.js
- ui/components/ui/nickname-popover/nickname-popover.stories.js
- ui/components/ui/sender-to-recipient/sender-to-recipient.stories.js
- ui/components/ui/update-nickname-popover/update-nickname-popover.stories.js
- ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.stories.js
- ui/pages/confirm-approve/confirm-approve-content/confirm-approve-content.stories.js
- ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.stories.js
- ui/pages/confirm-import-token/confirm-import-token.stories.js
- ui/pages/connected-accounts/connected-accounts.stories.js
- ui/pages/connected-sites/connected-sites.stories.js
- ui/pages/first-time-flow/create-password/create-password.stories.js
- ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.stories.js
- ui/pages/import-token/import-token.stories.js
- ui/pages/import-token/token-search/token-search.stories.js
- ui/pages/keychains/reveal-seed.stories.js
- ui/pages/onboarding-flow/creation-successful/creation-successful.stories.js
- ui/pages/onboarding-flow/metametrics/metametrics.stories.js
- ui/pages/onboarding-flow/pin-extension/pin-extension.stories.js
- ui/pages/onboarding-flow/privacy-settings/privacy-settings.stories.js
- ui/pages/onboarding-flow/secure-your-wallet/secure-your-wallet.stories.js
- ui/pages/onboarding-flow/welcome/welcome.stories.js
- ui/pages/permissions-connect/permissions-connect.stories.js
- ui/pages/send/send-content/add-recipient/add-recipient.stories.js
- ui/pages/send/send-content/send-asset-row/send-asset-row.stories.js
- ui/pages/send/send-content/send-content.stories.js
- ui/pages/send/send-content/send-gas-row/send-gas-row.stories.js
- ui/pages/send/send-content/send-hex-data-row/send-hex-data-row.stories.js
- ui/pages/send/send-footer/send-footer.stories.js
- ui/pages/send/send-header/send-header.stories.js
- ui/pages/settings/contact-list-tab/contact-list-tab.stories.js
- ui/pages/settings/flask/snaps-list-tab/snap-list-tab.stories.js
- ui/pages/settings/networks-tab/custom-content-search/custom-content-search.stories.js
- ui/pages/settings/networks-tab/networks-list-item/networks-list-item.stories.js
- ui/pages/settings/networks-tab/networks-list/network-list.stories.js
- ui/pages/settings/settings-search/settings-search.stories.js
- ui/pages/settings/settings.stories.js
- ui/pages/swaps/awaiting-signatures/awaiting-signatures.stories.js
- ui/pages/swaps/build-quote/build-quote.stories.js
- ui/pages/swaps/countdown-timer/countdown-timer.stories.js
- ui/pages/swaps/dropdown-input-pair/dropdown-input-pair.stories.js
- ui/pages/swaps/dropdown-search-list/dropdown-search-list.stories.js
- ui/pages/swaps/fee-card/fee-card.stories.js
- ui/pages/swaps/loading-swaps-quotes/loading-swap-quotes.stories.js
- ui/pages/swaps/searchable-item-list/list-item-search/list-item-search.stories.js
- ui/pages/swaps/select-quote-popover/select-quote-popover.stories.js
- ui/pages/swaps/smart-transaction-status/smart-transaction-status.stories.js
- ui/pages/token-allowance/token-allowance.stories.js
Builds ready [cb30ace]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- build viz: Build System
- mv3: Background Module Init Stats
- mv3: UI Init Stats
- mv3: Module Load Stats
- mv3: Bundle Size Stats
- mv2: E2e Actions Stats
- code coverage: Report
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
Page Load Metrics (1225 ± 81 ms)
| Platform | Page | Metric | Min (ms) | Max (ms) | Average (ms) | StandardDeviation (ms) | MarginOfError (ms) |
|---|---|---|---|---|---|---|---|
| Chrome | Home | firstPaint | 94 | 181 | 122 | 19 | 9 |
| domContentLoaded | 1034 | 1579 | 1214 | 175 | 84 | ||
| load | 1034 | 1579 | 1225 | 169 | 81 | ||
| domInteractive | 1034 | 1579 | 1214 | 175 | 84 |
Bundle size diffs [🚀 Bundle size reduced!]
- background: 2992 bytes
- ui: 218941 bytes
- common: -217287 bytes
highlights:
storybook
- ui/components/app/account-list-item/account-list-item.stories.js
- ui/components/app/add-network/add-network.stories.js
- ui/components/app/advanced-gas-controls/advanced-gas-controls.stories.js
- ui/components/app/app-header/app-header.stories.js
- ui/components/app/approve-content-card/approve-content-card.stories.js
- ui/components/app/asset-list/detetcted-tokens-link/detected-tokens-link.stories.js
- ui/components/app/beta-header/beta-header.stories.js
- ui/components/app/collectible-details/collectible-details.stories.js
- ui/components/app/confirm-page-container/confirm-detail-row/confirm-detail-row.stories.js
- ui/components/app/confirm-page-container/confirm-page-container-header/confirm-page-container-header.stories.js
- ui/components/app/connected-accounts-list/connected-accounts-list.stories.js
- ui/components/app/create-new-vault/create-new-vault.stories.js
- ui/components/app/currency-input/currency-input.stories.js
- ui/components/app/custom-spending-cap/custom-spending-cap.stories.js
- ui/components/app/detected-token/detected-token-details/detected-token-details.stories.js
- ui/components/app/detected-token/detected-token-selection-popover/detected-token-selection-popover.stories.js
- ui/components/app/detected-token/detected-token-values/detected-token-values.stories.js
- ui/components/app/edit-gas-display/edit-gas-display.stories.js
- ui/components/app/edit-gas-popover/edit-gas-popover.stories.js
- ui/components/app/flask/snap-ui-renderer/snap-ui-renderer.stories.js
- ui/components/app/menu-bar/account-options-menu.stories.js
- ui/components/app/modals/confirm-remove-account/confirm-remove-account.stories.js
- ui/components/app/modals/contract-details-modal/contract-details-modal.stories.js
- ui/components/app/modals/export-private-key-modal/export-private-key-modal.stories.js
- ui/components/app/modals/hide-token-confirmation-modal/hide-token-confirmation.stories.js
- ui/components/app/modals/transaction-confirmed/transaction-confirmed.stories.js
- ui/components/app/network-account-balance-header/network-account-balance-header.stories.js
- ui/components/app/set-approval-for-all-warning/set-approval-for-all-warning.stories.js
- ui/components/app/signature-request-original/signature-request-original.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe-header/signature-request-siwe-header.stories.js
- ui/components/app/signature-request-siwe/signature-request-siwe.stories.js
- ui/components/app/signature-request/signature-request-data/signature-request-data.stories.js
- ui/components/app/signature-request/signature-request-header/signature-request-header.stories.js
- ui/components/app/signature-request/signature-request-message/signature-request-message.stories.js
- ui/components/app/signature-request/signature-request.stories.js
- ui/components/app/srp-input/srp-input.stories.js
- ui/components/app/transaction-detail/transaction-detail.stories.js
- ui/components/app/transaction-list-item/transaction-list-item.stories.js
- ui/components/app/transaction-list/transaction-list.stories.js
- ui/components/app/user-preferenced-currency-display/user-preferenced-currency-display.stories.js
- ui/components/ui/account-list/account-list.stories.js
- ui/components/ui/contract-token-values/contract-token-values.stories.js
- ui/components/ui/deprecated-test-networks/deprecated-test-networks.stories.js
- ui/components/ui/nft-info/nft-info.stories.js
- ui/components/ui/nickname-popover/nickname-popover.stories.js
- ui/components/ui/sender-to-recipient/sender-to-recipient.stories.js
- ui/components/ui/update-nickname-popover/update-nickname-popover.stories.js
- ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.stories.js
- ui/pages/confirm-approve/confirm-approve-content/confirm-approve-content.stories.js
- ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.stories.js
- ui/pages/confirm-import-token/confirm-import-token.stories.js
- ui/pages/connected-accounts/connected-accounts.stories.js
- ui/pages/connected-sites/connected-sites.stories.js
- ui/pages/first-time-flow/create-password/create-password.stories.js
- ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.stories.js
- ui/pages/import-token/import-token.stories.js
- ui/pages/import-token/token-search/token-search.stories.js
- ui/pages/keychains/reveal-seed.stories.js
- ui/pages/onboarding-flow/creation-successful/creation-successful.stories.js
- ui/pages/onboarding-flow/metametrics/metametrics.stories.js
- ui/pages/onboarding-flow/pin-extension/pin-extension.stories.js
- ui/pages/onboarding-flow/privacy-settings/privacy-settings.stories.js
- ui/pages/onboarding-flow/secure-your-wallet/secure-your-wallet.stories.js
- ui/pages/onboarding-flow/welcome/welcome.stories.js
- ui/pages/permissions-connect/permissions-connect.stories.js
- ui/pages/send/send-content/add-recipient/add-recipient.stories.js
- ui/pages/send/send-content/send-asset-row/send-asset-row.stories.js
- ui/pages/send/send-content/send-content.stories.js
- ui/pages/send/send-content/send-gas-row/send-gas-row.stories.js
- ui/pages/send/send-content/send-hex-data-row/send-hex-data-row.stories.js
- ui/pages/send/send-footer/send-footer.stories.js
- ui/pages/send/send-header/send-header.stories.js
- ui/pages/settings/contact-list-tab/contact-list-tab.stories.js
- ui/pages/settings/flask/snaps-list-tab/snap-list-tab.stories.js
- ui/pages/settings/networks-tab/custom-content-search/custom-content-search.stories.js
- ui/pages/settings/networks-tab/networks-list-item/networks-list-item.stories.js
- ui/pages/settings/networks-tab/networks-list/network-list.stories.js
- ui/pages/settings/settings-search/settings-search.stories.js
- ui/pages/settings/settings.stories.js
- ui/pages/swaps/awaiting-signatures/awaiting-signatures.stories.js
- ui/pages/swaps/build-quote/build-quote.stories.js
- ui/pages/swaps/countdown-timer/countdown-timer.stories.js
- ui/pages/swaps/dropdown-input-pair/dropdown-input-pair.stories.js
- ui/pages/swaps/dropdown-search-list/dropdown-search-list.stories.js
- ui/pages/swaps/fee-card/fee-card.stories.js
- ui/pages/swaps/loading-swaps-quotes/loading-swap-quotes.stories.js
- ui/pages/swaps/searchable-item-list/list-item-search/list-item-search.stories.js
- ui/pages/swaps/select-quote-popover/select-quote-popover.stories.js
- ui/pages/swaps/smart-transaction-status/smart-transaction-status.stories.js
- ui/pages/token-allowance/token-allowance.stories.js
The only outstanding instance of ethers in the extensions's dependency graph is from @ensdomains/ensjs v2.1.0 via @truffle/encoder / @truffle/decoder. @truffle/decoder is used by the transactions-decoding component, and probably can't be easily replaced but @ensdomains/ensjs has an alpha version (3.0.0) which removes it's dependency on ethers so perhaps we ask Truffle to update this dependency to use the alpha version of @ensdomains/ensjs? cc @danjm ~I will write up a separate ticket to follow up on this~ Here is a ticket tracking this: https://github.com/MetaMask/metamask-extension/issues/17298
Builds ready [d3bdcf3]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- build viz: Build System
- mv3: Background Module Init Stats
- mv3: UI Init Stats
- mv3: Module Load Stats
- mv3: Bundle Size Stats
- mv2: E2e Actions Stats
- code coverage: Report
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
Page Load Metrics (1404 ± 137 ms)
| Platform | Page | Metric | Min (ms) | Max (ms) | Average (ms) | StandardDeviation (ms) | MarginOfError (ms) |
|---|---|---|---|---|---|---|---|
| Chrome | Home | firstPaint | 100 | 222 | 141 | 27 | 13 |
| domContentLoaded | 1039 | 1884 | 1388 | 278 | 133 | ||
| load | 1039 | 1964 | 1404 | 286 | 137 | ||
| domInteractive | 1039 | 1884 | 1387 | 278 | 133 |
Bundle size diffs [🚀 Bundle size reduced!]
- background: 3205 bytes
- ui: 225326 bytes
- common: -223672 bytes
Builds ready [eb4d944]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- build viz: Build System
- mv3: Background Module Init Stats
- mv3: UI Init Stats
- mv3: Module Load Stats
- mv3: Bundle Size Stats
- mv2: E2e Actions Stats
- code coverage: Report
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
Page Load Metrics (1338 ± 96 ms)
| Platform | Page | Metric | Min (ms) | Max (ms) | Average (ms) | StandardDeviation (ms) | MarginOfError (ms) |
|---|---|---|---|---|---|---|---|
| Chrome | Home | firstPaint | 97 | 144 | 118 | 15 | 7 |
| domContentLoaded | 1046 | 1715 | 1311 | 180 | 86 | ||
| load | 1046 | 1782 | 1338 | 199 | 96 | ||
| domInteractive | 1046 | 1715 | 1310 | 180 | 86 |
Bundle size diffs [🚀 Bundle size reduced!]
- background: 2768 bytes
- ui: 225326 bytes
- common: -223643 bytes
Is replacing bignumber imports an important part of this? It doesnt seem like all were changed