Skip to content

Commit

Permalink
Merge pull request #28235 from MetaMask/Version-v12.7.0
Browse files Browse the repository at this point in the history
Version v12.7.0 RC
  • Loading branch information
danjm authored Nov 15, 2024
2 parents aa32744 + 76d48fa commit 5561096
Show file tree
Hide file tree
Showing 499 changed files with 21,934 additions and 14,049 deletions.
75 changes: 28 additions & 47 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,15 @@ aliases:
cat ${HOME}/project/.circleci/scripts/enable-vnc.sh >> ~/.bashrc
fi
# Check if MMI Optional tests should run
- &check-mmi-optional
name: Check if MMI Optional tests should run
# Check if MMI tests should run
- &check-mmi-trigger
name: Check if MMI tests should run
command: |
RUN_MMI_OPTIONAL=$(cat ./RUN_MMI_OPTIONAL)
if [[ "${RUN_MMI_OPTIONAL}" == "true" ]]; then
echo "Running MMI Optional tests"
source mmi_trigger.env
if [ "${run_mmi_tests}" == "true" ]; then
echo "Running MMI tests"
else
echo "Skipping MMI Optional tests"
echo "Skipping MMI tests"
circleci step halt
fi
Expand All @@ -114,7 +114,7 @@ workflows:
- trigger-beta-build:
requires:
- prep-deps
- check-pr-tag
- check-mmi-trigger
- prep-deps
- get-changed-files-with-git-diff:
filters:
Expand Down Expand Up @@ -179,7 +179,7 @@ workflows:
- prep-build-test-mmi-playwright:
requires:
- prep-deps
- check-pr-tag
- check-mmi-trigger
- prep-build-storybook:
requires:
- prep-deps
Expand Down Expand Up @@ -231,7 +231,7 @@ workflows:
requires:
- prep-build-test-mmi
- get-changed-files-with-git-diff
- test-e2e-mmi-playwright - OPTIONAL:
- test-e2e-mmi-playwright:
requires:
- prep-build-test-mmi-playwright
- test-e2e-chrome-rpc-mmi:
Expand Down Expand Up @@ -421,39 +421,6 @@ jobs:
name: Create GitHub Pull Request for version
command: .circleci/scripts/release-create-release-pr.sh

check-pr-tag:
docker:
- image: cimg/base:stable
steps:
- run:
name: Check for MMI Team Tag
command: |
#!/bin/bash
GH_LABEL=team-mmi
if [ -z "$CIRCLE_PULL_REQUESTS" ]; then
echo "Skipping tag check; this is not a PR."
echo "false" > ./RUN_MMI_OPTIONAL
exit 0
fi
echo $CIRCLE_PULL_REQUESTS | sed 's/,/\n/g'
# See if any associated PRs have matching label
HAS_MATCHING_PR=$(echo $CIRCLE_PULL_REQUESTS \
| sed -e 's#,#\n#g' -e 's#/github.com/#/api.github.com/repos/#g' -e 's#/pull/#/pulls/#g' \
| xargs -n1 curl -s \
| jq -s "map((.labels|map(select(.name==\"${GH_LABEL}\"))))|flatten|length > 0")
echo "${GH_LABEL} tag presence: ${HAS_MATCHING_PR}"
# assign the RUN_MMI_OPTIONAL variable
echo "${HAS_MATCHING_PR}" > ./RUN_MMI_OPTIONAL
- persist_to_workspace:
root: .
paths:
- RUN_MMI_OPTIONAL

prep-deps:
executor: node-browsers-medium
steps:
Expand Down Expand Up @@ -839,7 +806,7 @@ jobs:
- run: corepack enable
- attach_workspace:
at: .
- run: *check-mmi-optional
- run: *check-mmi-trigger
- run:
name: Build MMI extension for Playwright e2e
command: |
Expand All @@ -854,7 +821,6 @@ jobs:
- persist_to_workspace:
root: .
paths:
- RUN_MMI_OPTIONAL
- dist-test-mmi-playwright
- builds-test-mmi-playwright
- store_artifacts:
Expand Down Expand Up @@ -1306,15 +1272,15 @@ jobs:
- store_test_results:
path: test/test-results/e2e

test-e2e-mmi-playwright - OPTIONAL:
test-e2e-mmi-playwright:
executor: playwright
parallelism: 2
steps:
- run: *shallow-git-clone-and-enable-vnc
- run: corepack enable
- attach_workspace:
at: .
- run: *check-mmi-optional
- run: *check-mmi-trigger
- run:
name: Move test build to dist
command: mv ./dist-test-mmi-playwright ./dist
Expand Down Expand Up @@ -1743,3 +1709,18 @@ jobs:
- run:
name: All Tests Passed
command: echo 'whew - everything passed!'

check-mmi-trigger:
executor: node-browsers-medium
steps:
- checkout
- run:
name: Check for MMI Team Label or Reviewer
command: ./.circleci/scripts/check_mmi_trigger.sh
- store_artifacts:
path: mmi_trigger.env
destination: mmi_trigger.env
- persist_to_workspace:
root: .
paths:
- mmi_trigger.env
60 changes: 60 additions & 0 deletions .circleci/scripts/check_mmi_trigger.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#!/bin/bash
set -eo pipefail

# Ensure required environment variables are set
if [ -z "$CIRCLE_PULL_REQUEST" ] || [ -z "$GITHUB_TOKEN" ]; then
echo "This appears to be a fork or required environment variables are not set."
echo "Skipping MMI tests."
echo "run_mmi_tests=false" > mmi_trigger.env
exit 0
fi

# Extract PR number from the pull request URL
PR_NUMBER=$(echo "$CIRCLE_PULL_REQUEST" | awk -F'/' '{print $NF}')

# Define repository details
REPO_OWNER="$CIRCLE_PROJECT_USERNAME"
REPO_NAME=$(basename "$CIRCLE_REPOSITORY_URL" .git)

# Fetch PR details using GitHub API
PR_DETAILS=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/pulls/$PR_NUMBER")

# Fetch submitted reviews
SUBMITTED_REVIEWS=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/pulls/$PR_NUMBER/reviews")

# Check for label 'team-mmi'
LABEL_EXISTS=$(jq -r '.labels[]? | select(.name == "team-mmi") | length > 0' <<< "$PR_DETAILS")

# Check for individual reviewer 'mmi'
REVIEWER_REQUESTED=$(jq -r '.requested_reviewers[]? | select(.login == "mmi") | length > 0' <<< "$PR_DETAILS")

# Check for team reviewer 'mmi'
TEAM_REQUESTED=$(jq -r '.requested_teams[]? | select(.slug == "mmi") | length > 0' <<< "$PR_DETAILS")

# Check if 'mmi' submitted a review
REVIEWER_SUBMITTED=$(jq -r '.[]? | select(.user.login == "mmi") | length > 0' <<< "$SUBMITTED_REVIEWS")

# Determine which condition was met and trigger tests if needed
if [[ "$LABEL_EXISTS" == "true" || "$REVIEWER_REQUESTED" == "true" || "$TEAM_REQUESTED" == "true" || "$REVIEWER_SUBMITTED" == "true" ]]; then
echo "run_mmi_tests=true" > mmi_trigger.env

# Log exactly which condition was met
echo "Conditions met:"
if [[ "$LABEL_EXISTS" == "true" ]]; then
echo "- Label 'team-mmi' found."
fi
if [[ "$REVIEWER_REQUESTED" == "true" ]]; then
echo "- Reviewer 'mmi' requested."
fi
if [[ "$TEAM_REQUESTED" == "true" ]]; then
echo "- Team 'mmi' requested."
fi
if [[ "$REVIEWER_SUBMITTED" == "true" ]]; then
echo "- Reviewer 'mmi' submitted a review."
fi
else
echo "run_mmi_tests=false" > mmi_trigger.env
echo "Skipping MMI tests: Neither the 'team-mmi' label was found nor a reviewer from the 'MetaMask/mmi' team was assigned."
fi
2 changes: 2 additions & 0 deletions .depcheckrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ ignores:
# trezor
- 'ts-mixer'
- '@testing-library/dom'
- 'mini-css-extract-plugin'
- 'webpack-cli'

# files depcheck should not parse
ignorePatterns:
Expand Down
7 changes: 6 additions & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,12 @@ privacy-snapshot.json @MetaMask/extension-privacy-reviewers
.devcontainer/ @MetaMask/library-admins @HowardBraham @plasmacorral

# Confirmations team to own code for confirmations on UI.
ui/pages/confirmations @MetaMask/confirmations
app/scripts/lib/ppom @MetaMask/confirmations
app/scripts/lib/signature @MetaMask/confirmations
app/scripts/lib/transaction/decode @MetaMask/confirmations
app/scripts/lib/transaction/metrics.* @MetaMask/confirmations
app/scripts/lib/transaction/util.* @MetaMask/confirmations
ui/pages/confirmations @MetaMask/confirmations

# MMI team is responsible for code related with Institutioanl version of MetaMask
ui/pages/institutional @MetaMask/mmi
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,6 @@ html-report/

/app/images/branding
/changed-files

# UI Integration tests
test/integration/config/assets
4 changes: 4 additions & 0 deletions .metamaskrc.dist
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
; This variable is required
INFURA_PROJECT_ID=00000000000

; This variable is not required but it's necessary for the storybook
; to render stories that use onchain data.
INFURA_STORYBOOK_PROJECT_ID=

;PASSWORD=METAMASK PASSWORD
;SEGMENT_WRITE_KEY=
;BRIDGE_USE_DEV_APIS=
Expand Down
19 changes: 12 additions & 7 deletions .storybook/main.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
const path = require('path');
const { ProvidePlugin } = require('webpack');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const dotenv = require('dotenv');
dotenv.config({ path: path.resolve(__dirname, '../.metamaskrc') });

module.exports = {
core: {
disableTelemetry: true,
Expand Down Expand Up @@ -29,6 +32,7 @@ module.exports = {
env: (config) => ({
...config,
ENABLE_CONFIRMATION_REDESIGN: true,
INFURA_PROJECT_ID: process.env.INFURA_STORYBOOK_PROJECT_ID || '',
}),
// Uses babel.config.js settings and prevents "Missing class properties transform" error
babel: async (options) => ({
Expand All @@ -48,10 +52,16 @@ module.exports = {
config.resolve.alias['../../../../../../store/actions'] = require.resolve(
'../ui/__mocks__/actions.js',
);
config.resolve.alias['../../../store/actions'] = require.resolve(
'../ui/__mocks__/actions.js',
);
// Import within controller-utils crashes storybook.
config.resolve.alias['@ethereumjs/util'] = require.resolve(
'../ui/__mocks__/ethereumjs-util.js',
);
config.resolve.alias['./useNftCollectionsMetadata'] = require.resolve(
'../ui/__mocks__/useNftCollectionsMetadata.js',
);
config.resolve.fallback = {
child_process: false,
constants: false,
Expand Down Expand Up @@ -86,7 +96,7 @@ module.exports = {
sourceMap: true,
implementation: require('sass-embedded'),
sassOptions: {
includePaths: ['ui/css/', 'node_modules/',],
includePaths: ['ui/css/', 'node_modules/'],
},
},
},
Expand All @@ -96,12 +106,7 @@ module.exports = {
new CopyWebpackPlugin({
patterns: [
{
from: path.join(
'ui',
'css',
'utilities',
'fonts/',
),
from: path.join('ui', 'css', 'utilities', 'fonts/'),
to: 'fonts',
},
{
Expand Down
1 change: 1 addition & 0 deletions .storybook/test-data.js
Original file line number Diff line number Diff line change
Expand Up @@ -1596,6 +1596,7 @@ const state = {
},
},
},
openSeaEnabled: true,
},
appState: {
shouldClose: false,
Expand Down
12 changes: 0 additions & 12 deletions .yarn/patches/@babel-core-npm-7.23.2-b93f586907.patch

This file was deleted.

12 changes: 12 additions & 0 deletions .yarn/patches/@babel-core-npm-7.25.9-4ae3bff7f3.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff --git a/lib/index.js b/lib/index.js
index 55b58e10eef589ff80ae33ebd1f1efe488b01153..e919c190d33ab9563f1364667fb4f5894bb6435d 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -211,7 +211,6 @@ var _transform = require("./transform.js");
var _transformFile = require("./transform-file.js");
var _transformAst = require("./transform-ast.js");
var _parse = require("./parse.js");
-var thisFile = require("./index.js");
;
const version = exports.version = "7.25.9";
const resolvePlugin = (name, dirname) => resolvers.resolvePlugin(name, dirname, false).filepath;
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
diff --git a/helpers/construct.js b/helpers/construct.js
index 771e1d7952e80f11619424fbabb3744b959ffa49..5fe152bc1129bd8c8b7bb217ca1972ac4e089051 100644
index aee8e70448824f509d6605e2dfa4455167442f21..00a69eba8d4c15a1f9aa318a50abb96c2ec447d9 100644
--- a/helpers/construct.js
+++ b/helpers/construct.js
@@ -1,10 +1,21 @@
@@ -1,10 +1,22 @@
var isNativeReflectConstruct = require("./isNativeReflectConstruct.js");
-var setPrototypeOf = require("./setPrototypeOf.js");
-var isNativeReflectConstruct = require("./isNativeReflectConstruct.js");
-function _construct(t, e, r) {
- if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
- var o = [null];
Expand Down
26 changes: 26 additions & 0 deletions .yarn/patches/@metamask-snaps-utils-npm-8.4.1-90481bac4b.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
diff --git a/dist/json-rpc.cjs b/dist/json-rpc.cjs
index 6061f7b8b42f0521b0718d616e5a12a1a7520068..11d0233a7bd4b610a99da6a3d105840e88e108e6 100644
--- a/dist/json-rpc.cjs
+++ b/dist/json-rpc.cjs
@@ -68,7 +68,7 @@ function createOriginRegExp(matcher) {
const escaped = matcher.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
// Support wildcards
const regex = escaped.replace(/\\\*/gu, '.*');
- return RegExp(`${regex}$`, 'u');
+ return RegExp(`^${regex}$`, 'u');
}
/**
* Check whether an origin is allowed or not using a matcher string.
diff --git a/dist/json-rpc.mjs b/dist/json-rpc.mjs
index bfa1c2dbbed46a2221ef708afdb97b15db84bc1b..81bc2150cf5d6a9bdabe8d43b04352b299bc1c4d 100644
--- a/dist/json-rpc.mjs
+++ b/dist/json-rpc.mjs
@@ -63,7 +63,7 @@ function createOriginRegExp(matcher) {
const escaped = matcher.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
// Support wildcards
const regex = escaped.replace(/\\\*/gu, '.*');
- return RegExp(`${regex}$`, 'u');
+ return RegExp(`^${regex}$`, 'u');
}
/**
* Check whether an origin is allowed or not using a matcher string.
Loading

0 comments on commit 5561096

Please sign in to comment.