Skip to content

Conversation

@matthewwalsh0
Copy link
Member

@matthewwalsh0 matthewwalsh0 commented Nov 28, 2025

Description

Add TransactionPayController.

No functional changes yet.

Changelog

CHANGELOG entry: null

Related issues

Manual testing steps

Screenshots/Recordings

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Integrates TransactionPayController with initialization, restricted messengers, tests, wiring into controller registry/bootstrap, and updates Lavamoat policies and dependencies.

  • Controllers:
    • Add TransactionPayController init in app/scripts/controller-init/transaction-pay-controller-init.ts (default Relay strategy) and include in metamask-controller bootstrap and controller-list/state unions.
    • Add restricted messengers in app/scripts/controller-init/messengers/transaction-pay-controller-messenger.ts and export via app/scripts/controller-init/messengers/index.ts.
  • Tests:
    • New tests for controller init and messengers (transaction-pay-controller-init.test.ts, transaction-pay-controller-messenger.test.ts).
  • Wiring/Utils:
    • Register in CONTROLLER_MESSENGERS and utils.ts controller initialization map.
    • Minor type comment in confirmations/transaction-controller-init.ts.
  • Security/Policies:
    • Update LavaMoat Browserify/Webpack policies to allow @metamask/transaction-pay-controller and related transitive deps.
  • Dependencies:
    • Add @metamask/transaction-pay-controller@^10.2.0 and bump @metamask/transaction-controller to ^62.3.1, with related package/version updates to support integration.

Written by Cursor Bugbot for commit 66c58a1. This will update automatically on new commits. Configure here.

@matthewwalsh0 matthewwalsh0 requested a review from a team as a code owner November 28, 2025 12:56
@matthewwalsh0 matthewwalsh0 added team-confirmations Push issues to confirmations team no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed labels Nov 28, 2025
@matthewwalsh0 matthewwalsh0 force-pushed the feat/transaction-pay-controller branch from d7fc47d to fb87fc9 Compare November 28, 2025 13:01
@socket-security
Copy link

socket-security bot commented Nov 28, 2025

@socket-security
Copy link

socket-security bot commented Nov 28, 2025

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

Ignoring alerts on:

  • @metamask/browser-passworder@6.0.0
  • @metamask/phishing-controller@13.1.0
  • @metamask/snaps-controllers@14.2.2
  • @metamask/snaps-rpc-methods@13.5.3
  • @metamask/approval-controller@7.2.1
  • @metamask/core-backend@5.0.0
  • @metamask/accounts-controller@35.0.0
  • @metamask/account-tree-controller@4.0.0
  • @metamask/network-controller@26.0.0
  • @metamask/eth-block-tracker@15.0.0
  • @metamask/keyring-controller@25.0.0
  • @metamask/gas-fee-controller@26.0.0
  • @metamask/multichain-account-service@4.0.0
  • @metamask/eth-json-rpc-middleware@22.0.0
  • @metamask/multichain-network-controller@3.0.0
  • @metamask/eth-json-rpc-provider@6.0.0
  • @metamask/profile-sync-controller@27.0.0
  • @metamask/preferences-controller@22.0.0
  • @metamask/phishing-controller@16.1.0
  • @metamask/bridge-controller@63.2.0
  • @metamask/bridge-status-controller@63.1.0
  • @metamask/assets-controllers@92.0.0
  • @metamask/transaction-controller@62.3.1
  • @metamask/transaction-pay-controller@10.2.0
  • @metamask/message-manager@14.1.0
  • @metamask/json-rpc-engine@10.2.0
  • @metamask/permission-controller@12.1.1
  • @metamask/remote-feature-flag-controller@2.0.1

View full report

@metamaskbot
Copy link
Collaborator

metamaskbot commented Nov 28, 2025

✨ Files requiring CODEOWNER review ✨

@MetaMask/confirmations (1 files, +1 -0)
  • 📁 app/
    • 📁 scripts/
      • 📁 controller-init/
        • 📁 confirmations/
          • 📄 transaction-controller-init.ts +1 -0

🧩 @MetaMask/extension-devs (6 files, +1271 -24)
  • 📁 lavamoat/
    • 📁 browserify/
      • 📁 beta/
        • 📄 policy.json +300 -4
      • 📁 experimental/
        • 📄 policy.json +300 -4
      • 📁 flask/
        • 📄 policy.json +300 -4
      • 📁 main/
        • 📄 policy.json +300 -4
    • 📁 webpack/
      • 📁 mv2/
        • 📄 policy.json +68 -6
      • 📁 mv3/
        • 📄 policy.json +3 -2

📜 @MetaMask/policy-reviewers (6 files, +1271 -24)
  • 📁 lavamoat/
    • 📁 browserify/
      • 📁 beta/
        • 📄 policy.json +300 -4
      • 📁 experimental/
        • 📄 policy.json +300 -4
      • 📁 flask/
        • 📄 policy.json +300 -4
      • 📁 main/
        • 📄 policy.json +300 -4
    • 📁 webpack/
      • 📁 mv2/
        • 📄 policy.json +68 -6
      • 📁 mv3/
        • 📄 policy.json +3 -2

Tip

Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.


🔗 @MetaMask/supply-chain (6 files, +1271 -24)
  • 📁 lavamoat/
    • 📁 browserify/
      • 📁 beta/
        • 📄 policy.json +300 -4
      • 📁 experimental/
        • 📄 policy.json +300 -4
      • 📁 flask/
        • 📄 policy.json +300 -4
      • 📁 main/
        • 📄 policy.json +300 -4
    • 📁 webpack/
      • 📁 mv2/
        • 📄 policy.json +68 -6
      • 📁 mv3/
        • 📄 policy.json +3 -2

@matthewwalsh0
Copy link
Member Author

@SocketSecurity ignore-all

@matthewwalsh0
Copy link
Member Author

@metamaskbot update-policies

@metamaskbot
Copy link
Collaborator

Builds ready [fb87fc9]
📊 Page Load Benchmark Results

Current Commit: fb87fc9 | Date: 11/28/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.09s (±116ms) 🟡 | historical mean value: 1.05s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 781ms (±114ms) 🟢 | historical mean value: 728ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±11ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.09s 116ms 1.01s 1.38s 1.30s 1.38s
domContentLoaded 781ms 114ms 694ms 1.06s 989ms 1.06s
firstPaint 77ms 11ms 60ms 164ms 88ms 164ms
firstContentfulPaint 77ms 11ms 60ms 164ms 88ms 164ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 486.46 KiB (10.41%)
  • ui: 10 Bytes (0%)
  • common: 357.76 KiB (4.05%)

@metamaskbot
Copy link
Collaborator

Policy update failed. You can review the logs or retry the policy update here

1 similar comment
@metamaskbot
Copy link
Collaborator

Policy update failed. You can review the logs or retry the policy update here

@matthewwalsh0
Copy link
Member Author

@metamaskbot update-policies

@metamaskbot
Copy link
Collaborator

Policies updated.
👀 Please review the diff for suspicious new powers.

🧠 Learn how: https://lavamoat.github.io/guides/policy-diff/#what-to-look-for-when-reviewing-a-policy-diff

@metamaskbot metamaskbot requested review from a team as code owners November 28, 2025 14:11
@metamaskbot
Copy link
Collaborator

Builds ready [66c58a1]
UI Startup Metrics (1226 ± 99 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1226103015419912891385
load103086213069010841187
domContentLoaded102485313029010781180
domInteractive2615106202179
firstPaint51589124240810051159
backgroundConnect21719525112224239
firstReactRender30195983448
getState3617125154257
initialActions105112
loadScripts813645106888854973
setupStore1162631218
numNetworkReqs1257820572
BrowserifyPower User HomeuiStartup21361756307027222942721
load1028892172914710201442
domContentLoaded1014884171614810051418
domInteractive3518159263396
firstPaint5159117333989471402
backgroundConnect267204741120236663
firstReactRender6041105146493
getState19614474380206234
initialActions106112
loadScripts80267414981467961201
setupStore2095092439
numNetworkReqs1967540972212395
WebpackStandard HomeuiStartup8447191147828751012
load65958099379698824
domContentLoaded65457598578689818
domInteractive2716111222393
firstPaint21591992150212603
backgroundConnect1153061028
firstReactRender28217783343
getState251463113449
initialActions107112
loadScripts65157297676687810
setupStore1163141319
numNetworkReqs1257720572
WebpackPower User HomeuiStartup17441280295829920092274
load7135921331115726971
domContentLoaded7025861324115711961
domInteractive42173364440137
firstPaint334111991232428910
backgroundConnect62761014619563
firstReactRender6646113107385
getState19814480497193247
initialActions105113
loadScripts6995841313113709951
setupStore24683152657
numNetworkReqs1667342383219403
FirefoxBrowserifyStandard HomeuiStartup12901055179016813861629
load1051912152510211211202
domContentLoaded1051912152510211211202
domInteractive58311903482128
firstPaint------
backgroundConnect47202064043148
firstReactRender23185462337
getState1167981024
initialActions103112
loadScripts102689813639010971186
setupStore14519626935
numNetworkReqs1156616661
BrowserifyPower User HomeuiStartup27682051554265128444383
load12901020302537113072494
domContentLoaded12901020302537113072493
domInteractive12735602122117487
firstPaint------
backgroundConnect140261732219134301
firstReactRender61391412262122
getState29660947208407808
initialActions3162727
loadScripts12481005285834212402335
setupStore15871010218153705
numNetworkReqs99603196177244
WebpackStandard HomeuiStartup16371399210216217241981
load13471159168210214131547
domContentLoaded13471159168210214131546
domInteractive802816533102133
firstPaint------
backgroundConnect56201973569131
firstReactRender312190103244
getState177185241529
initialActions103122
loadScripts1314114216529213801466
setupStore187127201469
numNetworkReqs1256917765
WebpackPower User HomeuiStartup30992233829693031815008
load15711100626867714172929
domContentLoaded15701100626867714172929
domInteractive13231111117399480
firstPaint------
backgroundConnect154271159188165353
firstReactRender66412873066108
getState276691261227324767
initialActions207123
loadScripts14951085608360813802852
setupStore1277731164146539
numNetworkReqs100633216079237
📊 Page Load Benchmark Results

Current Commit: 66c58a1 | Date: 11/28/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±73ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 737ms (±70ms) 🟢 | historical mean value: 726ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±11ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 73ms 1.01s 1.35s 1.27s 1.35s
domContentLoaded 737ms 70ms 698ms 1.03s 938ms 1.03s
firstPaint 77ms 11ms 60ms 168ms 88ms 168ms
firstContentfulPaint 77ms 11ms 60ms 168ms 88ms 168ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 486.69 KiB (10.41%)
  • ui: -1.22 KiB (-0.02%)
  • common: 358.41 KiB (4.06%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed size-M team-confirmations Push issues to confirmations team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants