Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version v12.6.0 #27996

Open
wants to merge 221 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
221 commits
Select commit Hold shift + click to select a range
0e82276
feat: ERC20 Revoke Allowance (#26906)
pedronfigueiredo Sep 26, 2024
5df205d
fix(NOTIFY-1166): rename account sync event names (#27413)
mathieuartu Sep 26, 2024
62f7b61
fix: alert system and refine SIWE and contract interaction alerts (#2…
vinistevam Sep 26, 2024
77176e0
fix: Permit DataTree token decimals (#27328)
digiwand Sep 26, 2024
f36a831
feat: Add performance metrics for signature requests (#26967)
OGPoyraz Sep 26, 2024
255fdae
feat: Display approve, increaseAllowance and revoke approval to users…
pedronfigueiredo Sep 26, 2024
c71c560
fix: Confirm Page test failing in CI/CD (#27423)
digiwand Sep 26, 2024
8e31bbc
fix: Remove duplication (#27421)
OGPoyraz Sep 26, 2024
39b9985
chore: bump profile-sync-controller to 0.9.3 (#27415)
mathieuartu Sep 26, 2024
7b4eb5b
feat: Editing flow (#26635)
NidhiKJha Sep 26, 2024
83e499c
fix: "Warning: Invalid argument supplied to oneOfType" (#27267)
HowardBraham Sep 26, 2024
0e2d3e5
feat: Display setApprovalForAll and revoke setApprovalForAll to users…
pedronfigueiredo Sep 26, 2024
4fbb0ea
fix: Change speed key color (#27416)
pedronfigueiredo Sep 26, 2024
1ee0cbd
fix: flaky test `Request Queuing Dapp 1, Switch Tx -> Dapp 2 Send Tx …
seaona Sep 26, 2024
251b480
fix: flaky test `Responsive UI Send Transaction from responsive windo…
seaona Sep 26, 2024
7a5e4d6
fix: flaky test `Add account should not affect public address when us…
seaona Sep 26, 2024
122867f
chore: set bridge selected tokens and amount (#26212)
micaelae Sep 27, 2024
1fec98f
fix(snaps): Set proper text color for secondary button (#27335)
GuillaumeRx Sep 27, 2024
8d667a3
fix: removed closeMenu for ConnectedAccountsMenu (#27460)
NidhiKJha Sep 27, 2024
d730f99
fix: Handle null return value from getMethodData to prevent destructu…
pedronfigueiredo Sep 27, 2024
1bd0b9e
test: Fix flaky permit test (#27450)
pnarayanaswamy Sep 27, 2024
d1b778c
ci: Sentry reporting only on develop branch, with Git message overrid…
HowardBraham Sep 28, 2024
cd2aefb
chore: Add `useLedgerConnection` unit tests (#27358)
OGPoyraz Sep 30, 2024
2eebe1b
ci: Expand github bot policy update comment to be more actionable (#2…
naugtur Sep 30, 2024
b665a1c
feat: Double Sentry performance trace sample rate (#27468)
Gudahtt Sep 30, 2024
98a9df7
fix: flaky test `Navigation Signature - Different signature types ini…
seaona Sep 30, 2024
b44e890
fix: Fix snaps permission connection for `CHAIN_PERMISSIONS` feature …
jiexi Sep 30, 2024
0de7915
feat: convert account tracker to typescript (#27231)
cryptodev-2s Sep 30, 2024
80b85f4
feat: Custom header for wallet initiated confirmations (#27391)
pedronfigueiredo Oct 1, 2024
9b50f59
fix: updated ui for connect and review page (#27478)
NidhiKJha Oct 1, 2024
8b35563
fix: Allow state updates in Snaps interfaces to state values that are…
FrederikBolding Oct 1, 2024
7fa5286
fix(snaps): Keep focus on input if interface re-renders (#27429)
GuillaumeRx Oct 1, 2024
778e5ab
fix: genUnapprovedApproveConfirmation import path (#27530)
pedronfigueiredo Oct 1, 2024
874f704
fix(NOTIFY-1171): account syncing performance and bug fixes (#27529)
mathieuartu Oct 1, 2024
1698d5e
Merge origin/develop into master-sync
chloeYue Oct 1, 2024
4f17875
Merge pull request #27538 from MetaMask/master-sync
Gudahtt Oct 1, 2024
cf55b09
fix(snaps): Fix custom UI buttons submitting forms (#27531)
GuillaumeRx Oct 1, 2024
facf905
feat: Enable gas included swaps (#27427)
dan437 Oct 1, 2024
64dde2b
feat: remove squiggle animation from swaps smart transactions (#27264)
martahj Oct 1, 2024
5639952
feat: add merge queue (#26871)
itsyoboieltr Oct 1, 2024
2069163
fix: flaky test `4byte setting does not try to get contract method na…
seaona Oct 2, 2024
eea557d
feat: Add redesign integration tests (#27259)
pedronfigueiredo Oct 2, 2024
d26968f
feat: aggregated balance feature (#27097)
sahar-fehri Oct 2, 2024
453e043
fix: Apply flex to Snaps buttons only when containing images and icon…
FrederikBolding Oct 2, 2024
879b1d9
fix: flaky test `Backup and Restore should backup the account setting…
seaona Oct 2, 2024
4fa502b
fix: AmonHenV2 connection flow incremental permitted chain approval a…
jiexi Oct 2, 2024
9e4c648
chore: start upgrade to React Router v6 (#27185)
HowardBraham Oct 2, 2024
ab37660
feat: codefence Account Watcher for flask (#27543)
k-g-j Oct 2, 2024
ed2e33b
fix: mock locale in unit test (#27574)
bergeron Oct 2, 2024
b50b508
chore: Use "gas_included" event prop (#27559)
dan437 Oct 2, 2024
a7aacf8
refactor: Typescript conversion of get-provider-state.js (#23635)
NiranjanaBinoy Oct 2, 2024
32939f7
fix: flaky test `Address Book Edit entry in address book` due to race…
seaona Oct 2, 2024
e76a149
fix(27428): fix if we type enter anything followed by a \ in settings…
DDDDDanica Oct 2, 2024
8d7bdd2
fix: flaky test `Import flow allows importing multiple tokens from se…
seaona Oct 3, 2024
5281766
fix(snaps): `Copyable` more button color (#27600)
GuillaumeRx Oct 3, 2024
3062fe4
fix: flaky test `Block Explorer links to the token tracker in the exp…
seaona Oct 3, 2024
03cd7d5
fix: Recreate offscreen document if it already exists (#27596)
FrederikBolding Oct 3, 2024
cf22b67
feat: add power users survey support (#27361)
jonybur Oct 3, 2024
537b3fe
fix: Max approval and array value spending cap bugs (#27573)
pedronfigueiredo Oct 3, 2024
c805f75
chore: fix deps audit (#27620)
chloeYue Oct 4, 2024
9f68d10
fix: "Dapp viewed Event @no-mmi is sent when refreshing da..." flaky …
hjetpoluru Oct 4, 2024
ab50595
fix: add amount row for contract deployment (#27594)
vinistevam Oct 4, 2024
a9667f8
fix: revert jest collect coverage patterns (#27583)
cryptotavares Oct 4, 2024
3bdb7eb
fix: disable transaction data decode if deployment (#27586)
matthewwalsh0 Oct 4, 2024
5790f85
feat: Migrate AccountTrackerController to BaseController v2 (#27258)
cryptodev-2s Oct 4, 2024
b10ffa6
fix: fix reading address from market data (#27604)
sahar-fehri Oct 4, 2024
f2192e9
chore: set bridge dest network, tokens and top assets (#26213)
micaelae Oct 4, 2024
a451a40
test: [Snaps E2E] add delay to installed snaps test to reduce flaking…
bowensanders Oct 4, 2024
ec698f8
chore: set bridge src network, tokens and top assets (#26214)
micaelae Oct 4, 2024
e354ad5
chore: update accounts related packages (#27284)
ccharly Oct 7, 2024
581d08a
fix(btc): disable balanceIsCached flag (#27636)
ccharly Oct 7, 2024
2e20dac
fix: fix sentry reading null (#27582)
sahar-fehri Oct 7, 2024
509c2aa
fix: fix sentry reading undefined (#27584)
sahar-fehri Oct 7, 2024
771a2ed
test: [POM] Migrate Snap Simple Keyring page and Snap List page to pa…
devin-ai-integration[bot] Oct 7, 2024
b7b3bdd
test: removing race condition for asserting inner values (PR-#1) (#27…
seaona Oct 7, 2024
98c0676
fix: Design papercuts for redesigned transactions (#27605)
pedronfigueiredo Oct 7, 2024
4c3232c
feat: change survey timeout time from a week to a day (#27603)
jonybur Oct 7, 2024
60ae8cb
feat: support Etherscan API keys (#27611)
matthewwalsh0 Oct 7, 2024
93500d2
fix(btc): do not show percentage for tokens (#27637)
ccharly Oct 7, 2024
8dedd3c
build: add lottie-web dependency to extension (#27632)
dbrans Oct 7, 2024
43f3989
feat(stx): animations and cosmetic changes to smart transaction statu…
dbrans Oct 7, 2024
11ca25b
feat: Adding delete metametrics data to security and privacy tab (#2…
NiranjanaBinoy Oct 7, 2024
fd4cdf0
fix: Test coverage quality gate (#27581)
itsyoboieltr Oct 7, 2024
bff1e21
refactor: routes constants (#27078)
HowardBraham Oct 8, 2024
44aa027
fix: banner alert to render multiple general alerts (#27339)
vinistevam Oct 8, 2024
782d037
fix: test coverage quality gate (#27691)
itsyoboieltr Oct 8, 2024
1f741ff
chore: Update coverage.json (#27696)
metamaskbot Oct 8, 2024
261e6bf
fix(btc): fix address validation (#27690)
ccharly Oct 8, 2024
83455b8
test: removing race condition for asserting inner values (PR-#2) (#27…
seaona Oct 8, 2024
29bc2f5
refactor: Typescript conversion of log-web3-shim-usage.js (#23732)
NiranjanaBinoy Oct 8, 2024
40e5c51
feat(NOTIFY-1193): add profile sync dev menu (#27666)
mathieuartu Oct 8, 2024
ad53037
fix: Disable redirecting Extension users using beta & flask build and…
NiranjanaBinoy Oct 8, 2024
83d5331
perf: add tags to UI startup trace (#27550)
matthewwalsh0 Oct 8, 2024
f41a625
fix: allow getAddTransactionRequest to pass through other params (#27…
martahj Oct 8, 2024
74378eb
test: Convert json-rpc e2e tests to TypeScript (#27659)
chloeYue Oct 8, 2024
b5b8b8f
ci: make git-diff-develop work for PRs from foreign repos (#27268)
legobeat Oct 8, 2024
b34484e
feat: Sort/Import Tokens in Extension (#27184)
gambinish Oct 8, 2024
ad1fb6c
fix: UI startup with no Sentry DSN (#27714)
matthewwalsh0 Oct 9, 2024
ca92f78
fix(btc): fetch btc balance right after account creation (#27628)
ccharly Oct 9, 2024
583d400
fix: Prefer token symbol to token name (#27693)
pedronfigueiredo Oct 9, 2024
65e656c
test: [POM] Migrate create snap account e2e tests to page object moda…
devin-ai-integration[bot] Oct 9, 2024
3defc89
Merge origin/develop into master-sync
hjetpoluru Oct 9, 2024
8f2bab5
fix: Limit amount of decimals on spending cap modal (#27672)
pedronfigueiredo Oct 9, 2024
420e4a6
fix(multichain): fix getMultichainCurrentCurrency selector (#27726)
ccharly Oct 9, 2024
fa072a5
Merge pull request #27729 from MetaMask/master-sync
Gudahtt Oct 9, 2024
b9a24a7
fix: trying to access an undefined object in swaps review quote compo…
jclancy93 Oct 9, 2024
50dceb5
fix: remove old phishfort list from clients (#27743)
AugmentedMode Oct 9, 2024
687cf3a
ci: followup to CircleCI Sentry reporting (#27548)
HowardBraham Oct 10, 2024
97758a6
feat: upgrade assets-controllers to v38.2.0 (#27629)
sahar-fehri Oct 10, 2024
11b9bd4
feat: Release Chain Permissions (#27561)
NidhiKJha Oct 10, 2024
86525fd
chore: bump profile-sync-controller to 0.9.7 (#27749)
mathieuartu Oct 10, 2024
04ba878
fix(btc): fix jazzicons generations (#27662)
ccharly Oct 10, 2024
68dd6f5
feat: add network picker to AssetPicker (#26559)
micaelae Oct 10, 2024
875ab21
fix: updated toasts component and copy (#27656)
NidhiKJha Oct 10, 2024
bfde1da
fix: SIWE signature page displays parsed URI instead of domain (#27754)
pedronfigueiredo Oct 10, 2024
b08b374
fix: issue with Snap title in Snap Authorship Header (#27752)
david0xd Oct 10, 2024
7d7f017
fix: Replace 'transaction fees' with 'network fees' in the insufficie…
pedronfigueiredo Oct 10, 2024
dc3fa10
docs: remove outdated Medium link, update "Twitter" to "X" (#26692)
davidmurdoch Oct 10, 2024
0798717
chore(3212): remove alert settings (#27709)
vinnyhoward Oct 10, 2024
61adc78
feat: adds the new default settings view to onboarding (#24562)
zone-live Oct 10, 2024
1bd1fa4
feat: Token send heading component (#27562)
pedronfigueiredo Oct 10, 2024
78e5866
feat: support gas fee flows in standard swaps (#27612)
matthewwalsh0 Oct 11, 2024
05dda70
test: Onboarding: Fix vault-decryption-chrome.spec.js (#27779)
darkwing Oct 11, 2024
a883924
Merge origin/develop into master-sync
hjetpoluru Oct 11, 2024
ca1281b
fix(snaps): Restore confirmation switching on routed confirmation (#2…
GuillaumeRx Oct 11, 2024
a4484f2
test: [POM] Migrate transaction with snap account e2e tests to page o…
chloeYue Oct 11, 2024
39e0251
chore: update Trezor Connect to v9.4.0, remove workarounds (#27112)
vthomas13 Oct 11, 2024
e4c71b7
chore: remove token list display component (#27772)
bergeron Oct 11, 2024
146779d
chore: remove old token details page (#27774)
bergeron Oct 11, 2024
726aa05
test: Fix Vault Decryptor Page e2e test on develop branch (#27794)
chloeYue Oct 11, 2024
f2f180b
ci: Improve validation for `sentry:publish` script (#26580)
Gudahtt Oct 12, 2024
f9ec0e0
fix: disable balance checker for Sepolia in account tracker (#27763)
cryptodev-2s Oct 12, 2024
c678db2
fix: sticky footer UI issue on Snaps Home Page in extended view (#27799)
david0xd Oct 14, 2024
ca14e7b
ci: Revert minimum E2E timeout to 20 minutes (#27827)
FrederikBolding Oct 14, 2024
1f1e142
fix: Fix Snaps usage of PhishingController (#27817)
FrederikBolding Oct 14, 2024
bf31876
feat: remove phishing detection from onboarding Security group (#27819)
jonybur Oct 14, 2024
d9d6fab
fix: no connected state for permissions page (#27660)
NidhiKJha Oct 14, 2024
90873fd
feat: Added metrics for edit networks and accounts (#27820)
NidhiKJha Oct 14, 2024
acbb17e
revert: use networkClientId to resolve chainId in PPOM Middleware (#2…
jiexi Oct 14, 2024
cedabc6
feat: preferences controller to base controller v2 (#27398)
kanthesha Oct 14, 2024
59dc0cd
feat: Create a quality gate for typescript coverage (#27717)
itsyoboieltr Oct 14, 2024
f523617
chore: Add react-beautiful-dnd to deprecated packages list (#27856)
FrederikBolding Oct 15, 2024
670d9cd
fix(multichain): fix eth send flow (from dapp) when a btc account is …
ccharly Oct 15, 2024
0793e75
fix: dismiss addToken modal for mmi (#27855)
sahar-fehri Oct 15, 2024
f880da8
fix: Reset nonce as network is switched (#27789)
jpuri Oct 15, 2024
85bf4c3
perf: include custom traces in benchmark results (#27701)
matthewwalsh0 Oct 15, 2024
3452eb9
fix: flaky test `MultiRpc: should select rpc from settings @no-mmi` (…
seaona Oct 15, 2024
5814224
fix: hackily wait longer for linea swap approval tx to increase chanc…
martahj Oct 15, 2024
2b45577
fix: flaky test `Add account should not affect public address when us…
seaona Oct 15, 2024
581b7fb
fix: updated permissions flow copy changes (#27658)
NidhiKJha Oct 15, 2024
b410e09
feat: update copy for 'Default settings' (#27821)
jonybur Oct 15, 2024
bd018b2
fix: "Update Network: should update added rpc url for exis..." flaky …
hjetpoluru Oct 15, 2024
988156b
feat: use messenger in AccountTracker to get Preferences state (#27711)
cryptodev-2s Oct 15, 2024
cd820ef
fix: phishing test to not check c2 domains (#27846)
AugmentedMode Oct 15, 2024
cc47ff9
fix: nonce value when there are multiple transactions in parallel (#2…
jpuri Oct 15, 2024
dc0dc67
feat: upgrade assets-controllers to v38.3.0 (#27755)
sahar-fehri Oct 15, 2024
82e5a45
test(TXL-308): initial e2e for stx using swaps (#27215)
dbrans Oct 15, 2024
a770169
chore: remove unused swaps code (#27679)
martahj Oct 15, 2024
42e5eab
fix: SENTRY_DSN_FAKE problem (#27881)
HowardBraham Oct 15, 2024
3f69851
test(mock-e2e): add private domains logic for the privacy report (#27…
ccharly Oct 16, 2024
bb2e2a9
fix: flaky test `Snap Account Signatures and Disconnects can connect …
seaona Oct 16, 2024
0edfb48
fix: flaky test `Wallet Revoke Permissions should revoke eth_accounts…
seaona Oct 16, 2024
95045ed
fix: flaky test `ERC721 NFTs testdapp interaction should prompt users…
seaona Oct 16, 2024
ec4fb5f
fix: flaky test `Permissions sets permissions and connect to Dapp` (#…
seaona Oct 16, 2024
130bdbf
test: [POM] Migrate signature with snap account e2e tests to page obj…
devin-ai-integration[bot] Oct 16, 2024
04b17ff
Merge pull request #27793 from MetaMask/master-sync (following v12.4.1)
danjm Oct 16, 2024
71de55b
fix: flaky test `ERC1155 NFTs testdapp interaction should batch trans…
seaona Oct 16, 2024
fd1fad8
feat: Use requested permissions as default selected values for AmonHe…
jiexi Oct 16, 2024
56ed693
fix: Contract Interaction - cannot read the property `text_signature`…
vinistevam Oct 16, 2024
bf87d72
feat: Adding typed sign support for NFT permit (#27796)
jpuri Oct 16, 2024
a1e0b71
test: set ENABLE_MV3 automatically (#27748)
HowardBraham Oct 16, 2024
6d9cc1f
feat: use asset pickers with network dropdown in cross-chain swaps pa…
micaelae Oct 16, 2024
526d3ec
fix: updated edit modals (#27623)
NidhiKJha Oct 16, 2024
601b5fa
fix: Onboarding: Code style nits (#27767)
darkwing Oct 16, 2024
ccc5aad
chore: update @metamask/bitcoin-wallet-snap to 0.7.0 (#27730)
ccharly Oct 16, 2024
d1d469e
chore: Bump Snaps packages (#27376)
Mrtenz Oct 16, 2024
aebd94a
fix: swapQuotesError as a property in the reported metric (#27712)
ejwessel Oct 16, 2024
70e2c08
fix(deps): update from eth-rpc-errors to @metamask/rpc-errors (cause …
legobeat Oct 16, 2024
55d0972
fix: SonarCloud for forks (#27700)
itsyoboieltr Oct 17, 2024
01ea106
fix: fall back to bundled chainlist (#23392)
legobeat Oct 17, 2024
935ad43
test: Update test-dapp to verison 8.7.0 (#27816)
pnarayanaswamy Oct 17, 2024
2afe52e
feat(logging): add extension request logging and retrieval (#27655)
albertolive Oct 17, 2024
bbba7c5
fix: flaky tests `Add existing token using search renders the balance…
seaona Oct 17, 2024
043ea3f
chore: bump `@metamask/eth-snap-keyring` to version 4.4.0 (#27864)
ccharly Oct 17, 2024
f58d598
fix: flaky test `Vault Decryptor Page is able to decrypt the vault pa…
seaona Oct 17, 2024
dc48117
feat: Add transaction flow and details sections (#27654)
pedronfigueiredo Oct 17, 2024
93fbaaf
feat(TXL-435): turn smart transactions on by default for new users (#…
dbrans Oct 17, 2024
bf475ee
feat: convert AlertController to typescript (#27764)
kanthesha Oct 17, 2024
327a260
fix: fix currency display when tokenToFiatConversion rate is not avai…
sahar-fehri Oct 17, 2024
fac4422
feat: NFT permit simulations (#27825)
jpuri Oct 17, 2024
654dff7
fix: add APE network icon (#27841)
sahar-fehri Oct 17, 2024
9716e94
fix: bump `@metamask/ppom-validator` from `0.34.0` to `0.35.1` (#27939)
cryptodev-2s Oct 17, 2024
35b86fc
fix: hide options menu that was being shown for preinstalled Snaps (#…
david0xd Oct 17, 2024
02f7ec4
fix: bump message signing snap to support portfolio automatic connect…
matteoscurati Oct 18, 2024
1648b83
test: [POM] Migrate contract interaction with snap account e2e tests …
devin-ai-integration[bot] Oct 18, 2024
ce8eeb1
chore: add testing-library/dom dependency (#27493)
cryptotavares Oct 18, 2024
079da08
chore: bump signature controller to remove message managers (#27787)
matthewwalsh0 Oct 18, 2024
776bc1e
feat: dapp initiated token transfer (#27875)
pedronfigueiredo Oct 18, 2024
eedeb24
chore(deps): upgrade from json-rpc-engine to @metamask/json-rpc-engin…
legobeat Oct 18, 2024
36bde61
feat: Convert AppStateController to typescript (#27572)
kanthesha Oct 18, 2024
9b370bd
feat: add “Incomplete Asset Displayed” metric & fix: should only set …
digiwand Oct 18, 2024
c44fb0b
fix: lint-lockfile flaky job by changing resources from medium to med…
seaona Oct 18, 2024
9ac0364
fix: flaky test `Confirmation Redesign ERC721 Approve Component Submi…
seaona Oct 18, 2024
7ae2c94
feat: add BTC send flow (#27964)
montelaidev Oct 18, 2024
e8bc6a5
perf: Create custom trace to measure performance of opening the accou…
MajorLift Oct 18, 2024
a9df78b
test: Remove delays from onboarding tests (#27961)
darkwing Oct 18, 2024
6794a10
chore: Disable account syncing in prod (#27943)
danjm Oct 19, 2024
4eaeb68
fix(snaps): Remove arrows of custom UI inputs (#27953)
GuillaumeRx Oct 19, 2024
f416f1e
feat: add migration 131 (#27364)
montelaidev Oct 21, 2024
15962f7
feat(metametrics): use specific `account_hardware_type` for OneKey de…
dawnseeker8 Oct 21, 2024
29e1c5b
fix: Automatically expand first insight (#27872)
FrederikBolding Oct 21, 2024
81f4678
fix: error in navigating between transaction when one of the transact…
jpuri Oct 21, 2024
6173a13
test: Completing missing step for import ERC1155 token origin dapp in…
NiranjanaBinoy Oct 21, 2024
82ad3b4
Merge origin/develop into master-sync
benjisclowder Oct 21, 2024
7d376e4
Merge pull request #27935 from MetaMask/master-sync
danjm Oct 21, 2024
f995e3c
ci: reduced Sentry frequency on CircleCI develop (#27912)
HowardBraham Oct 21, 2024
30d7f1c
Version v12.6.0
metamaskbot Oct 21, 2024
b940d04
fix: adjust spacing of quote rate in swaps (#28051)
martahj Oct 23, 2024
77cbfe8
fix: cherry-pick: Gas changes for low Max base fee and Priority fee (…
pedronfigueiredo Oct 24, 2024
d1da860
fix: Cherry-pick Support dynamic native token name on gas component (…
pedronfigueiredo Oct 24, 2024
a0c0e91
fix: cherry-pick: Fall back to token list for the token symbol (#2800…
pedronfigueiredo Oct 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 8 additions & 12 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,11 +118,9 @@ workflows:
- prep-deps
- get-changed-files-with-git-diff:
filters:
branches:
ignore:
- master
requires:
- prep-deps
branches:
ignore:
- master
- test-deps-audit:
requires:
- prep-deps
Expand Down Expand Up @@ -360,11 +358,10 @@ workflows:
value: << pipeline.git.branch >>
jobs:
- prep-deps
- get-changed-files-with-git-diff:
requires:
- prep-deps
- get-changed-files-with-git-diff
- validate-locales-only:
requires:
- prep-deps
- get-changed-files-with-git-diff
- test-lint:
requires:
Expand Down Expand Up @@ -501,7 +498,6 @@ jobs:
- run: sudo corepack enable
- attach_workspace:
at: .
- gh/install
- run:
name: Get changed files with git diff
command: npx tsx .circleci/scripts/git-diff-develop.ts
Expand Down Expand Up @@ -1012,7 +1008,7 @@ jobs:
command: ./development/shellcheck.sh

test-lint-lockfile:
executor: node-browsers-medium
executor: node-browsers-medium-plus
steps:
- run: *shallow-git-clone-and-enable-vnc
- run: sudo corepack enable
Expand Down Expand Up @@ -1254,7 +1250,7 @@ jobs:
command: mv ./builds-test-flask-mv2 ./builds
- run:
name: test:e2e:firefox:flask
command: ENABLE_MV3=false .circleci/scripts/test-run-e2e.sh yarn test:e2e:firefox:flask
command: .circleci/scripts/test-run-e2e.sh yarn test:e2e:firefox:flask
no_output_timeout: 5m
- store_artifacts:
path: test-artifacts
Expand Down Expand Up @@ -1397,7 +1393,7 @@ jobs:
command: mv ./builds-test-mv2 ./builds
- run:
name: test:e2e:firefox
command: ENABLE_MV3=false .circleci/scripts/test-run-e2e.sh yarn test:e2e:firefox
command: .circleci/scripts/test-run-e2e.sh yarn test:e2e:firefox
no_output_timeout: 5m
- store_artifacts:
path: test-artifacts
Expand Down
101 changes: 64 additions & 37 deletions .circleci/scripts/git-diff-develop.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1,42 @@
import { hasProperty } from '@metamask/utils';
import { exec as execCallback } from 'child_process';
import fs from 'fs';
import path from 'path';
import { promisify } from 'util';

const exec = promisify(execCallback);

// The CIRCLE_PR_NUMBER variable is only available on forked Pull Requests
const PR_NUMBER =
process.env.CIRCLE_PR_NUMBER ||
process.env.CIRCLE_PULL_REQUEST?.split('/').pop();

const MAIN_BRANCH = 'develop';
const SOURCE_BRANCH = `refs/pull/${PR_NUMBER}/head`;

const CHANGED_FILES_DIR = 'changed-files';

type PRInfo = {
base: {
ref: string;
};
body: string;
};

/**
* Get the target branch for the given pull request.
* Get JSON info about the given pull request
*
* @returns The name of the branch targeted by the PR.
* @returns JSON info from GitHub
*/
async function getBaseRef(): Promise<string | null> {
if (!process.env.CIRCLE_PULL_REQUEST) {
async function getPrInfo(): Promise<PRInfo | null> {
if (!PR_NUMBER) {
return null;
}

// We're referencing the CIRCLE_PULL_REQUEST environment variable within the script rather than
// passing it in because this makes it easier to use Bash parameter expansion to extract the
// PR number from the URL.
const result = await exec(`gh pr view --json baseRefName "\${CIRCLE_PULL_REQUEST##*/}" --jq '.baseRefName'`);
const baseRef = result.stdout.trim();
return baseRef;
return await (
await fetch(
`https://api.github.com/repos/${process.env.CIRCLE_PROJECT_USERNAME}/${process.env.CIRCLE_PROJECT_REPONAME}/pulls/${PR_NUMBER}`,
)
).json();
}

/**
Expand All @@ -34,8 +47,10 @@ async function getBaseRef(): Promise<string | null> {
*/
async function fetchWithDepth(depth: number): Promise<boolean> {
try {
await exec(`git fetch --depth ${depth} origin develop`);
await exec(`git fetch --depth ${depth} origin ${process.env.CIRCLE_BRANCH}`);
await exec(`git fetch --depth ${depth} origin "${MAIN_BRANCH}"`);
await exec(
`git fetch --depth ${depth} origin "${SOURCE_BRANCH}:${SOURCE_BRANCH}"`,
);
return true;
} catch (error: unknown) {
console.error(`Failed to fetch with depth ${depth}:`, error);
Expand All @@ -59,18 +74,16 @@ async function fetchUntilMergeBaseFound() {
await exec(`git merge-base origin/HEAD HEAD`);
return;
} catch (error: unknown) {
if (
error instanceof Error &&
hasProperty(error, 'code') &&
error.code === 1
) {
console.error(`Error 'no merge base' encountered with depth ${depth}. Incrementing depth...`);
if (error instanceof Error && 'code' in error) {
console.error(
`Error 'no merge base' encountered with depth ${depth}. Incrementing depth...`,
);
} else {
throw error;
}
}
}
await exec(`git fetch --unshallow origin develop`);
await exec(`git fetch --unshallow origin "${MAIN_BRANCH}"`);
}

/**
Expand All @@ -82,55 +95,69 @@ async function fetchUntilMergeBaseFound() {
*/
async function gitDiff(): Promise<string> {
await fetchUntilMergeBaseFound();
const { stdout: diffResult } = await exec(`git diff --name-only origin/HEAD...${process.env.CIRCLE_BRANCH}`);
const { stdout: diffResult } = await exec(
`git diff --name-only "origin/HEAD...${SOURCE_BRANCH}"`,
);
if (!diffResult) {
throw new Error('Unable to get diff after full checkout.');
throw new Error('Unable to get diff after full checkout.');
}
return diffResult;
}

function writePrBodyToFile(prBody: string) {
const prBodyPath = path.resolve(CHANGED_FILES_DIR, 'pr-body.txt');
fs.writeFileSync(prBodyPath, prBody.trim());
console.log(`PR body saved to ${prBodyPath}`);
}

/**
* Stores the output of git diff to a file.
* Main run function, stores the output of git diff and the body of the matching PR to a file.
*
* @returns Returns a promise that resolves when the git diff output is successfully stored.
* @returns Returns a promise that resolves when the git diff output and PR body is successfully stored.
*/
async function storeGitDiffOutput() {
async function storeGitDiffOutputAndPrBody() {
try {
// Create the directory
// This is done first because our CirleCI config requires that this directory is present,
// even if we want to skip this step.
const outputDir = 'changed-files';
fs.mkdirSync(outputDir, { recursive: true });
fs.mkdirSync(CHANGED_FILES_DIR, { recursive: true });

console.log(`Determining whether this run is for a PR targetting ${MAIN_BRANCH}`)
if (!process.env.CIRCLE_PULL_REQUEST) {
console.log("Not a PR, skipping git diff");
console.log(
`Determining whether this run is for a PR targeting ${MAIN_BRANCH}`,
);
if (!PR_NUMBER) {
console.log('Not a PR, skipping git diff');
return;
}

const baseRef = await getBaseRef();
if (baseRef === null) {
console.log("Not a PR, skipping git diff");
const prInfo = await getPrInfo();

const baseRef = prInfo?.base.ref;
if (!baseRef) {
console.log('Not a PR, skipping git diff');
return;
} else if (baseRef !== MAIN_BRANCH) {
console.log(`This is for a PR targeting '${baseRef}', skipping git diff`);
writePrBodyToFile(prInfo.body);
return;
}

console.log("Attempting to get git diff...");
console.log('Attempting to get git diff...');
const diffOutput = await gitDiff();
console.log(diffOutput);

// Store the output of git diff
const outputPath = path.resolve(outputDir, 'changed-files.txt');
const outputPath = path.resolve(CHANGED_FILES_DIR, 'changed-files.txt');
fs.writeFileSync(outputPath, diffOutput.trim());

console.log(`Git diff results saved to ${outputPath}`);

writePrBodyToFile(prInfo.body);

process.exit(0);
} catch (error: any) {
console.error('An error occurred:', error.message);
process.exit(1);
}
}

storeGitDiffOutput();
storeGitDiffOutputAndPrBody();
4 changes: 2 additions & 2 deletions .circleci/scripts/test-run-e2e-timeout-minutes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { filterE2eChangedFiles } from '../../test/e2e/changedFilesUtil';

const changedOrNewTests = filterE2eChangedFiles();

//15 minutes, plus 3 minutes for every changed file, up to a maximum of 30 minutes
const extraTime = Math.min(15 + changedOrNewTests.length * 3, 30);
// 20 minutes, plus 3 minutes for every changed file, up to a maximum of 30 minutes
const extraTime = Math.min(20 + changedOrNewTests.length * 3, 30);

console.log(extraTime);
1 change: 1 addition & 0 deletions .depcheckrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ ignores:
- '@babel/plugin-transform-logical-assignment-operators'
# trezor
- 'ts-mixer'
- '@testing-library/dom'

# files depcheck should not parse
ignorePatterns:
Expand Down
6 changes: 4 additions & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -307,16 +307,18 @@ module.exports = {
{
files: [
'**/__snapshots__/*.snap',
'app/scripts/controllers/app-state.test.js',
'app/scripts/controllers/app-state-controller.test.ts',
'app/scripts/controllers/mmi-controller.test.ts',
'app/scripts/controllers/alert-controller.test.ts',
'app/scripts/metamask-controller.actions.test.js',
'app/scripts/detect-multiple-instances.test.js',
'app/scripts/controllers/bridge.test.ts',
'app/scripts/controllers/swaps/**/*.test.js',
'app/scripts/controllers/swaps/**/*.test.ts',
'app/scripts/controllers/metametrics.test.js',
'app/scripts/controllers/permissions/**/*.test.js',
'app/scripts/controllers/preferences.test.js',
'app/scripts/controllers/preferences-controller.test.ts',
'app/scripts/controllers/account-tracker-controller.test.ts',
'app/scripts/lib/**/*.test.js',
'app/scripts/metamask-controller.test.js',
'app/scripts/migrations/*.test.js',
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/fitness-functions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@ name: Fitness Functions CI

on:
pull_request:
types: [assigned, opened, synchronize, reopened]
types:
- opened
- reopened
- synchronize

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down
17 changes: 15 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,15 @@ name: Main

on:
push:
branches: [develop, master]
branches:
- develop
- master
pull_request:
types:
- opened
- reopened
- synchronize
merge_group:

jobs:
check-workflows:
Expand All @@ -21,11 +28,16 @@ jobs:
run: ${{ steps.download-actionlint.outputs.executable }} -color
shell: bash

run-tests:
name: Run tests
uses: ./.github/workflows/run-tests.yml

all-jobs-completed:
name: All jobs completed
runs-on: ubuntu-latest
needs:
- check-workflows
- run-tests
outputs:
PASSED: ${{ steps.set-output.outputs.PASSED }}
steps:
Expand All @@ -37,7 +49,8 @@ jobs:
name: All jobs pass
if: ${{ always() }}
runs-on: ubuntu-latest
needs: all-jobs-completed
needs:
- all-jobs-completed
steps:
- name: Check that all jobs have passed
run: |
Expand Down
Loading
Loading