Skip to content

Commit b67f734

Browse files
authored
feat: Enable ppom on other chains (#22633)
1 parent 3996f50 commit b67f734

File tree

15 files changed

+197
-142
lines changed

15 files changed

+197
-142
lines changed

app/scripts/lib/createStreamSink.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { Writable as WritableStream } from 'readable-stream';
1+
import { Writable } from 'readable-stream';
22
import promiseToCallback from 'promise-to-callback';
33

4-
class AsyncWritableStream extends WritableStream {
4+
class AsyncWritableStream extends Writable {
55
constructor(asyncWriteFn, _opts) {
66
const opts = { objectMode: true, ..._opts };
77
super(opts);

app/scripts/lib/ppom/ppom-middleware.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,16 @@ const ConfirmationMethods = Object.freeze([
2222
'personal_sign',
2323
]);
2424

25+
export const SUPPORTED_CHAIN_IDS: string[] = [
26+
CHAIN_IDS.MAINNET,
27+
CHAIN_IDS.BSC,
28+
CHAIN_IDS.POLYGON,
29+
CHAIN_IDS.ARBITRUM,
30+
CHAIN_IDS.OPTIMISM,
31+
CHAIN_IDS.AVALANCHE,
32+
CHAIN_IDS.LINEA_MAINNET,
33+
];
34+
2535
/**
2636
* Middleware function that handles JSON RPC requests.
2737
* This function will be called for every JSON RPC request.
@@ -49,7 +59,7 @@ export function createPPOMMiddleware(
4959
if (
5060
securityAlertsEnabled &&
5161
ConfirmationMethods.includes(req.method) &&
52-
chainId === CHAIN_IDS.MAINNET
62+
SUPPORTED_CHAIN_IDS.includes(chainId)
5363
) {
5464
// eslint-disable-next-line require-atomic-updates
5565
req.securityAlertResponse = await ppomController.usePPOM(

app/scripts/metamask-controller.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -769,16 +769,13 @@ export default class MetamaskController extends EventEmitter {
769769
this.ppomController = new PPOMController({
770770
messenger: this.controllerMessenger.getRestricted({
771771
name: 'PPOMController',
772+
allowedEvents: ['NetworkController:stateChange'],
772773
}),
773774
storageBackend: new IndexedDBPPOMStorage('PPOMDB', 1),
774775
provider: this.provider,
775776
ppomProvider: { PPOM: PPOMModule.PPOM, ppomInit: PPOMModule.default },
776777
state: initState.PPOMController,
777778
chainId: this.networkController.state.providerConfig.chainId,
778-
onNetworkChange: networkControllerMessenger.subscribe.bind(
779-
networkControllerMessenger,
780-
'NetworkController:stateChange',
781-
),
782779
securityAlertsEnabled:
783780
this.preferencesController.store.getState().securityAlertsEnabled,
784781
onPreferencesChange: this.preferencesController.store.subscribe.bind(

lavamoat/browserify/beta/policy.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@
749749
"packages": {
750750
"@metamask/address-book-controller>@metamask/controller-utils>@metamask/utils": true,
751751
"@metamask/controller-utils>@spruceid/siwe-parser": true,
752-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
752+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
753753
"browserify>buffer": true,
754754
"eslint>fast-deep-equal": true,
755755
"eth-ens-namehash": true,
@@ -1513,14 +1513,20 @@
15131513
},
15141514
"packages": {
15151515
"@metamask/controller-utils>@spruceid/siwe-parser": true,
1516-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
1516+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
15171517
"@metamask/utils": true,
15181518
"browserify>buffer": true,
15191519
"eslint>fast-deep-equal": true,
15201520
"eth-ens-namehash": true,
15211521
"ethereumjs-util": true
15221522
}
15231523
},
1524+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": {
1525+
"packages": {
1526+
"@metamask/ethjs>number-to-bn": true,
1527+
"bn.js": true
1528+
}
1529+
},
15241530
"@metamask/message-manager>@metamask/eth-sig-util": {
15251531
"packages": {
15261532
"@ethereumjs/tx>@ethereumjs/util": true,
@@ -1703,12 +1709,6 @@
17031709
"webpack>events": true
17041710
}
17051711
},
1706-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": {
1707-
"packages": {
1708-
"@metamask/ethjs>number-to-bn": true,
1709-
"bn.js": true
1710-
}
1711-
},
17121712
"@metamask/ppom-validator>elliptic": {
17131713
"packages": {
17141714
"@metamask/ppom-validator>elliptic>brorand": true,
@@ -1838,7 +1838,7 @@
18381838
},
18391839
"packages": {
18401840
"@metamask/controller-utils>@spruceid/siwe-parser": true,
1841-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
1841+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
18421842
"@metamask/utils": true,
18431843
"browserify>buffer": true,
18441844
"eslint>fast-deep-equal": true,
@@ -1883,7 +1883,7 @@
18831883
},
18841884
"packages": {
18851885
"@metamask/controller-utils>@spruceid/siwe-parser": true,
1886-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
1886+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
18871887
"@metamask/utils": true,
18881888
"browserify>buffer": true,
18891889
"eslint>fast-deep-equal": true,

lavamoat/browserify/desktop/policy.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@
749749
"packages": {
750750
"@metamask/address-book-controller>@metamask/controller-utils>@metamask/utils": true,
751751
"@metamask/controller-utils>@spruceid/siwe-parser": true,
752-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
752+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
753753
"browserify>buffer": true,
754754
"eslint>fast-deep-equal": true,
755755
"eth-ens-namehash": true,
@@ -1590,14 +1590,20 @@
15901590
},
15911591
"packages": {
15921592
"@metamask/controller-utils>@spruceid/siwe-parser": true,
1593-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
1593+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
15941594
"@metamask/utils": true,
15951595
"browserify>buffer": true,
15961596
"eslint>fast-deep-equal": true,
15971597
"eth-ens-namehash": true,
15981598
"ethereumjs-util": true
15991599
}
16001600
},
1601+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": {
1602+
"packages": {
1603+
"@metamask/ethjs>number-to-bn": true,
1604+
"bn.js": true
1605+
}
1606+
},
16011607
"@metamask/message-manager>@metamask/eth-sig-util": {
16021608
"packages": {
16031609
"@ethereumjs/tx>@ethereumjs/util": true,
@@ -1807,12 +1813,6 @@
18071813
"webpack>events": true
18081814
}
18091815
},
1810-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": {
1811-
"packages": {
1812-
"@metamask/ethjs>number-to-bn": true,
1813-
"bn.js": true
1814-
}
1815-
},
18161816
"@metamask/ppom-validator>elliptic": {
18171817
"packages": {
18181818
"@metamask/ppom-validator>elliptic>brorand": true,
@@ -1979,7 +1979,7 @@
19791979
},
19801980
"packages": {
19811981
"@metamask/controller-utils>@spruceid/siwe-parser": true,
1982-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
1982+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
19831983
"@metamask/utils": true,
19841984
"browserify>buffer": true,
19851985
"eslint>fast-deep-equal": true,
@@ -2024,7 +2024,7 @@
20242024
},
20252025
"packages": {
20262026
"@metamask/controller-utils>@spruceid/siwe-parser": true,
2027-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
2027+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
20282028
"@metamask/utils": true,
20292029
"browserify>buffer": true,
20302030
"eslint>fast-deep-equal": true,

lavamoat/browserify/flask/policy.json

Lines changed: 18 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@
749749
"packages": {
750750
"@metamask/address-book-controller>@metamask/controller-utils>@metamask/utils": true,
751751
"@metamask/controller-utils>@spruceid/siwe-parser": true,
752-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
752+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
753753
"browserify>buffer": true,
754754
"eslint>fast-deep-equal": true,
755755
"eth-ens-namehash": true,
@@ -1590,14 +1590,20 @@
15901590
},
15911591
"packages": {
15921592
"@metamask/controller-utils>@spruceid/siwe-parser": true,
1593-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
1593+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
15941594
"@metamask/utils": true,
15951595
"browserify>buffer": true,
15961596
"eslint>fast-deep-equal": true,
15971597
"eth-ens-namehash": true,
15981598
"ethereumjs-util": true
15991599
}
16001600
},
1601+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": {
1602+
"packages": {
1603+
"@metamask/ethjs>number-to-bn": true,
1604+
"bn.js": true
1605+
}
1606+
},
16011607
"@metamask/message-manager>@metamask/eth-sig-util": {
16021608
"packages": {
16031609
"@ethereumjs/tx>@ethereumjs/util": true,
@@ -1812,12 +1818,14 @@
18121818
"URL": true,
18131819
"clearInterval": true,
18141820
"console.error": true,
1821+
"crypto": true,
18151822
"setInterval": true
18161823
},
18171824
"packages": {
1825+
"@metamask/controller-utils": true,
18181826
"@metamask/eth-query>json-rpc-random-id": true,
18191827
"@metamask/ppom-validator>@metamask/base-controller": true,
1820-
"@metamask/ppom-validator>@metamask/controller-utils": true,
1828+
"@metamask/ppom-validator>crypto-js": true,
18211829
"@metamask/ppom-validator>elliptic": true,
18221830
"await-semaphore": true,
18231831
"browserify>buffer": true
@@ -1831,40 +1839,14 @@
18311839
"immer": true
18321840
}
18331841
},
1834-
"@metamask/ppom-validator>@metamask/controller-utils": {
1842+
"@metamask/ppom-validator>crypto-js": {
18351843
"globals": {
1836-
"URL": true,
1837-
"console.error": true,
1838-
"fetch": true,
1839-
"setTimeout": true
1840-
},
1841-
"packages": {
1842-
"@metamask/controller-utils>@spruceid/siwe-parser": true,
1843-
"@metamask/ppom-validator>@metamask/controller-utils>@metamask/utils": true,
1844-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
1845-
"browserify>buffer": true,
1846-
"eslint>fast-deep-equal": true,
1847-
"eth-ens-namehash": true,
1848-
"ethereumjs-util": true
1849-
}
1850-
},
1851-
"@metamask/ppom-validator>@metamask/controller-utils>@metamask/utils": {
1852-
"globals": {
1853-
"TextDecoder": true,
1854-
"TextEncoder": true
1844+
"crypto": true,
1845+
"define": true,
1846+
"msCrypto": true
18551847
},
18561848
"packages": {
1857-
"@metamask/utils>@noble/hashes": true,
1858-
"browserify>buffer": true,
1859-
"nock>debug": true,
1860-
"semver": true,
1861-
"superstruct": true
1862-
}
1863-
},
1864-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": {
1865-
"packages": {
1866-
"@metamask/ethjs>number-to-bn": true,
1867-
"bn.js": true
1849+
"browserify>browser-resolve": true
18681850
}
18691851
},
18701852
"@metamask/ppom-validator>elliptic": {
@@ -2033,7 +2015,7 @@
20332015
},
20342016
"packages": {
20352017
"@metamask/controller-utils>@spruceid/siwe-parser": true,
2036-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
2018+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
20372019
"@metamask/utils": true,
20382020
"browserify>buffer": true,
20392021
"eslint>fast-deep-equal": true,
@@ -2078,7 +2060,7 @@
20782060
},
20792061
"packages": {
20802062
"@metamask/controller-utils>@spruceid/siwe-parser": true,
2081-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
2063+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
20822064
"@metamask/utils": true,
20832065
"browserify>buffer": true,
20842066
"eslint>fast-deep-equal": true,

lavamoat/browserify/main/policy.json

Lines changed: 18 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@
749749
"packages": {
750750
"@metamask/address-book-controller>@metamask/controller-utils>@metamask/utils": true,
751751
"@metamask/controller-utils>@spruceid/siwe-parser": true,
752-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
752+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
753753
"browserify>buffer": true,
754754
"eslint>fast-deep-equal": true,
755755
"eth-ens-namehash": true,
@@ -1513,14 +1513,20 @@
15131513
},
15141514
"packages": {
15151515
"@metamask/controller-utils>@spruceid/siwe-parser": true,
1516-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
1516+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
15171517
"@metamask/utils": true,
15181518
"browserify>buffer": true,
15191519
"eslint>fast-deep-equal": true,
15201520
"eth-ens-namehash": true,
15211521
"ethereumjs-util": true
15221522
}
15231523
},
1524+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": {
1525+
"packages": {
1526+
"@metamask/ethjs>number-to-bn": true,
1527+
"bn.js": true
1528+
}
1529+
},
15241530
"@metamask/message-manager>@metamask/eth-sig-util": {
15251531
"packages": {
15261532
"@ethereumjs/tx>@ethereumjs/util": true,
@@ -1735,12 +1741,14 @@
17351741
"URL": true,
17361742
"clearInterval": true,
17371743
"console.error": true,
1744+
"crypto": true,
17381745
"setInterval": true
17391746
},
17401747
"packages": {
1748+
"@metamask/controller-utils": true,
17411749
"@metamask/eth-query>json-rpc-random-id": true,
17421750
"@metamask/ppom-validator>@metamask/base-controller": true,
1743-
"@metamask/ppom-validator>@metamask/controller-utils": true,
1751+
"@metamask/ppom-validator>crypto-js": true,
17441752
"@metamask/ppom-validator>elliptic": true,
17451753
"await-semaphore": true,
17461754
"browserify>buffer": true
@@ -1754,40 +1762,14 @@
17541762
"immer": true
17551763
}
17561764
},
1757-
"@metamask/ppom-validator>@metamask/controller-utils": {
1765+
"@metamask/ppom-validator>crypto-js": {
17581766
"globals": {
1759-
"URL": true,
1760-
"console.error": true,
1761-
"fetch": true,
1762-
"setTimeout": true
1763-
},
1764-
"packages": {
1765-
"@metamask/controller-utils>@spruceid/siwe-parser": true,
1766-
"@metamask/ppom-validator>@metamask/controller-utils>@metamask/utils": true,
1767-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
1768-
"browserify>buffer": true,
1769-
"eslint>fast-deep-equal": true,
1770-
"eth-ens-namehash": true,
1771-
"ethereumjs-util": true
1772-
}
1773-
},
1774-
"@metamask/ppom-validator>@metamask/controller-utils>@metamask/utils": {
1775-
"globals": {
1776-
"TextDecoder": true,
1777-
"TextEncoder": true
1767+
"crypto": true,
1768+
"define": true,
1769+
"msCrypto": true
17781770
},
17791771
"packages": {
1780-
"@metamask/utils>@noble/hashes": true,
1781-
"browserify>buffer": true,
1782-
"nock>debug": true,
1783-
"semver": true,
1784-
"superstruct": true
1785-
}
1786-
},
1787-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": {
1788-
"packages": {
1789-
"@metamask/ethjs>number-to-bn": true,
1790-
"bn.js": true
1772+
"browserify>browser-resolve": true
17911773
}
17921774
},
17931775
"@metamask/ppom-validator>elliptic": {
@@ -1956,7 +1938,7 @@
19561938
},
19571939
"packages": {
19581940
"@metamask/controller-utils>@spruceid/siwe-parser": true,
1959-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
1941+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
19601942
"@metamask/utils": true,
19611943
"browserify>buffer": true,
19621944
"eslint>fast-deep-equal": true,
@@ -2001,7 +1983,7 @@
20011983
},
20021984
"packages": {
20031985
"@metamask/controller-utils>@spruceid/siwe-parser": true,
2004-
"@metamask/ppom-validator>@metamask/controller-utils>ethjs-unit": true,
1986+
"@metamask/message-manager>@metamask/controller-utils>ethjs-unit": true,
20051987
"@metamask/utils": true,
20061988
"browserify>buffer": true,
20071989
"eslint>fast-deep-equal": true,

0 commit comments

Comments
 (0)