metamask-extension
metamask-extension copied to clipboard
Skip searching 4byte directory if we don't have a full 4 bytes of data
We should only query 4byte.directory if we have a full 4bytes of data in hex-string form to query against. 4byte.directory will return an unfiltered list of signatures without a full valid query: https://www.4byte.directory/api/v1/signatures/?hex_signature=0x0.
Discovered as part of this thread.
Before: https://user-images.githubusercontent.com/34557516/182933602-1b3925e9-4e88-40f8-a2d9-566c1f56a2a0.mp4
https://user-images.githubusercontent.com/34557516/182933715-b29ed147-251b-4344-a6ce-b68ebd184583.mp4
After: https://user-images.githubusercontent.com/34557516/182933915-b5854ed7-2c4f-4b38-8586-99fd797fd6e9.mov
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.
from QA looks good
Builds ready [d8e4868]
- 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
- code coverage: Report
- storybook: Storybook
- all artifacts
Page Load Metrics (1685 ± 44 ms)
| Platform | Page | Metric | Min (ms) | Max (ms) | Average (ms) | StandardDeviation (ms) | MarginOfError (ms) |
|---|---|---|---|---|---|---|---|
| Chrome | Home | firstPaint | 84 | 147 | 107 | 17 | 8 |
| domContentLoaded | 1551 | 1891 | 1660 | 84 | 40 | ||
| load | 1563 | 1910 | 1685 | 91 | 44 | ||
| domInteractive | 1551 | 1891 | 1660 | 84 | 40 |
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/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/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-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/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/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/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 [eaec140]
- 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 (1401 ± 95 ms)
| Platform | Page | Metric | Min (ms) | Max (ms) | Average (ms) | StandardDeviation (ms) | MarginOfError (ms) |
|---|---|---|---|---|---|---|---|
| Chrome | Home | firstPaint | 93 | 149 | 117 | 16 | 8 |
| domContentLoaded | 1227 | 1984 | 1382 | 200 | 96 | ||
| load | 1227 | 1984 | 1401 | 197 | 95 | ||
| domInteractive | 1227 | 1984 | 1382 | 200 | 96 |
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/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/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/deprecated-test-networks/deprecated-test-networks.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/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.stories.js
- ui/pages/import-token/import-token.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/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/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
Just saw this other issue related to resolving contract functions. It seems it's a different one, but not sure if this PR would also affect this behaviour. Just tagging FYI @adonesky1 @digiwand
Zero-arg function calls shown as "Contract interaction" rather than function name