Skip to content

Commit

Permalink
fix: upgrade transaction-controller to 32.0.0 to fix mmi (#24947)
Browse files Browse the repository at this point in the history
> [!NOTE]
> This PR is intended to be cherry-picked into RC 11.17.0 after being
merged into develop

Upgrade transaction-controller to get this fix:
MetaMask/core#4343

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24947?quickstart=1)

Fixes:
A recent update to the transaction-controller has made the
TransactionMeta object passed to the afterSign hook frozen. This change
prevents adding new properties, leading to the error: “Cannot add
property custodyId, object is not extensible.” This bug is breaking all
transactions for MMI as the original txMeta cannot store required
properties like custodyId.

Blocked by #24861
Blocked by #24913

I followed these steps to test the fix:
1. yarn && yarn start:mmi
2. create a new wallet
3. visit https://saturn-custody-ui.dev.metamask-institutional.io/ and
add two custodial addresses
4. send 0ETH from one custodial address to the other

You should see a popup with an Approve button. Before this fix, the
transaction would appear in the activity tab with an error.

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

<!-- [screenshots/recordings] -->

<!-- [screenshots/recordings] -->

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

- [ ] 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.

---------

Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
Co-authored-by: Antonio Regadas <antonio.regadas@consensys.net>
  • Loading branch information
3 people committed Jun 5, 2024
1 parent f696c34 commit 4d84777
Show file tree
Hide file tree
Showing 7 changed files with 795 additions and 148 deletions.
152 changes: 136 additions & 16 deletions lavamoat/browserify/beta/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -2042,14 +2042,6 @@
"TextEncoder": true
}
},
"@metamask/smart-transactions-controller>@metamask/base-controller": {
"globals": {
"setTimeout": true
},
"packages": {
"immer": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>nanoid": {
"globals": {
"crypto.getRandomValues": true
Expand All @@ -2067,16 +2059,16 @@
"@ethersproject/abi": true,
"@ethersproject/contracts": true,
"@ethersproject/providers": true,
"@metamask/controller-utils": true,
"@metamask/eth-query": true,
"@metamask/gas-fee-controller": true,
"@metamask/metamask-eth-abis": true,
"@metamask/name-controller>async-mutex": true,
"@metamask/network-controller": true,
"@metamask/providers>@metamask/rpc-errors": true,
"@metamask/smart-transactions-controller>@metamask/base-controller": true,
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/tx": true,
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/util": true,
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/base-controller": true,
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/controller-utils": true,
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller": true,
"@metamask/smart-transactions-controller>@metamask/transaction-controller>async-mutex": true,
"@metamask/smart-transactions-controller>@metamask/transaction-controller>eth-method-registry": true,
"@metamask/transaction-controller>nonce-tracker": true,
"@metamask/utils": true,
Expand Down Expand Up @@ -2111,6 +2103,107 @@
"webpack>events": true
}
},
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/base-controller": {
"globals": {
"setTimeout": true
},
"packages": {
"immer": true
}
},
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/controller-utils": {
"globals": {
"URL": true,
"console.error": true,
"fetch": true,
"setTimeout": true
},
"packages": {
"@metamask/controller-utils>@spruceid/siwe-parser": true,
"@metamask/ethjs>@metamask/ethjs-unit": true,
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@ethereumjs/util": true,
"@metamask/utils": true,
"bn.js": true,
"browserify>buffer": true,
"eslint>fast-deep-equal": true,
"eth-ens-namehash": true
}
},
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller": {
"globals": {
"clearInterval": true,
"console.error": true,
"setInterval": true
},
"packages": {
"@metamask/eth-query": true,
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils": true,
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/polling-controller": true,
"bn.js": true,
"browserify>buffer": true,
"uuid": true
}
},
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/base-controller": {
"globals": {
"setTimeout": true
},
"packages": {
"immer": true
}
},
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils": {
"globals": {
"URL": true,
"console.error": true,
"fetch": true,
"setTimeout": true
},
"packages": {
"@metamask/controller-utils>@spruceid/siwe-parser": true,
"@metamask/ethjs>@metamask/ethjs-unit": true,
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@ethereumjs/util": true,
"@metamask/utils": true,
"bn.js": true,
"browserify>buffer": true,
"eslint>fast-deep-equal": true,
"eth-ens-namehash": true
}
},
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/controller-utils>@ethereumjs/util": {
"globals": {
"console.warn": true
},
"packages": {
"@ethereumjs/tx>@ethereumjs/rlp": true,
"@ethereumjs/tx>@ethereumjs/util>micro-ftch": true,
"@ethereumjs/tx>ethereum-cryptography": true,
"browserify>buffer": true,
"browserify>insert-module-globals>is-buffer": true,
"webpack>events": true
}
},
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/polling-controller": {
"globals": {
"clearTimeout": true,
"console.error": true,
"setTimeout": true
},
"packages": {
"@metamask/smart-transactions-controller>@metamask/transaction-controller>@metamask/gas-fee-controller>@metamask/base-controller": true,
"@metamask/snaps-utils>fast-json-stable-stringify": true,
"uuid": true
}
},
"@metamask/smart-transactions-controller>@metamask/transaction-controller>async-mutex": {
"globals": {
"clearTimeout": true,
"setTimeout": true
},
"packages": {
"@trezor/connect-web>tslib": true
}
},
"@metamask/smart-transactions-controller>@metamask/transaction-controller>eth-method-registry": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/transaction-controller>eth-method-registry>@metamask/ethjs-contract": true,
Expand Down Expand Up @@ -2342,15 +2435,15 @@
"@ethersproject/abi": true,
"@ethersproject/contracts": true,
"@ethersproject/providers": true,
"@metamask/controller-utils": true,
"@metamask/eth-query": true,
"@metamask/gas-fee-controller": true,
"@metamask/metamask-eth-abis": true,
"@metamask/name-controller>async-mutex": true,
"@metamask/network-controller": true,
"@metamask/providers>@metamask/rpc-errors": true,
"@metamask/transaction-controller>@metamask/base-controller": true,
"@metamask/transaction-controller>nonce-tracker": true,
"@metamask/transaction-controller>@metamask/controller-utils": true,
"@metamask/transaction-controller>@metamask/nonce-tracker": true,
"@metamask/transaction-controller>async-mutex": true,
"@metamask/utils": true,
"bn.js": true,
"browserify>buffer": true,
Expand All @@ -2369,7 +2462,25 @@
"immer": true
}
},
"@metamask/transaction-controller>nonce-tracker": {
"@metamask/transaction-controller>@metamask/controller-utils": {
"globals": {
"URL": true,
"console.error": true,
"fetch": true,
"setTimeout": true
},
"packages": {
"@ethereumjs/tx>@ethereumjs/util": true,
"@metamask/controller-utils>@spruceid/siwe-parser": true,
"@metamask/ethjs>@metamask/ethjs-unit": true,
"@metamask/utils": true,
"bn.js": true,
"browserify>buffer": true,
"eslint>fast-deep-equal": true,
"eth-ens-namehash": true
}
},
"@metamask/transaction-controller>@metamask/nonce-tracker": {
"packages": {
"@ethersproject/providers": true,
"@metamask/eth-token-tracker>eth-block-tracker": true,
Expand All @@ -2386,6 +2497,15 @@
"@trezor/connect-web>tslib": true
}
},
"@metamask/transaction-controller>async-mutex": {
"globals": {
"clearTimeout": true,
"setTimeout": true
},
"packages": {
"@trezor/connect-web>tslib": true
}
},
"@metamask/user-operation-controller": {
"globals": {
"fetch": true
Expand Down
Loading

0 comments on commit 4d84777

Please sign in to comment.