Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
246 commits
Select commit Hold shift + click to select a range
ad31020
fix(predict): update Polymarket adapter contract addresses (#29573)
matallui Apr 30, 2026
84250b3
ci: improve E2E merge gate, add yarn cache, rename flakiness label (#…
jvbriones Apr 30, 2026
862bf76
test: add automated build environment display to RC and production bu…
sleepytanya Apr 30, 2026
6e2fa57
ci: skip E2E for locale translation changes (#29565)
Qbandev Apr 30, 2026
1459869
test(e2e): mock static asset endpoints to remove from allowlist (MMQA…
chrisleewilcox Apr 30, 2026
8d4e444
test: stabilize swap deeplink smoke after sendToHome on iOS (#29523)
davibroc Apr 30, 2026
bc0ab56
fix: stabilize useWithdrawalRequests selectors to prevent unnecessary…
vinnyhoward May 1, 2026
46018a0
chore: Revert "fix: Zip iOS .app bundles for runway bucket" (#29600)
Cal-L May 1, 2026
6efa0ce
chore: fence off legacy BN.js helpers with lint + CODEOWNERS (#29386)
weitingsun May 1, 2026
cc44460
feat(perps): force unified account (#29492)
aganglada May 1, 2026
5c58a8c
feat: add assets migration selectors (#29423)
bergarces May 1, 2026
4e72f3f
test(e2e): mock signature-insights to remove from allowlist (MMQA-177…
chrisleewilcox May 1, 2026
da43681
feat: explore page v2 (#29473)
juanmigdr May 1, 2026
4d48e72
test: skip changing the slippage in Swap smoke test due to bug (#29618)
davibroc May 1, 2026
ac1d674
fix: background bridge event leak (#29040)
wenfix May 1, 2026
70aa719
feat: replacing stubbed modules in Money Home (#29454)
Matt561 May 1, 2026
9b73aff
chore: Update main-dev for expo and release build configurations (#29…
Cal-L May 1, 2026
484fa2b
feat: MUSD-691 clean up deprecated quick convert code (#29351)
Matt561 May 1, 2026
6b9885e
chore: pass cached security data from token list to token details cp-…
sahar-fehri May 4, 2026
2d09677
chore: don't fire social leaderboard queries while wallet is locked (…
zone-live May 4, 2026
1e6a687
chore: add Sentry Size Analysis uploads to nightly builds (#28913)
andrepimenta May 4, 2026
9f2b444
test: unblock CI (#29649)
christopherferreira9 May 4, 2026
a614776
perf(accessibility): fix iOS accessibility in WhatsHappening and TopT…
javiergarciavera May 4, 2026
ce9091b
fix: money account withdraw should not be enabled in case there is no…
jpuri May 4, 2026
b3d1f40
ci: apply e2e readiness label for PRs (#29650)
jvbriones May 4, 2026
57a2e9c
refactor(perps): split AccountState balances + mode-aware spot fold (…
abretonc7s May 4, 2026
2e7fdfb
fix(perps): non-EVM address passed to HyperLiquid validator via usePe…
abretonc7s May 4, 2026
355c9b6
feat: auto slippage support for RWA tokens cp-7.76.0 (#29592)
satyajeetkolhapure May 4, 2026
5ac9bdf
feat: add selector helpers (#29625)
n3ps May 4, 2026
2bc0e4e
chore: updated DSRN to v22 (#29596)
brianacnguyen May 4, 2026
abe3349
feat(hw): add QR scan error handling (#29388)
montelaidev May 4, 2026
9285bc1
test: improves performance on appium runs (#29498)
christopherferreira9 May 4, 2026
c94186f
refactor: dedupe swaps quote data validation calls (#29626)
infiniteflower May 4, 2026
27ca7c4
chore(rewards): ondo gm leaderboard page alt select tier (#29480)
VGR-GIT May 4, 2026
c8d26e2
fix: design fixes on money account pages (#29355)
jpuri May 4, 2026
92e78c5
fix: forward route params on intra-navigator screen transitions in se…
OGPoyraz May 4, 2026
8394574
chore(rewards): add notify button for upcoming campaigns (#29590)
sophieqgu May 4, 2026
9c816ed
test: adds mock for CLOB auth in prediction (#29663)
christopherferreira9 May 4, 2026
346a5a7
ci: skip smart e2e ai selection for cherry-pick PRs targeting release…
chloeYue May 4, 2026
f110b3f
test(e2e): mock NFT API to remove from allowlist (MMQA-1781) (#29620)
chrisleewilcox May 4, 2026
4b55117
feat(card): show compact spending limit on Card Home for Solana limit…
Brunonascdev May 4, 2026
8ad83d1
test: fix typo in url constant in BackgroundBridge test (#28762)
jiexi May 4, 2026
8437791
chore(release): Bump main version to 7.77.0 (#29585)
metamaskbotv2[bot] May 4, 2026
abba92e
Merge origin/main into stable-main-7.75.0
metamaskbot May 4, 2026
d957987
chore(release): sync stable to main for version 7.75.0 (#29687)
metamaskbotv2[bot] May 4, 2026
082d3d1
fix: confirmations unit tests; pay-with-modal and usePendingAmountAle…
tommasini May 4, 2026
fd40dc0
chore: revert formatUtils of ordinal rank test (#29493)
tommasini May 4, 2026
6684df3
chore: Remove permissions settings feature flag (#29685)
adonesky1 May 4, 2026
cc4cc5c
feat: add deeplink handler for leaderboard links (#29591)
Bigshmow May 4, 2026
813c415
chore: bump axios to 1.15.1 (#29711)
tommasini May 5, 2026
03cf010
fix: top traders section disappears on fetch error (#29501)
zone-live May 5, 2026
18a44c7
chore: TSA-488-1 bump ai-controller (#29678)
joaosantos15 May 5, 2026
fa695f6
fix(ci): add restore-keys and continue-on-error to yarn cache (#29277)
alucardzom May 5, 2026
9348a74
fix(ci): improve CocoaPods install resilience against CDN rate limiti…
alucardzom May 5, 2026
4b756de
ci: extract mobile CI status gate (#29619)
Qbandev May 5, 2026
c03ef59
feat(rewards): add Perps Trading Campaign (#29323)
VGR-GIT May 5, 2026
576ce80
feat: display 5 year projected balance on money account deposit page …
jpuri May 5, 2026
dd0a6ab
test: MMQA -1712-[Mobile] Update the mobile e2e tests to account for …
LeVinhGithub May 5, 2026
7ec36f0
chore: explore v2 nit fixes (#29720)
juanmigdr May 5, 2026
b80bef9
feat: add hook for updating MM pay transaction amount update for mone…
jpuri May 5, 2026
e15e997
fix(BETR-413): pass originalTransactionId for intent bridge history c…
dawnseeker8 May 5, 2026
3751b07
feat: support max money account deposit for ERC-20 tokens (#29605)
jpuri May 5, 2026
d4356fa
feat: tempo disable tx management for testnet moderato (#29425)
maxime-oe May 5, 2026
8a8f3bb
feat(ramp): bypass order-processing redirect in headless flows (Phase…
saustrie-consensys May 5, 2026
b18b55b
feat: bump Accounts dependencies (#29621)
hmalik88 May 5, 2026
2adf64f
fix(perps): suppress transient HL SDK errors from Sentry (#29642)
abretonc7s May 5, 2026
dd8cb1d
chore(card): migrate Card BigInt usage to new library (#29679)
Brunonascdev May 5, 2026
f3a256d
fix: display non ETH native transactions in the native token detail p…
Battambang May 5, 2026
4e82ec3
feat: replace assets state references in Engine (#29727)
bergarces May 5, 2026
0b8d638
fix: transaction page display and alerts for money account transactio…
jpuri May 5, 2026
ee27c28
fix: make in-app webview back button tappable on iOS (#29693)
tommasini May 5, 2026
aa0bd2a
feat(analytics): emit dapp_name + dapp_url on Remote Connection Reque…
adonesky1 May 5, 2026
f5da506
test(e2e): mock popular network RPCs to remove from allowlist (MMQA-1…
chrisleewilcox May 5, 2026
e8e742e
feat: TSA 488-2 Whats Happening expanded view + Explore page (#29681)
joaosantos15 May 5, 2026
6d50069
chore: New Crowdin Translations by GitHub Action cp-7.76.0 (#29535)
metamaskbotv2[bot] May 5, 2026
dbfe481
fix: resolve token block explorer from network configurations (#29686)
wachunei May 5, 2026
95e7280
fix(activity): restore Perps after popular networks without forcing E…
wachunei May 5, 2026
fcd05a6
fix: resolve `ORDER_PRICE_REQUIRED` error on perps position flip (#29…
gambinish May 5, 2026
0a39d7f
fix: MUSD-771 updated selectAccountTokensAcrossChainsUnified to selec…
Matt561 May 5, 2026
3e8cfca
chore: set user timezone in chart (#29654)
sahar-fehri May 5, 2026
d5c2f24
chore(rewards): add toast to enable push notification (#29531)
sophieqgu May 5, 2026
29f05cf
test: add lint rule to prevent new snapshot tests (#28582)
cortisiko May 5, 2026
a47e728
chore: Disable trigger maps on Bitrise (#29764)
Cal-L May 5, 2026
dedb5dd
chore: Validate envs and secrets during build time (#29634)
Cal-L May 5, 2026
d8db24a
fix: wrap vault backup initial read in try/catch to survive Android K…
tommasini May 6, 2026
7da7450
feat: add TabsIcon component family with icon tabs, scroll overflow d…
vinnyhoward May 6, 2026
5744d47
test(e2e): mock test-dapp fox SVG and empty ALLOWLISTED_URLS (MMQA-17…
chrisleewilcox May 6, 2026
fe942cf
test(e2e): remove Tenderly hosts from E2E allowlist (MMQA-1787) (#29760)
chrisleewilcox May 6, 2026
036608e
feat: first-time recipient alert on Send flow (#28650)
vinistevam May 6, 2026
d55e006
fix: update font label in token details (#29710)
sahar-fehri May 6, 2026
5011f84
chore: update @metamask/transaction-pay-controller to version 21.0.0…
jpuri May 6, 2026
08675af
feat(rewards): add Perps Trading campaign participant outcome (#29648)
VGR-GIT May 6, 2026
794a997
test: add system tests tags (#29759)
pnarayanaswamy May 6, 2026
2e4b3d7
fix: migrate Sei explorer from Seitrace to Seiscan (#29221)
jeremytsng May 6, 2026
9432aa0
fix(MUSD-701): use Money Account balance in Add money sheet (#29734)
Kureev May 6, 2026
c4049aa
fix: metrics functionality fixes for money account transactions (#29723)
jpuri May 6, 2026
6b17dc5
fix(predict): keep live position data in sync across screens (#29527)
caieu May 6, 2026
c2e7531
feat(card): update cashback to mUSD back on Card feature (#29683)
Brunonascdev May 6, 2026
4863651
refactor(accounts): migrate wallet AccountSelector to design system (…
gantunesr May 6, 2026
b14edae
chore: add advanced charts traces cp-7.76.0 (#29497)
sahar-fehri May 6, 2026
7f3f590
refactor: migrate `RevealSRP` and `EditMultichainAccountName` to desi…
gantunesr May 6, 2026
38817db
test: migrates the WalletConnect performance test (#29785)
christopherferreira9 May 6, 2026
5dd99a1
feat: add new hardware wallet signing qr code (#29737)
montelaidev May 6, 2026
41f6b0f
fix: validate type of security data in token details and fetch when n…
sahar-fehri May 6, 2026
85015f7
docs: e2e docu updated to include exceptions for release branches (#2…
jvbriones May 6, 2026
7675a57
refactor: migrate backup/sync UI to design-system (#29444)
gantunesr May 6, 2026
aac019d
chore: adds "whats happening" to the Explore view (#29778)
zone-live May 6, 2026
eedc67b
feat(MUSD-739): hide Metal card outside US (#29735)
Kureev May 6, 2026
a6572a0
fix(accounts): dynamically enable Money account keyrings and service …
ccharly May 6, 2026
a81c1ea
feat: MUSD-740, MUSD-746 — MetaMask Card section polish (#29646)
Kureev May 6, 2026
5bfeb29
fix(rewards): remove sign for rebalance events (#29802)
sophieqgu May 6, 2026
66b8511
feat: MUSD-737, MUSD-738 — Earnings section refresh (#29647)
Kureev May 6, 2026
43a99ef
fix: MUSD-772 fix earn deposits redirecting to activity view with no …
Matt561 May 6, 2026
9c50f9b
fix(rewards): localize campaign date (#29808)
sophieqgu May 6, 2026
34f3d4c
test: moves the fixture update spec file (#29801)
christopherferreira9 May 6, 2026
2433e3e
chore: add explore v2 metrics (#29732)
juanmigdr May 6, 2026
2686994
feat(mobile): add yarn cache to prepare job in release pipeline (#29793)
Qbandev May 6, 2026
3de0bcc
test: runs mm-connect tests on rc only for Samsung devices (#29805)
christopherferreira9 May 6, 2026
dba2c63
feat(ramp): surface headless buy errors as data (Phase 7) (#29612)
saustrie-consensys May 6, 2026
584d490
feat(MUSD-747): peek-and-hide Add money footer when stepper is visibl…
Kureev May 6, 2026
b283dbd
feat: hub page discovery tabs A/B test (#29193)
vinnyhoward May 6, 2026
f0c0bf8
chore: Remove redundant social keys (#29773)
Cal-L May 6, 2026
bf54b9b
feat(predict): remove CLOB v1 support and migrate to pUSD cp-7.76.0 (…
matallui May 6, 2026
ba4c881
chore: remove unused ContractBox temp components (#29816)
AndyMBridges May 6, 2026
4d20d7b
Merge origin/main into stable-main-7.75.1
metamaskbot May 6, 2026
fe91d51
fix(activity): correct EVM rows when non-EVM account selected (#29794)
wachunei May 6, 2026
6902301
chore(predict): enable world cup games for live sports (#29740)
caieu May 6, 2026
88b007a
fix: route DeFi empty-state CTA to Explore sites (#29552)
Prithpal-Sooriya May 6, 2026
b04526d
fix(Rewards): Ondo campaign text issues cp-7.76.0 (#29815)
Montoya May 6, 2026
071c665
chore(deps): upgrade design system packages (#29769)
georgewrmarshall May 6, 2026
e144b40
chore(release): sync stable to main for version 7.75.1 (#29818)
metamaskbotv2[bot] May 6, 2026
d28ce2e
ci: remove legacy Runway per-platform workflows (phase 2 cleanup) (#2…
weitingsun May 6, 2026
d33e9b2
feat: MUSD-741, MUSD-743, MUSD-744 — Money Home header polish + tab b…
Kureev May 6, 2026
b3c014c
feat(MUSD-431, MUSD-752): add Money balance card to wallet home (#29724)
Kureev May 6, 2026
8d9bcda
chore: What's Happening UI/UX polish (#29782)
zone-live May 6, 2026
33eaccf
feat: use account API v4 transactions (#29536)
n3ps May 6, 2026
0b6a6a0
test: 1/3 remove wdio folder dependencies (#29820)
cortisiko May 6, 2026
1de00bb
feat(money): Money Hub polish bundle (MUSD-728/729/730/731/732/733) (…
Kureev May 6, 2026
428bdda
refactor(earn): use MMDS HeaderStandard (#29702)
brianacnguyen May 6, 2026
73eaaf0
chore: add shared native-stack modal options (#29694)
weitingsun May 7, 2026
8208502
fix(Rewards): error when visiting rewards tab (#29823)
sophieqgu May 7, 2026
8136f4f
feat(money): swap bottom-bar Money icon for Dollar glyph (MUSD-773) (…
Kureev May 7, 2026
0beac7b
feat: update client id (#29776)
ieow May 7, 2026
ae4e8f0
feat: add CocoaPods specs cache to iOS production build (#29798)
Qbandev May 7, 2026
a492e34
feat: use shallow clone in prepare and emit-build-metadata jobs (#29807)
Qbandev May 7, 2026
7281395
test: add component view tests and skip duplicated smoke E2E (#28911)
racitores May 7, 2026
0a4a7b4
fix(locales): correct placeholder syntax in Turkish translations for …
PatrykLucka May 7, 2026
2c7c3e8
fix(ci): increase apt retry timeout to prevent kill EPERM crash (#29715)
alucardzom May 7, 2026
b22424a
fix: add token image fallback in AssetLogo (ASSETS-3156) (#29827)
Prithpal-Sooriya May 7, 2026
7a4f526
test: MMQA - 1711 - [Mobile] Update Predict e2e tests to enable featu…
LeVinhGithub May 7, 2026
e0d7d70
fix: show collection name in nft details (#29551)
Prithpal-Sooriya May 7, 2026
282bcd7
chore: add money deposit hook (#29487)
MoMannn May 7, 2026
e34c66e
ci: namespace runner trial control plane (#29557)
jluque0101 May 7, 2026
99e4557
chore: add Whats Happening segment events analytics (#29803)
zone-live May 7, 2026
967d357
ci(INFRA-3593): Phase 1 — Namespace cache for Linux CI trial (#29716)
alucardzom May 7, 2026
d55db0f
ci(INFRA-3595): Phase 3 — Namespace cache and GRADLE_USER_HOME fix fo…
alucardzom May 7, 2026
b701393
fix: show sort direction in filter bar in trending list (#29809)
sahar-fehri May 7, 2026
3c59b56
perf(accessibility): fix iOS accessibility in Predict components and …
javiergarciavera May 7, 2026
ec11b69
chore: align data fetch on stocks (#29795)
juanmigdr May 7, 2026
3e1cdcf
feat: replace assets state references for card (#29722)
bergarces May 7, 2026
99ff9c5
feat: replace assets state references confirmations (#29726)
bergarces May 7, 2026
b1d52ef
test: adds a retry to transaction finalized event checks (#29855)
christopherferreira9 May 7, 2026
37918d8
test: 2/3 Remove wdio folder: Migrate helpers out of wdio folder into…
cortisiko May 7, 2026
4bcdf93
chore: remove sites arrow (#29861)
juanmigdr May 7, 2026
c8800ec
test: add submit swap flag (#29869)
pnarayanaswamy May 7, 2026
69ab778
test: add nightly run flow for system tests (#29484)
pnarayanaswamy May 7, 2026
a515319
fix(rewards): Ondo token case inconsistency (#29871)
sophieqgu May 7, 2026
8203379
feat: add segment events for tabs UI (#29767)
vinnyhoward May 7, 2026
14422ab
chore: bullets sync during swipe and full-width sources sheet (#29851)
zone-live May 7, 2026
d0e444a
feat: swap add warning msg when EVM native reserve (#29712)
maxime-oe May 7, 2026
4711432
fix(perps): Mobile decimals on open orders (#29799)
abretonc7s May 7, 2026
3fe0354
ci: Add new translation workflow for releases (#29495)
Gudahtt May 7, 2026
d63cea6
refactor(perps): use MMDS HeaderStandard (#29703)
brianacnguyen May 7, 2026
89911ca
refactor(rewards): use MMDS HeaderStandard (#29706)
brianacnguyen May 7, 2026
229b997
refactor(trending): use MMDS HeaderStandard (#29707)
brianacnguyen May 7, 2026
dcaa40a
refactor(predict): use MMDS HeaderStandard (#29704)
brianacnguyen May 7, 2026
d4722b8
feat(STX-532): set gasIncluded to true on solana quote requests (#29692)
rarquevaux May 7, 2026
9bd66b0
feat: [MUSD-439] upgrade money account on navigation to money homepag…
Jwhiles May 7, 2026
2195a67
fix(money): scroll 'Your balance' heading with content (MUSD-779) (#2…
Kureev May 7, 2026
4f8e443
test: 3/3 Remove wdio folder (#29876)
cortisiko May 7, 2026
f2d69c4
fix(rewards): remove client cache for Ondo portfolio positions (#29868)
VGR-GIT May 7, 2026
538ad66
chore(rewards): fix campaign param extract (#29856)
VGR-GIT May 7, 2026
da38943
[skip ci] Bump version number to 4857
metamaskbot May 7, 2026
3fae9af
chore(runway): cherry-pick feat: allow custom sorting in perps from e…
runway-github[bot] May 8, 2026
500eff8
[skip ci] Bump version number to 4882
metamaskbot May 8, 2026
516dc48
chore: cherry-pick fix(homepage): hub page discovery tabs UX & scroll…
vinnyhoward May 8, 2026
0417b30
[skip ci] Bump version number to 4883
metamaskbot May 8, 2026
dbf4184
chore(runway): cherry-pick fix(activity): align EVM activity with acc…
runway-github[bot] May 12, 2026
6311304
chore(runway): cherry-pick fix: titles on explore search cp-7.77.0 (#…
runway-github[bot] May 12, 2026
283ec06
chore(runway): cherry-pick fix: fix trending label display cp-7.77.0 …
runway-github[bot] May 12, 2026
d4e37cb
[skip ci] Bump version number to 4923
metamaskbot May 12, 2026
72f15ce
chore(runway): cherry-pick fix: clear gas sponsorship flag for hardwa…
runway-github[bot] May 12, 2026
748a66f
[skip ci] Bump version number to 4924
metamaskbot May 12, 2026
9573a84
chore(runway): cherry-pick fix: skip useInsufficientNativeReserveErro…
runway-github[bot] May 12, 2026
904008f
[skip ci] Bump version number to 4925
metamaskbot May 12, 2026
4c94987
chore(runway): cherry-pick feat(predict): add confirmation hook plumb…
runway-github[bot] May 13, 2026
956efe7
[skip ci] Bump version number to 4932
metamaskbot May 13, 2026
22e885b
chore(runway): cherry-pick ci: re-enable CI on PRs targeting stable c…
runway-github[bot] May 13, 2026
e62aba3
[skip ci] Bump version number to 4935
metamaskbot May 13, 2026
c455273
chore(runway): cherry-pick feat(predict): add deposit wallet deposit …
runway-github[bot] May 13, 2026
d202f30
[skip ci] Bump version number to 4939
metamaskbot May 13, 2026
a6ef0bb
chore(runway): cherry-pick test: unblocks CI (#30132)
runway-github[bot] May 13, 2026
7198285
[skip ci] Bump version number to 4940
metamaskbot May 13, 2026
d21071d
chore(runway): cherry-pick feat(predict): add Deposit Wallet order fl…
runway-github[bot] May 13, 2026
8735599
[skip ci] Bump version number to 4941
metamaskbot May 13, 2026
ef7911f
chore: cherry-pick feat: hoist perps providers for homepage hub tabs …
vinnyhoward May 13, 2026
63c5a54
[skip ci] Bump version number to 4942
metamaskbot May 13, 2026
df62f82
chore(runway): cherry-pick test: improves websocket server teardown (…
runway-github[bot] May 13, 2026
71e9c08
chore(runway): cherry-pick feat(predict): add deposit wallet claim fl…
runway-github[bot] May 13, 2026
9342d0a
[skip ci] Bump version number to 4952
metamaskbot May 13, 2026
e81afcf
chore: sync stable into release/7.77.0 (post 7.76.3)
chloeYue May 13, 2026
e0ce2e9
chore(runway): cherry-pick fix(predict): disable Deposit Wallet withd…
runway-github[bot] May 13, 2026
4ccfa89
[skip ci] Bump version number to 4953
metamaskbot May 13, 2026
ea7c47c
Merge branch 'release/7.77.0' into sync-stable-7.76.3
chloeYue May 13, 2026
1a2787e
chore(runway): cherry-pick fix: hide gas sponsorship banner for hardw…
runway-github[bot] May 13, 2026
e0970c3
Merge branch 'release/7.77.0' into sync-stable-7.76.3
chloeYue May 13, 2026
ca790dc
[skip ci] Bump version number to 4954
metamaskbot May 13, 2026
d4ee3dd
chore(runway): cherry-pick fix:(cp-30138): skip blockaids validation…
runway-github[bot] May 14, 2026
dbda9ff
chore(runway): cherry-pick fix: graceful fallback for assets missing …
runway-github[bot] May 14, 2026
f05811b
[skip ci] Bump version number to 4966
metamaskbot May 14, 2026
750cc30
fix(predict): restore Polymarket adapter addresses on sync branch
chloeYue May 14, 2026
3d639ef
fix(test): remove duplicated jest.doMock blocks in multichain.test
chloeYue May 14, 2026
c558e63
Merge branch 'release/7.77.0' into sync-stable-7.76.3
chloeYue May 14, 2026
0fecdc7
chore(runway): cherry-pick chore: New Crowdin Translations by GitHub …
runway-github[bot] May 14, 2026
9a3976d
[skip ci] Bump version number to 4967
metamaskbot May 14, 2026
f333b26
chore: sync stable into release/7.77.0 (post 7.76.3) (#30152)
chloeYue May 14, 2026
3bb30cc
[skip ci] Bump version number to 4970
metamaskbot May 14, 2026
c162dde
chore(release): release-changelog/7.77.0 (#29950)
chloeYue May 14, 2026
e0b88b9
[skip ci] Bump version number to 4975
metamaskbot May 14, 2026
d7ffcee
chore(runway): cherry-pick fix(predict): stabilize Predict pay-with-a…
runway-github[bot] May 14, 2026
e50d2dd
[skip ci] Bump version number to 4980
metamaskbot May 14, 2026
839c3ae
chore(runway): cherry-pick fix: qr scanner appearing before the confi…
runway-github[bot] May 14, 2026
2835b26
[skip ci] Bump version number to 4985
metamaskbot May 14, 2026
e8dcfca
chore(runway): cherry-pick fix: improve Ledger error handling for dis…
runway-github[bot] May 14, 2026
163141b
[skip ci] Bump version number to 4986
metamaskbot May 14, 2026
ca34dae
chore(runway): cherry-pick fix: mUSD icon was showing up as the linea…
runway-github[bot] May 14, 2026
e07bf4b
[skip ci] Bump version number to 4987
metamaskbot May 14, 2026
87916d4
chore(runway): cherry-pick feat(predict): Bottom Sheet - Try Again To…
runway-github[bot] May 14, 2026
8d0012c
[skip ci] Bump version number to 4988
metamaskbot May 14, 2026
a9dedae
chore(runway): cherry-pick fix: cp-7.77.0 cp-7.78.0 missing metamask …
runway-github[bot] May 15, 2026
3e598ba
[skip ci] Bump version number to 5002
metamaskbot May 15, 2026
a8a95d8
chore(runway): cherry-pick fix: hw account abstraction migration (#30…
runway-github[bot] May 15, 2026
8c20de1
[skip ci] Bump version number to 5012
metamaskbot May 15, 2026
64bc698
[skip ci] Bump version number to 5016
metamaskbot May 15, 2026
4e19580
[skip ci] Bump version number to 5017
metamaskbot May 15, 2026
3930a44
ci: trigger CI for 7.77.0
chloeYue May 15, 2026
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
  •  
  •  
  •  
237 changes: 234 additions & 3 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,136 @@
/* eslint-disable import-x/no-commonjs */

/**
* Files still allowed to import deprecated `app/util/number/index.js` during
* the BN.js → BigInt migration. Kept in one array so the default import-fence
* override can exclude them while the follow-up override below re-applies only
* the expo-haptics / perps restrictions (see comments on those overrides).
*/
const utilNumberImportBurndownFiles = [
'app/component-library/components-temp/CustomSpendCap/CustomInput/CustomInput.tsx',
'app/component-library/components-temp/CustomSpendCap/CustomSpendCap.tsx',
'app/component-library/components-temp/Price/AggregatedPercentage/AggregatedPercentage.tsx',
'app/component-library/components-temp/Price/AggregatedPercentage/utils.ts',
'app/components/UI/AccountInfoCard/index.js',
'app/components/UI/AssetOverview/Price/Price.advanced.tsx',
'app/components/UI/AssetOverview/Price/Price.legacy.tsx',
'app/components/UI/AssetOverview/utils/marketDetails.ts',
'app/components/UI/Bridge/components/QuoteSelectorView/QuoteRow.tsx',
'app/components/UI/Bridge/components/QuoteSelectorView/index.tsx',
'app/components/UI/Bridge/hooks/useBridgeQuoteData/index.ts',
'app/components/UI/Bridge/hooks/useFormattedBalanceWithThreshold/index.ts',
'app/components/UI/Bridge/hooks/useHasSufficientGas/index.ts',
'app/components/UI/Bridge/hooks/useInsufficientBalance/index.ts',
'app/components/UI/Bridge/hooks/useTokenBalanceInUsd/index.ts',
'app/components/UI/Bridge/hooks/useTokensWithBalance/index.ts',
'app/components/UI/Bridge/utils/exchange-rates.ts',
'app/components/UI/Bridge/utils/formatNetworkFee.test.ts',
'app/components/UI/Bridge/utils/formatNetworkFee.ts',
'app/components/UI/Bridge/utils/transaction-history.ts',
'app/components/UI/Card/hooks/useAssetBalances.tsx',
'app/components/UI/Card/hooks/useCardDelegation.test.ts',
'app/components/UI/Card/hooks/useCardDelegation.ts',
'app/components/UI/Card/hooks/useNeedsGasFaucet.ts',
'app/components/UI/Card/sdk/CardSDK.ts',
'app/components/UI/CollectibleOverview/index.js',
'app/components/UI/Earn/Views/EarnInputView/EarnInputView.test.tsx',
'app/components/UI/Earn/Views/EarnLendingDepositConfirmationView/components/Erc20TokenHero/index.tsx',
'app/components/UI/Earn/Views/EarnLendingDepositConfirmationView/index.tsx',
'app/components/UI/Earn/Views/EarnLendingWithdrawalConfirmationView/index.tsx',
'app/components/UI/Earn/Views/EarnWithdrawInputView/EarnWithdrawInputView.tsx',
'app/components/UI/Earn/components/EarnLendingBalance/index.tsx',
'app/components/UI/Earn/components/Earnings/EarningsHistory/EarningsHistory.utils.ts',
'app/components/UI/Earn/components/InputDisplay/InputDisplay.test.tsx',
'app/components/UI/Earn/hooks/useEarnGasFee.ts',
'app/components/UI/Earn/hooks/useEarnInput.ts',
'app/components/UI/Earn/hooks/useEarnings.ts',
'app/components/UI/Earn/hooks/useInput.ts',
'app/components/UI/Earn/hooks/useMultichainInputHandlers.ts',
'app/components/UI/Earn/hooks/useMusdBalance.ts',
'app/components/UI/Earn/hooks/useMusdCtaVisibility.ts',
'app/components/UI/Earn/utils/number.ts',
'app/components/UI/Earn/utils/token/index.ts',
'app/components/UI/Earn/utils/tron.ts',
'app/components/UI/HardwareWallet/AccountDetails/index.tsx',
'app/components/UI/Money/constants/activityStyles.ts',
'app/components/UI/Money/hooks/useMoneyAccountBalance.ts',
'app/components/UI/Money/utils/moneyActivityFiat.ts',
'app/components/UI/MultichainBridgeTransactionListItem/MultichainBridgeTransactionListItem.tsx',
'app/components/UI/Notification/TransactionNotification/index.js',
'app/components/UI/Ramp/Aggregator/Views/BuildQuote/BuildQuote.test.tsx',
'app/components/UI/Ramp/Aggregator/Views/BuildQuote/BuildQuote.tsx',
'app/components/UI/Ramp/Aggregator/Views/OrdersList/OrdersList.tsx',
'app/components/UI/Ramp/Aggregator/Views/SendTransaction/SendTransaction.tsx',
'app/components/UI/Ramp/Aggregator/components/OrderDetails.tsx',
'app/components/UI/Ramp/Aggregator/components/OrderListItem/OrderListItem.tsx',
'app/components/UI/Ramp/Aggregator/components/Quote/Quote.tsx',
'app/components/UI/Ramp/Aggregator/hooks/useBalance.test.ts',
'app/components/UI/Ramp/Aggregator/hooks/useBalance.ts',
'app/components/UI/Ramp/Aggregator/hooks/useERC20GasLimitEstimation.ts',
'app/components/UI/Ramp/Aggregator/hooks/useHandleSuccessfulOrder.ts',
'app/components/UI/Ramp/Aggregator/hooks/useIntentAmount.ts',
'app/components/UI/Ramp/Aggregator/utils/index.ts',
'app/components/UI/Ramp/Deposit/utils/index.ts',
'app/components/UI/Ramp/utils/getOrderAmount.ts',
'app/components/UI/Ramp/utils/v2OrderToast.ts',
'app/components/UI/Stake/components/StakingBalance/StakingBanners/ClaimBanner/ClaimBanner.tsx',
'app/components/UI/Stake/components/StakingConfirmation/TokenValueStack/TokenValueStack.test.tsx',
'app/components/UI/Stake/components/StakingConfirmation/TokenValueStack/TokenValueStack.tsx',
'app/components/UI/Stake/components/StakingConfirmation/YouReceiveCard/YouReceiveCard.test.tsx',
'app/components/UI/Stake/components/StakingConfirmation/YouReceiveCard/YouReceiveCard.tsx',
'app/components/UI/Stake/hooks/useBalance.ts',
'app/components/UI/Tokens/util/deriveBalanceFromAssetMarketDetails.test.ts',
'app/components/UI/Tokens/util/deriveBalanceFromAssetMarketDetails.ts',
'app/components/UI/TransactionElement/utils-gas.js',
'app/components/UI/TransactionElement/utils.js',
'app/components/UI/UrlAutocomplete/Result.tsx',
'app/components/Views/AssetDetails/index.tsx',
'app/components/Views/DetectedTokens/components/Token.tsx',
'app/components/Views/GasEducationCarousel/index.js',
'app/components/Views/NetworksManagement/NetworkDetailsView/hooks/useNetworkValidation.ts',
'app/components/Views/SocialLeaderboard/TraderPositionView/components/QuickBuyBottomSheet/useQuickBuyBottomSheet.ts',
'app/components/Views/SocialLeaderboard/TraderPositionView/components/QuickBuyBottomSheet/useQuickBuyQuotes.ts',
'app/components/Views/SocialLeaderboard/utils/formatters.ts',
'app/components/Views/UnifiedTransactionsView/useUnifiedTxActions.test.ts',
'app/components/Views/confirmations/components/gas/max-base-fee-input/max-base-fee-input.tsx',
'app/components/Views/confirmations/components/gas/priority-fee-input/priority-fee-input.tsx',
'app/components/Views/confirmations/components/info/typed-sign-v3v4/simulation/components/native-value-display/native-value-display.tsx',
'app/components/Views/confirmations/components/info/typed-sign-v3v4/simulation/components/value-display/value-display.tsx',
'app/components/Views/confirmations/components/transactions/custom-amount/custom-amount.tsx',
'app/components/Views/confirmations/context/send-context/utils.ts',
'app/components/Views/confirmations/external/staking/hooks/useStakingDetails.ts',
'app/components/Views/confirmations/hooks/earn/useCustomAmount.tsx',
'app/components/Views/confirmations/hooks/gas/useCancelSpeedupGas/useCancelSpeedupGas.ts',
'app/components/Views/confirmations/hooks/send/useBalance.ts',
'app/components/Views/confirmations/hooks/send/useCurrencyConversions.ts',
'app/components/Views/confirmations/hooks/send/usePercentageAmount.ts',
'app/components/Views/confirmations/hooks/useTokenAmount.ts',
'app/components/Views/confirmations/legacy/components/CustomNonceModal/index.js',
'app/components/Views/confirmations/legacy/components/WatchAssetRequest/index.js',
'app/components/Views/confirmations/utils/send.ts',
'app/components/hooks/useAddressBalance/useAddressBalance.ts',
'app/components/hooks/useGetFormattedTokensPerChain.tsx',
'app/components/hooks/useGetTotalFiatBalanceCrossChains.tsx',
'app/core/Engine/Engine.ts',
'app/core/Engine/controllers/gas-fee-controller/gas-fee-controller-init.test.ts',
'app/core/GasPolling/GasPolling.ts',
'app/core/NotificationManager.js',
'app/selectors/assets/assets-list.ts',
'app/selectors/earnController/earn/index.ts',
'app/selectors/multichain/evm.ts',
// `app/util/**` importers of `./number` or `../number` (resolves to `index.js`);
// same burndown contract as feature files — remove when migrated to
// `../number/bigint` (or `./number/bigint` from `app/util/`).
'app/util/confirm-tx.js',
'app/util/conversions.js',
'app/util/confirmation/gas.ts',
'app/util/confirmation/transactions.ts',
'app/util/custom-gas/index.js',
'app/util/networks/index.js',
'app/util/transactions/index.js',
'app/util/transactions/index.test.ts',
];

module.exports = {
root: true,
parser: '@typescript-eslint/parser',
Expand Down Expand Up @@ -42,6 +174,11 @@ module.exports = {
'interface',
],
'@typescript-eslint/no-explicit-any': 'error',
// Surface JSDoc @deprecated annotations at every use-site (warn for now;
// ratchet to 'error' once the BN.js → BigInt migration is complete).
// Pairs with the `import-x/no-restricted-paths` fence on
// `app/util/number/index.js` in the app import-fence override below.
'@typescript-eslint/no-deprecated': 'warn',
// Under discussion
'@typescript-eslint/no-duplicate-enum-values': 'off',
'@typescript-eslint/no-shadow': [
Expand Down Expand Up @@ -248,6 +385,33 @@ module.exports = {
],
},
},
{
files: ['**/*.test.{js,ts,tsx,jsx}', '**/*.spec.{js,ts,tsx,jsx}'],
plugins: ['jest'],
rules: {
// Prevent new file-based snapshots. Inline snapshots (toMatchInlineSnapshot)
// are still allowed as they keep assertions co-located with the test.
'jest/no-restricted-matchers': [
'error',
{
toMatchSnapshot:
'Use toMatchInlineSnapshot() or an explicit assertion instead. File-based snapshots are being phased out.',
},
],
},
},
{
// Matches CODEOWNERS `**/snaps/**` and `**/Snaps/**` (@MetaMask/core-platform).
// ESLint cannot read CODEOWNERS.
files: [
'**/snaps/**/*.{test,spec}.{js,ts,tsx,jsx}',
'**/Snaps/**/*.{test,spec}.{js,ts,tsx,jsx}',
],
plugins: ['jest'],
rules: {
'jest/no-restricted-matchers': 'off',
},
},
// ── Perps controller Core-alignment override ──
// Enforces the same ESLint rules that Core's @metamask/eslint-config
// applies to packages/perps-controller so that code written in mobile
Expand Down Expand Up @@ -466,11 +630,78 @@ module.exports = {
},
},
{
files: ['app/**/*.{ts,tsx}'],
// Default app import fences (expo-haptics, perps, deprecated util/number/index.js).
// `excludedFiles` applies to the whole override — listing burn-down paths
// here would incorrectly skip expo/perps for those files, so burn-down is
// excluded from *this* block only and picked up by the next override.
files: ['app/**/*.{ts,tsx,js,jsx}'],
excludedFiles: [
'app/controllers/perps/**/*.{ts,tsx}',
'app/util/haptics/**/*.{ts,tsx}',
// Perps controller is exempt from importing itself.
'app/controllers/perps/**/*.{ts,tsx,js,jsx}',
// Designated expo-haptics wrapper — only this tree may import expo-haptics.
'app/util/haptics/**/*.{ts,tsx,js,jsx}',
// Legacy number utils + parity tests.
'app/util/number/**',
// BN.js → BigInt burn-down: still allowed util/number imports; see next override.
...utilNumberImportBurndownFiles,
],
rules: {
'no-restricted-imports': [
'error',
{
paths: [
{
name: 'expo-haptics',
message:
'Import from app/util/haptics instead of expo-haptics directly.',
},
],
patterns: [
{
group: ['**/controllers/perps', '**/controllers/perps/**'],
message:
'Use @metamask/perps-controller instead of relative imports into app/controllers/perps/.',
},
{
group: ['expo-haptics/*'],
message:
'Import from app/util/haptics instead of expo-haptics directly.',
},
],
},
],
// Fences the deprecated `app/util/number/index.js` module. We use
// `import-x/no-restricted-paths` (not `no-restricted-imports`) because
// it resolves each import to its absolute file, which means a single
// entry catches every spelling that lands on `index.js` — bare
// (`from '../util/number'`), explicit (`'../util/number/index'`),
// and explicit-with-extension. Sibling modules like `bigint`,
// `bignumber`, and `subscriptNotation` resolve to different files
// and are unaffected, so no negation list is needed. Inherits the
// burn-down allowlist from this override's `excludedFiles`; the
// burn-down override below intentionally does not re-declare this
// rule, so allow-listed files remain exempt.
'import-x/no-restricted-paths': [
'error',
{
zones: [
{
target: 'app',
from: 'app/util/number/index.js',
message:
'app/util/number/index.js is deprecated. Import the BigInt-based replacement from app/util/number/bigint instead. See app/util/number/bigint-migration-reference.test.ts for migration patterns.',
},
],
},
],
},
},
{
// Re-apply expo-haptics + perps only for burn-down files. A second
// override is required because ESLint replaces `no-restricted-imports`
// when the same rule is set again — we cannot use one override with only
// `excludedFiles` for util/number without silently dropping other fences.
files: utilNumberImportBurndownFiles,
rules: {
'no-restricted-imports': [
'error',
Expand Down
11 changes: 11 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ app/core/Engine/README.md @MetaMask/mobile-pla
app/core/Engine/types.ts @MetaMask/mobile-platform
app/core/Engine/controllers/remote-feature-flag-controller/ @MetaMask/mobile-platform
app/core/DeeplinkManager @MetaMask/mobile-platform
# Deprecated BN.js helpers. Gated to discourage adding new exports; consumers
# should migrate to app/util/number/bigint. See .eslintrc.js for the import
# fence and bigint-migration-reference.test.ts for migration patterns.
app/util/number/index.js @MetaMask/mobile-platform
scripts/build.sh @MetaMask/mobile-platform
fingerprint.config.js @MetaMask/mobile-platform
builds.yml @MetaMask/mobile-platform
Expand Down Expand Up @@ -154,7 +158,12 @@ app/components/UI/TemplateRenderer @MetaMask/confirmations @MetaMask/core-plat
app/components/UI/Stake @MetaMask/earn
app/core/Engine/controllers/earn-controller @MetaMask/earn
app/core/Engine/messengers/earn-controller-messenger @MetaMask/earn
app/core/Engine/controllers/chomp-api-service-init* @MetaMask/earn
app/core/Engine/controllers/money-account-upgrade-controller-init* @MetaMask/earn
app/core/Engine/messengers/chomp-api-service-messenger* @MetaMask/earn
app/core/Engine/messengers/money-account-upgrade-controller-messenger* @MetaMask/earn
app/selectors/earnController @MetaMask/earn
app/selectors/featureFlagController/chompApi/ @MetaMask/earn
**/Earn/** @MetaMask/earn
**/earn/** @MetaMask/earn
**/Money/** @MetaMask/earn
Expand Down Expand Up @@ -334,6 +343,7 @@ tests/tools/ @MetaMask/qa
tests/websocket/ @MetaMask/qa

# QA Team - CI
.github/guidelines/E2E_DECISION_TREE.md @MetaMask/qa
.github/actions/smart-e2e-selection/ @MetaMask/qa
.github/workflows/ai-pr-risk-analysis.yml @MetaMask/qa
.github/workflows/auto-label-not-ready-for-e2e.yml @MetaMask/qa
Expand All @@ -353,6 +363,7 @@ tests/websocket/ @MetaMask/qa
.github/workflows/run-performance-e2e.yml @MetaMask/qa
.github/workflows/run-performance-e2e-experimental.yml @MetaMask/qa
.github/workflows/run-performance-e2e-release.yml @MetaMask/qa
.github/workflows/run-system-tests.yml @MetaMask/qa
.github/scripts/e2e-*.mjs @MetaMask/qa
.github/scripts/collect-qa-stats.mjs @MetaMask/qa
.github/scripts/generate-regression-slack-summary.mjs @MetaMask/qa
Expand Down
5 changes: 5 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ self-hosted-runner:
- "ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-lg"
- "ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-xl"
- "low-priority"
# Namespace runner profile labels (INFRA-3592). Format: namespace-profile-<profile-name>.
- "namespace-profile-metamask-ci-linux"
- "namespace-profile-metamask-android-build"
- "namespace-profile-metamask-ios-build"
- "namespace-profile-metamask-ios-e2e"

# Configuration variables in array of strings defined in your repository or
# organization. `null` means disabling configuration variables check.
Expand Down
Loading
Loading