Adds a missing middleware hook for `wallet_requestPermissions` that we failed to add in #12243. Also adds a runtime check that throws an error if any expected hooks are not provided to `createMethodMiddleware`.
Co-authored-by: Mark Stacey <markjstacey@gmail.com>
The 4Byte API can sometimes fail during e2e tests with a 502 error.
Ideally we would avoid calling it at all during e2e tests, but in the
meantime we shouldn't treat this as a reason to fail the e2e test.
We have multiple fallbacks for 4Byte, it isn't relied upon by any
tests.
The Firefox extension version format does not support the version
format we use (SemVer), so we have to specially format the extension
version to be compatible. The format we chose was
`[major].[minor].[patch].[buildType][buildVersion]`. But when we tried
to submit a build with a version in that format, it was rejected as
invalid for unknown reasons.
The Firefox extension format has been updated to
`[major].[minor].[patch][buildType][buildVersion]`. This seems to pass
validation.
The confirmation page template system allows templates to have alerts,
but it throws an uncaught Promise rejection if a template has no
alerts. This is the unintended side-effect of input validation.
The `getTemplateAlerts` function was updated to always return an array.
The one callsite was updated to expect an empty array if there were no
alerts to render, rather than expecting `undefined`.
The `version_name` manifest field was being used on Chrome to store the
build type. However, Chrome intended this field to be a full
representation of the version, for display purposes. This was evident
when uploading this version to the Chrome Web Store, because it used
`flask` as the entire version.
Instead the `version_name` field now includes the full SemVer version
string. The version parsing code within the build script and in the
wallet itself have been updated accordingly.
The build script only allowed prerelease versions for the "beta" build
type (e.g. `X.Y.Z-beta.0`). Now it allows Flask prerelease versions as
well.
This is required for the Flask release, where the prerelease version
helps distinguish the Flask error reports and metrics.
The `environment` field we use for Sentry includes the build type for
all build types except `main`, but the log message indicating that
Sentry did not include this. This log message is useful for ensuring
that Sentry is setup correctly, so it should display the same
environment that Sentry is using. It has been updated to do just that.
This selector is a duplicate of the `getSubjectMetadata` selector,
which does the same thing except that there is no fallback for the case
where the `subjectMetadata` is falsy. This is OK because that state can
never be falsy.
This change was extracted from the `snaps` branch.
The Chrome Web Store has spam policies that prevent uploading
extensions that are too similar to each other. There are exceptions for
test and development versions of extensions, but these exceptions are
required to be clearly identified in the name and description of the
extension.
The name and description of both the Flask and beta distributions have
been updated to include explicit all-caps declarations that identify
them as development and beta distributions respectively, in-line with
the examples shown in the Chrome Web Store spam FAQ.
For more information, see: https://developer.chrome.com/docs/webstore/spam-faq/#test-version
* origin/develop: (106 commits)
Add more missing `appName` messages (#13140)
Add missing `appName` localized messages for Flask and Beta (#13138)
EIP-1559 V2: Adding default settings to advanced gas modal (#12911)
EIP-1559 V2: Advanced gas fee modal - base fee and priority fee trends (#13025)
Wire up priority fee range in new gas modal (#13044)
EIP-1559 V2: Advanced gas fee modal - getting 12 hour ranges of base fee and priority fee (#12996)
Switch Flask horizontal logos (#13113)
Update `@babel/runtime` patch to fix lockdown error (#13109)
Use promisified background in setUseNonceField (#13107)
Fix account name duplicates (#12867)
Choose accounts refactor (#13039)
Fix permissions-connect-footer "learn more" link (#13092)
Feat/collectibles the return (#12970)
Subject metadata cleanup (#13090)
Fix merge conflict typo
Bump just-safe-set from 2.1.0 to 2.2.3 (#13049)
Fix typo in German translation (#13040)
Using EIP-1559 V2 for swaps (#12966)
Make restore vault a form so an user can submit via keyboard (#12989)
Remove legacy node parent detection (#12814)
...
The `appNameFlask` and `appNameBeta` are mandatory because they are
used by the Chrome Web Store, but they are missing from some locales.
This will prevent submitting either of these build types.
These two messages have been added to all locales. The English name has
been used everywhere, since this is a brand name and brands are often
not translated. We can update this to something more appropriate for
other locales in the future if necessary.
The `appNameFlask` and `appNameBeta` are mandatory because they are
used by the Chrome Web Store, but they are missing from some locales.
This will prevent submitting either of these build types.
These two messages have been added to all locales. The English name has
been used everywhere, since this is a brand name and brands are often
not translated. We can update this to something more appropriate for
other locales in the future if necessary.
* origin/develop: (100 commits)
Switch Flask horizontal logos (#13113)
Update `@babel/runtime` patch to fix lockdown error (#13109)
Use promisified background in setUseNonceField (#13107)
Fix account name duplicates (#12867)
Choose accounts refactor (#13039)
Fix permissions-connect-footer "learn more" link (#13092)
Feat/collectibles the return (#12970)
Subject metadata cleanup (#13090)
Fix merge conflict typo
Bump just-safe-set from 2.1.0 to 2.2.3 (#13049)
Fix typo in German translation (#13040)
Using EIP-1559 V2 for swaps (#12966)
Make restore vault a form so an user can submit via keyboard (#12989)
Remove legacy node parent detection (#12814)
Add stories for Home notification component (#13035)
Update Redux DevTools README instructions (#13038)
Jestify app/scripts/controller/network/**/*.test.js (#12985)
Fix order of account list (#12999)
Changes in gas loading animation in EIP-1559 V2 (#13016)
Add crowdin configuration and github action (#12552)
...
We are currently patching `@babel/runtime` to fix various lockdown
errors caused by `@babel/runtime` modifying globals as part of various
polyfills. There was one lockdown error that was showing up in Sentry
error reports, which is the polyfill used for `Reflect.construct`.
All of our supported browsers include this API, so the polyfill has
been replaced with a Proxy that returns the `Reflect.construct`
function directly, except with the addition of the `default` and
`__esModule` properties. I don't know what these properties are for
(maybe ES5/ES6 interoperability?) but I left them just in case they
were being relied upon.
The Flask horizontal logos for "light" and "dark" mode were
accidentally switched. They have now been switched back. The image
`metamask-logo-horizontal.svg` is for light mode, and the image
`metamask-logo-horizontal-dark.svg` is for dark mode.
We are currently patching `@babel/runtime` to fix various lockdown
errors caused by `@babel/runtime` modifying globals as part of various
polyfills. There was one lockdown error that was showing up in Sentry
error reports, which is the polyfill used for `Reflect.construct`.
All of our supported browsers include this API, so the polyfill has
been replaced with a Proxy that returns the `Reflect.construct`
function directly, except with the addition of the `default` and
`__esModule` properties. I don't know what these properties are for
(maybe ES5/ES6 interoperability?) but I left them just in case they
were being relied upon.
* added wrapper around account list to prevent storybook from collapsing the list
* updated translation files
* added snap-connect page
* refactored account list out of the choose account component
* fixed width
* removed unnecessary scss from choose-account component, fixed props in choose account story
* removed snaps-connect page, added comments to ChooseAccount
* updated choose account subtitle text, updated styling for title & subtitle, removed redundant account list story
* updated component name, updated paths
* fixed linter errors
* added comments
* removed unused message
* removed selectAccounts key from all locales
* updated class name for account list header, updated allAreSelected function to use length checks
* Revert "removed unused message"
This reverts commit 32771bc83c08f120825ef75f0741f3034e7dbecb.
* Revert "removed selectAccounts key from all locales"
This reverts commit ccfa4a860f9a75693d893d7c404384e719de297e.
* updated locale messages to use selectAccounts key
* removed stray import
* updated scss
* updated translation key
* removed chooseAccounts key from en locale
* removed optional chaining
* changes
* updated subjectMetadata
* updated subject types
* update useOriginMetadata function to include unknown subject type
* updated permission connect header props, removed host and added subjectType to targetSubjectMetadata
* added subjectType to targetSubjectMetadata
* removed console.log
* changed prop name to iconUrl