From 8df4f6122d8ed0a9abcaf8f3781a818e166defe8 Mon Sep 17 00:00:00 2001 From: Charly Chevalier Date: Tue, 7 Oct 2025 15:03:38 +0200 Subject: [PATCH 1/5] chore: bump accounts dependencies --- packages/site/package.json | 3 +- packages/site/src/pages/index.tsx | 2 +- packages/snap/package.json | 5 +- packages/snap/snap.manifest.json | 4 +- packages/snap/src/index.ts | 2 +- packages/snap/src/keyring.ts | 6 +- yarn.lock | 310 ++++++++++++++++++++++++++++-- 7 files changed, 309 insertions(+), 23 deletions(-) diff --git a/packages/site/package.json b/packages/site/package.json index 43f5f022..75d65ec6 100644 --- a/packages/site/package.json +++ b/packages/site/package.json @@ -35,7 +35,8 @@ "dependencies": { "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@metamask/keyring-api": "^8.1.3", + "@metamask/keyring-api": "^21.0.0", + "@metamask/keyring-snap-client": "^8.0.0", "@metamask/providers": "^13.0.0", "@mui/icons-material": "^5.14.0", "@mui/material": "^5.14.0", diff --git a/packages/site/src/pages/index.tsx b/packages/site/src/pages/index.tsx index 288c7d34..e5e3f1a1 100644 --- a/packages/site/src/pages/index.tsx +++ b/packages/site/src/pages/index.tsx @@ -1,5 +1,5 @@ import type { KeyringAccount, KeyringRequest } from '@metamask/keyring-api'; -import { KeyringSnapRpcClient } from '@metamask/keyring-api'; +import { KeyringSnapRpcClient } from '@metamask/keyring-snap-client'; import Grid from '@mui/material/Grid'; import React, { useCallback, useContext, useEffect, useState } from 'react'; diff --git a/packages/snap/package.json b/packages/snap/package.json index ee79ade1..1fddfe88 100644 --- a/packages/snap/package.json +++ b/packages/snap/package.json @@ -42,8 +42,9 @@ "@ethereumjs/tx": "^4.1.2", "@ethereumjs/util": "^8.0.5", "@metamask/eth-sig-util": "^7.0.1", - "@metamask/keyring-api": "^8.1.3", - "@metamask/snaps-sdk": "^6.19.0", + "@metamask/keyring-api": "^21.0.0", + "@metamask/keyring-snap-sdk": "^7.0.0", + "@metamask/snaps-sdk": "^7.0.0", "@metamask/utils": "^8.1.0", "uuid": "^9.0.0" }, diff --git a/packages/snap/snap.manifest.json b/packages/snap/snap.manifest.json index 2c678f59..c64ef278 100644 --- a/packages/snap/snap.manifest.json +++ b/packages/snap/snap.manifest.json @@ -7,7 +7,7 @@ "url": "git+https://github.com/MetaMask/snap-simple-keyring.git" }, "source": { - "shasum": "bFMN5hlkguPBHNaiusJPWZh6yhFnTShcY1mu0Ko5YMM=", + "shasum": "aeMoTiPM4tFI5jF9OnwClsy0EUn9H84AxFRO4QkjdAg=", "location": { "npm": { "filePath": "dist/bundle.js", @@ -27,6 +27,6 @@ "snap_manageAccounts": {}, "snap_manageState": {} }, - "platformVersion": "6.19.0", + "platformVersion": "7.1.0", "manifestVersion": "0.1" } diff --git a/packages/snap/src/index.ts b/packages/snap/src/index.ts index 6161d09f..ef2d5a36 100644 --- a/packages/snap/src/index.ts +++ b/packages/snap/src/index.ts @@ -1,7 +1,7 @@ import { MethodNotSupportedError, handleKeyringRequest, -} from '@metamask/keyring-api'; +} from '@metamask/keyring-snap-sdk'; import type { OnKeyringRequestHandler, OnRpcRequestHandler, diff --git a/packages/snap/src/keyring.ts b/packages/snap/src/keyring.ts index c26756f4..728f960d 100644 --- a/packages/snap/src/keyring.ts +++ b/packages/snap/src/keyring.ts @@ -26,9 +26,10 @@ import type { import { EthAccountType, EthMethod, - emitSnapKeyringEvent, + EthScope, + KeyringEvent, } from '@metamask/keyring-api'; -import { KeyringEvent } from '@metamask/keyring-api/dist/events'; +import { emitSnapKeyringEvent } from '@metamask/keyring-snap-sdk'; import { type Json, type JsonRpcRequest } from '@metamask/utils'; import { Buffer } from 'buffer'; import { v4 as uuid } from 'uuid'; @@ -94,6 +95,7 @@ export class SimpleKeyring implements Keyring { id: uuid(), options, address, + scopes: [EthScope.Eoa], methods: [ EthMethod.PersonalSign, EthMethod.Sign, diff --git a/yarn.lock b/yarn.lock index f460c5b0..ca525971 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2143,6 +2143,15 @@ __metadata: languageName: node linkType: hard +"@ethereumjs/common@npm:^4.4.0": + version: 4.4.0 + resolution: "@ethereumjs/common@npm:4.4.0" + dependencies: + "@ethereumjs/util": ^9.1.0 + checksum: 6b8cbfcfb5bdde839545c89dce3665706733260e26455d0eb3bcbc3c09e371ae629d51032b95d86f2aeeb15325244a6622171f9005165266fefd923eaa99f1c5 + languageName: node + linkType: hard + "@ethereumjs/rlp@npm:^4.0.1": version: 4.0.1 resolution: "@ethereumjs/rlp@npm:4.0.1" @@ -2152,6 +2161,15 @@ __metadata: languageName: node linkType: hard +"@ethereumjs/rlp@npm:^5.0.2": + version: 5.0.2 + resolution: "@ethereumjs/rlp@npm:5.0.2" + bin: + rlp: bin/rlp.cjs + checksum: b569061ddb1f4cf56a82f7a677c735ba37f9e94e2bbaf567404beb9e2da7aa1f595e72fc12a17c61f7aec67fd5448443efe542967c685a2fe0ffc435793dcbab + languageName: node + linkType: hard + "@ethereumjs/tx@npm:^4.1.2, @ethereumjs/tx@npm:^4.2.0": version: 4.2.0 resolution: "@ethereumjs/tx@npm:4.2.0" @@ -2164,6 +2182,18 @@ __metadata: languageName: node linkType: hard +"@ethereumjs/tx@npm:^5.4.0": + version: 5.4.0 + resolution: "@ethereumjs/tx@npm:5.4.0" + dependencies: + "@ethereumjs/common": ^4.4.0 + "@ethereumjs/rlp": ^5.0.2 + "@ethereumjs/util": ^9.1.0 + ethereum-cryptography: ^2.2.1 + checksum: 72882a977dee4a15b5216ccdee906b6d9488e3ab93cadc1d6639a841e81b91c71d01221c56ac541026d592b8b33345cdc5468e711013e8fa33ac6da18089cf2c + languageName: node + linkType: hard + "@ethereumjs/util@npm:^8.0.5, @ethereumjs/util@npm:^8.1.0": version: 8.1.0 resolution: "@ethereumjs/util@npm:8.1.0" @@ -2175,6 +2205,16 @@ __metadata: languageName: node linkType: hard +"@ethereumjs/util@npm:^9.1.0": + version: 9.1.0 + resolution: "@ethereumjs/util@npm:9.1.0" + dependencies: + "@ethereumjs/rlp": ^5.0.2 + ethereum-cryptography: ^2.2.1 + checksum: 594e009c3001ca1ca658b4ded01b38e72f5dd5dd76389efd90cb020de099176a3327685557df268161ac3144333cfe8abaae68cda8ae035d9cc82409d386d79a + languageName: node + linkType: hard + "@floating-ui/core@npm:^1.4.2": version: 1.5.0 resolution: "@floating-ui/core@npm:1.5.0" @@ -3217,19 +3257,72 @@ __metadata: languageName: node linkType: hard -"@metamask/keyring-api@npm:^8.1.3": - version: 8.1.3 - resolution: "@metamask/keyring-api@npm:8.1.3" +"@metamask/key-tree@npm:^10.1.1": + version: 10.1.1 + resolution: "@metamask/key-tree@npm:10.1.1" dependencies: - "@metamask/snaps-sdk": ^6.5.1 + "@metamask/scure-bip39": ^2.1.1 + "@metamask/utils": ^11.0.1 + "@noble/curves": ^1.8.1 + "@noble/hashes": ^1.3.2 + "@scure/base": ^1.0.0 + checksum: f1338bcd61259584cdc0fb2ff5f4cd6e753fa6f79a17abb58c64e754accb73a16f8129fbd6ffe1232e7cb72a8c32295e4b57c911b9aaabc6072611cff7d4ea46 + languageName: node + linkType: hard + +"@metamask/keyring-api@npm:^21.0.0": + version: 21.0.0 + resolution: "@metamask/keyring-api@npm:21.0.0" + dependencies: + "@metamask/keyring-utils": ^3.1.0 + "@metamask/superstruct": ^3.1.0 + "@metamask/utils": ^11.1.0 + bitcoin-address-validation: ^2.2.3 + checksum: 8391f5be3f287805b153b02d3974a88515ec26a01fb9df84379bd85b86f665f3aabe6f036a17e140d0700d3e9c93074bb67c578566af48679073037f785f6559 + languageName: node + linkType: hard + +"@metamask/keyring-snap-client@npm:^8.0.0": + version: 8.0.0 + resolution: "@metamask/keyring-snap-client@npm:8.0.0" + dependencies: + "@metamask/keyring-api": ^21.0.0 + "@metamask/keyring-utils": ^3.1.0 "@metamask/superstruct": ^3.1.0 - "@metamask/utils": ^9.2.1 "@types/uuid": ^9.0.8 - bech32: ^2.0.0 uuid: ^9.0.1 + webextension-polyfill: ^0.12.0 + peerDependencies: + "@metamask/providers": ^19.0.0 + checksum: c657778b7494c5a5ba97b4f389ac7c86441010c7fd67135c008c8b67ddba6c97a6ffbac8ca8e4d79a66129e24063eac5fe25d89f8f6d5628037dd9109ec85c0a + languageName: node + linkType: hard + +"@metamask/keyring-snap-sdk@npm:^7.0.0": + version: 7.0.0 + resolution: "@metamask/keyring-snap-sdk@npm:7.0.0" + dependencies: + "@metamask/keyring-utils": ^3.1.0 + "@metamask/snaps-sdk": ^9.0.0 + "@metamask/superstruct": ^3.1.0 + "@metamask/utils": ^11.1.0 + webextension-polyfill: ^0.12.0 peerDependencies: - "@metamask/providers": ^17.2.0 - checksum: 5943878fa9e47aae1c5ef49a2bcdf7f69fd68532cc9ca8ab1b8d2682cd91c1ac9a6db8219df6365d71b3dcf29731f854699c74f2b3bf68a9d03ebecc5fb71e30 + "@metamask/keyring-api": ^21.0.0 + "@metamask/providers": ^19.0.0 + checksum: 6ee723d039e3b31c539fa9b8e2fa05c03e3d58a218ec3e574804a95d3637400a388626d9b85fe5401f5d551b4d9cf772f10b0009ced92118b18ad58d1fc42fef + languageName: node + linkType: hard + +"@metamask/keyring-utils@npm:^3.1.0": + version: 3.1.0 + resolution: "@metamask/keyring-utils@npm:3.1.0" + dependencies: + "@ethereumjs/tx": ^5.4.0 + "@metamask/superstruct": ^3.1.0 + "@metamask/utils": ^11.1.0 + bitcoin-address-validation: ^2.2.3 + checksum: 93ebd440ff7e4a28a829d0e7a7c2d38c27cf3b329d156a5e45cab1f0cd0400731abe017a0adcc9c366f2840678a989fdb385b66b1ac9fb3dc3642d1571691db7 languageName: node linkType: hard @@ -3323,6 +3416,27 @@ __metadata: languageName: node linkType: hard +"@metamask/providers@npm:^22.1.0": + version: 22.1.1 + resolution: "@metamask/providers@npm:22.1.1" + dependencies: + "@metamask/json-rpc-engine": ^10.0.2 + "@metamask/json-rpc-middleware-stream": ^8.0.6 + "@metamask/object-multiplex": ^2.0.0 + "@metamask/rpc-errors": ^7.0.2 + "@metamask/safe-event-emitter": ^3.1.1 + "@metamask/utils": ^11.0.1 + detect-browser: ^5.2.0 + extension-port-stream: ^4.1.0 + fast-deep-equal: ^3.1.3 + is-stream: ^2.0.0 + readable-stream: ^3.6.2 + peerDependencies: + webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 + checksum: 894bc8f481487954c08eb660cfa2b27c5cb621e00e2a4bf51ecccbc5f210431ed06a7f2b683d630e2ee24dbdbe4ab5dc27306b04a19b67535c4e007832a34de6 + languageName: node + linkType: hard + "@metamask/rpc-errors@npm:^6.0.0": version: 6.3.1 resolution: "@metamask/rpc-errors@npm:6.3.1" @@ -3343,6 +3457,16 @@ __metadata: languageName: node linkType: hard +"@metamask/rpc-errors@npm:^7.0.3": + version: 7.0.3 + resolution: "@metamask/rpc-errors@npm:7.0.3" + dependencies: + "@metamask/utils": ^11.4.2 + fast-safe-stringify: ^2.0.6 + checksum: 274ec61d1a567a0a34cda6202af8e91dc2822dc24f0280358c6efedbca8bda1bfb87609fb448ee90652bc597be6a3d678da315ca3ead92f90a89933975c98107 + languageName: node + linkType: hard + "@metamask/safe-event-emitter@npm:^3.0.0, @metamask/safe-event-emitter@npm:^3.1.1": version: 3.1.1 resolution: "@metamask/safe-event-emitter@npm:3.1.1" @@ -3378,7 +3502,8 @@ __metadata: "@metamask/eslint-config-jest": ^12.1.0 "@metamask/eslint-config-nodejs": ^12.1.0 "@metamask/eslint-config-typescript": ^12.1.0 - "@metamask/keyring-api": ^8.1.3 + "@metamask/keyring-api": ^21.0.0 + "@metamask/keyring-snap-client": ^8.0.0 "@metamask/providers": ^13.0.0 "@mui/icons-material": ^5.14.0 "@mui/material": ^5.14.0 @@ -3433,9 +3558,10 @@ __metadata: "@metamask/eslint-config-nodejs": ^12.1.0 "@metamask/eslint-config-typescript": ^12.1.0 "@metamask/eth-sig-util": ^7.0.1 - "@metamask/keyring-api": ^8.1.3 + "@metamask/keyring-api": ^21.0.0 + "@metamask/keyring-snap-sdk": ^7.0.0 "@metamask/snaps-cli": ^6.7.0 - "@metamask/snaps-sdk": ^6.19.0 + "@metamask/snaps-sdk": ^7.0.0 "@metamask/utils": ^8.1.0 "@types/node": ^20.6.2 "@typescript-eslint/eslint-plugin": ^5.33.0 @@ -3553,7 +3679,7 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-sdk@npm:^6.15.0, @metamask/snaps-sdk@npm:^6.17.0, @metamask/snaps-sdk@npm:^6.17.1, @metamask/snaps-sdk@npm:^6.19.0, @metamask/snaps-sdk@npm:^6.5.1": +"@metamask/snaps-sdk@npm:^6.15.0, @metamask/snaps-sdk@npm:^6.17.0, @metamask/snaps-sdk@npm:^6.17.1": version: 6.19.0 resolution: "@metamask/snaps-sdk@npm:6.19.0" dependencies: @@ -3566,6 +3692,32 @@ __metadata: languageName: node linkType: hard +"@metamask/snaps-sdk@npm:^7.0.0": + version: 7.1.0 + resolution: "@metamask/snaps-sdk@npm:7.1.0" + dependencies: + "@metamask/key-tree": ^10.1.1 + "@metamask/providers": ^22.1.0 + "@metamask/rpc-errors": ^7.0.2 + "@metamask/superstruct": ^3.2.1 + "@metamask/utils": ^11.4.0 + checksum: 9d21b7193ce7dfc388188c9b8ad3983decc3d71f6478af23318933b214a6d42e5e152eb44815a0cdfc9b20eb1cee0a44e87793c3027bcbbdb4d9aa566e8c7743 + languageName: node + linkType: hard + +"@metamask/snaps-sdk@npm:^9.0.0": + version: 9.3.0 + resolution: "@metamask/snaps-sdk@npm:9.3.0" + dependencies: + "@metamask/key-tree": ^10.1.1 + "@metamask/providers": ^22.1.0 + "@metamask/rpc-errors": ^7.0.3 + "@metamask/superstruct": ^3.2.1 + "@metamask/utils": ^11.4.2 + checksum: 0ddffc266c3802ab97724af94d07356ac8e55d91030d3f246e5f2c9154c61e8eae6f0b320cafd9bd8eca245d83c5603d0aae8c7426ed12496d512728970f4153 + languageName: node + linkType: hard + "@metamask/snaps-utils@npm:^8.10.0, @metamask/snaps-utils@npm:^8.8.0": version: 8.10.0 resolution: "@metamask/snaps-utils@npm:8.10.0" @@ -3617,6 +3769,13 @@ __metadata: languageName: node linkType: hard +"@metamask/superstruct@npm:^3.2.1": + version: 3.2.1 + resolution: "@metamask/superstruct@npm:3.2.1" + checksum: 194e4afc4df89f347e4dd16db8f8dfcbf7990ff82169c3bd43b98ecff2f1ef09488b987af612cc1ea2689826e8460bb2b01e1a3a340383420115b3a90aa68465 + languageName: node + linkType: hard + "@metamask/utils@npm:^11.0.1, @metamask/utils@npm:^11.1.0, @metamask/utils@npm:^11.2.0": version: 11.2.0 resolution: "@metamask/utils@npm:11.2.0" @@ -3634,6 +3793,25 @@ __metadata: languageName: node linkType: hard +"@metamask/utils@npm:^11.4.0, @metamask/utils@npm:^11.4.2": + version: 11.8.1 + resolution: "@metamask/utils@npm:11.8.1" + dependencies: + "@ethereumjs/tx": ^4.2.0 + "@metamask/superstruct": ^3.1.0 + "@noble/hashes": ^1.3.1 + "@scure/base": ^1.1.3 + "@types/debug": ^4.1.7 + "@types/lodash": ^4.17.20 + debug: ^4.3.4 + lodash: ^4.17.21 + pony-cause: ^2.1.10 + semver: ^7.5.4 + uuid: ^9.0.1 + checksum: 4a2a355c7875eea28ba5750ba771d3b2aa966e77acbac9b7966e7e154cf81fd2c4c9bc08e5a0382a1b743ad6f441eb259ca4720585ef00c0b23f1582207f43c1 + languageName: node + linkType: hard + "@metamask/utils@npm:^8.0.0, @metamask/utils@npm:^8.1.0": version: 8.1.0 resolution: "@metamask/utils@npm:8.1.0" @@ -3648,7 +3826,7 @@ __metadata: languageName: node linkType: hard -"@metamask/utils@npm:^9.0.0, @metamask/utils@npm:^9.2.1": +"@metamask/utils@npm:^9.0.0": version: 9.2.1 resolution: "@metamask/utils@npm:9.2.1" dependencies: @@ -3910,6 +4088,15 @@ __metadata: languageName: node linkType: hard +"@noble/curves@npm:1.4.2, @noble/curves@npm:~1.4.0": + version: 1.4.2 + resolution: "@noble/curves@npm:1.4.2" + dependencies: + "@noble/hashes": 1.4.0 + checksum: c475a83c4263e2c970eaba728895b9b5d67e0ca880651e9c6e3efdc5f6a4f07ceb5b043bf71c399fc80fada0b8706e69d0772bffdd7b9de2483b988973a34cba + languageName: node + linkType: hard + "@noble/curves@npm:^1.2.0": version: 1.5.0 resolution: "@noble/curves@npm:1.5.0" @@ -3919,6 +4106,15 @@ __metadata: languageName: node linkType: hard +"@noble/curves@npm:^1.8.1": + version: 1.9.7 + resolution: "@noble/curves@npm:1.9.7" + dependencies: + "@noble/hashes": 1.8.0 + checksum: 65acad44ac6944ab96471109087d6cfcbcaa251faad6295961be9a5ace220634f4b7c74a96d1ee2274ad3880ea953d8e8259893ed8c906c831ef29f5c04ec9cc + languageName: node + linkType: hard + "@noble/hashes@npm:1.3.1": version: 1.3.1 resolution: "@noble/hashes@npm:1.3.1" @@ -3926,13 +4122,20 @@ __metadata: languageName: node linkType: hard -"@noble/hashes@npm:1.4.0": +"@noble/hashes@npm:1.4.0, @noble/hashes@npm:~1.4.0": version: 1.4.0 resolution: "@noble/hashes@npm:1.4.0" checksum: 8ba816ae26c90764b8c42493eea383716396096c5f7ba6bea559993194f49d80a73c081f315f4c367e51bd2d5891700bcdfa816b421d24ab45b41cb03e4f3342 languageName: node linkType: hard +"@noble/hashes@npm:1.8.0": + version: 1.8.0 + resolution: "@noble/hashes@npm:1.8.0" + checksum: c94e98b941963676feaba62475b1ccfa8341e3f572adbb3b684ee38b658df44100187fa0ef4220da580b13f8d27e87d5492623c8a02ecc61f23fb9960c7918f5 + languageName: node + linkType: hard + "@noble/hashes@npm:^1.1.2, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.2": version: 1.7.1 resolution: "@noble/hashes@npm:1.7.1" @@ -4666,6 +4869,13 @@ __metadata: languageName: node linkType: hard +"@scure/base@npm:~1.1.6": + version: 1.1.9 + resolution: "@scure/base@npm:1.1.9" + checksum: 120820a37dfe9dfe4cab2b7b7460552d08e67dee8057ed5354eb68d8e3440890ae983ce3bee957d2b45684950b454a2b6d71d5ee77c1fd3fddc022e2a510337f + languageName: node + linkType: hard + "@scure/bip32@npm:1.3.1": version: 1.3.1 resolution: "@scure/bip32@npm:1.3.1" @@ -4677,6 +4887,17 @@ __metadata: languageName: node linkType: hard +"@scure/bip32@npm:1.4.0": + version: 1.4.0 + resolution: "@scure/bip32@npm:1.4.0" + dependencies: + "@noble/curves": ~1.4.0 + "@noble/hashes": ~1.4.0 + "@scure/base": ~1.1.6 + checksum: eff491651cbf2bea8784936de75af5fc020fc1bbb9bcb26b2cfeefbd1fb2440ebfaf30c0733ca11c0ae1e272a2ef4c3c34ba5c9fb3e1091c3285a4272045b0c6 + languageName: node + linkType: hard + "@scure/bip39@npm:1.2.1": version: 1.2.1 resolution: "@scure/bip39@npm:1.2.1" @@ -4687,6 +4908,16 @@ __metadata: languageName: node linkType: hard +"@scure/bip39@npm:1.3.0": + version: 1.3.0 + resolution: "@scure/bip39@npm:1.3.0" + dependencies: + "@noble/hashes": ~1.4.0 + "@scure/base": ~1.1.6 + checksum: dbb0b27df753eb6c6380010b25cc9a9ea31f9cb08864fc51e69e5880ff7e2b8f85b72caea1f1f28af165e83b72c48dd38617e43fc632779d025b50ba32ea759e + languageName: node + linkType: hard + "@sideway/address@npm:^4.1.3": version: 4.1.4 resolution: "@sideway/address@npm:4.1.4" @@ -5627,6 +5858,13 @@ __metadata: languageName: node linkType: hard +"@types/lodash@npm:^4.17.20": + version: 4.17.20 + resolution: "@types/lodash@npm:4.17.20" + checksum: dc7bb4653514dd91117a4c4cec2c37e2b5a163d7643445e4757d76a360fabe064422ec7a42dde7450c5e7e0e7e678d5e6eae6d2a919abcddf581d81e63e63839 + languageName: node + linkType: hard + "@types/mime@npm:*": version: 3.0.1 resolution: "@types/mime@npm:3.0.1" @@ -7414,6 +7652,13 @@ __metadata: languageName: node linkType: hard +"base58-js@npm:^1.0.0": + version: 1.0.5 + resolution: "base58-js@npm:1.0.5" + checksum: 46c1b39d3a70bca0a47d56069c74a25d547680afd0f28609c90f280f5d614f5de36db5df993fa334db24008a68ab784a72fcdaa13eb40078e03c8999915a1100 + languageName: node + linkType: hard + "base64-js@npm:^1.0.2, base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -7497,6 +7742,17 @@ __metadata: languageName: node linkType: hard +"bitcoin-address-validation@npm:^2.2.3": + version: 2.2.3 + resolution: "bitcoin-address-validation@npm:2.2.3" + dependencies: + base58-js: ^1.0.0 + bech32: ^2.0.0 + sha256-uint8array: ^0.10.3 + checksum: 71ff67397275ef52a9e5e1f614fb57e9142d2a4d2f140c266051dc71f8b698930516133a2e1261def457ad4ecbe650535d4360367ece2d389001ec2a5a3d60f6 + languageName: node + linkType: hard + "bl@npm:^4.0.3, bl@npm:^4.1.0": version: 4.1.0 resolution: "bl@npm:4.1.0" @@ -11198,6 +11454,18 @@ __metadata: languageName: node linkType: hard +"ethereum-cryptography@npm:^2.2.1": + version: 2.2.1 + resolution: "ethereum-cryptography@npm:2.2.1" + dependencies: + "@noble/curves": 1.4.2 + "@noble/hashes": 1.4.0 + "@scure/bip32": 1.4.0 + "@scure/bip39": 1.3.0 + checksum: 1466e4c417b315a6ac67f95088b769fafac8902b495aada3c6375d827e5a7882f9e0eea5f5451600d2250283d9198b8a3d4d996e374e07a80a324e29136f25c6 + languageName: node + linkType: hard + "event-emitter@npm:^0.3.5": version: 0.3.5 resolution: "event-emitter@npm:0.3.5" @@ -19864,6 +20132,13 @@ __metadata: languageName: node linkType: hard +"sha256-uint8array@npm:^0.10.3": + version: 0.10.7 + resolution: "sha256-uint8array@npm:0.10.7" + checksum: ff735efd42664ab3d663cbc71a2e5f58a02637e9d57e072c509b5765f5368a2dc34fafefa390e065ef24415946b780ac72fd4582eeeb745ece42256de5b85e94 + languageName: node + linkType: hard + "shallow-clone@npm:^3.0.0": version: 3.0.1 resolution: "shallow-clone@npm:3.0.1" @@ -22010,6 +22285,13 @@ __metadata: languageName: node linkType: hard +"webextension-polyfill@npm:^0.12.0": + version: 0.12.0 + resolution: "webextension-polyfill@npm:0.12.0" + checksum: fc2166c8c9d3f32d7742727394092ff1a1eb19cbc4e5a73066d57f9bff1684e38342b90fabd23981e7295e904c536e8509552a64e989d217dae5de6ddca73532 + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" From b2d3b0e8e903b857cea6b0fa1288e090d55b8923 Mon Sep 17 00:00:00 2001 From: Charly Chevalier Date: Tue, 7 Oct 2025 21:15:02 +0200 Subject: [PATCH 2/5] build: workaround webpack build issue --- .../@noble-hashes-npm-1.7.1-4106ab26c5.patch | 27 +++++++++++++++++++ package.json | 5 ++++ yarn.lock | 21 ++++++++++----- 3 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 .yarn/patches/@noble-hashes-npm-1.7.1-4106ab26c5.patch diff --git a/.yarn/patches/@noble-hashes-npm-1.7.1-4106ab26c5.patch b/.yarn/patches/@noble-hashes-npm-1.7.1-4106ab26c5.patch new file mode 100644 index 00000000..f512995b --- /dev/null +++ b/.yarn/patches/@noble-hashes-npm-1.7.1-4106ab26c5.patch @@ -0,0 +1,27 @@ +diff --git a/esm/cryptoNode.js b/esm/cryptoNode.js +index 4f77e8f46c5e242e1e3cb92712dc65e95a8b8eb0..acd05d884061e18adf27d33ba4a1c55e9cc85e7f 100644 +--- a/esm/cryptoNode.js ++++ b/esm/cryptoNode.js +@@ -7,9 +7,19 @@ + */ + // @ts-ignore + import * as nc from 'node:crypto'; +-export const crypto = nc && typeof nc === 'object' && 'webcrypto' in nc +- ? nc.webcrypto +- : nc && typeof nc === 'object' && 'randomBytes' in nc ++// It seems `webpack` is not able to resolve `nc.webcrypto` at build time. Probably because ++// we use `crypto-browserify` under the hood, and this package does not expose `webcrypto`. ++// While this work when using `require` imports, it seems to fail with ESM exports (at least ++// in this case). ++// export const crypto = nc && typeof nc === 'object' && 'webcrypto' in nc ++// ? nc.webcrypto ++// : nc && typeof nc === 'object' && 'randomBytes' in nc ++// ? nc ++// : undefined; ++ ++// We just fallback to the "normal crypto" object to workaround this. ++export const crypto = ++ nc && typeof nc === 'object' && 'randomBytes' in nc + ? nc + : undefined; + //# sourceMappingURL=cryptoNode.js.map diff --git a/package.json b/package.json index 95b9fb5a..0c0f1da5 100644 --- a/package.json +++ b/package.json @@ -57,5 +57,10 @@ "packageManager": "yarn@3.6.3", "engines": { "node": ">=18.0.0" + }, + "resolutions": { + "@noble/hashes@^1.1.2": "patch:@noble/hashes@npm%3A1.7.1#./.yarn/patches/@noble-hashes-npm-1.7.1-4106ab26c5.patch", + "@noble/hashes@^1.3.1": "patch:@noble/hashes@npm%3A1.7.1#./.yarn/patches/@noble-hashes-npm-1.7.1-4106ab26c5.patch", + "@noble/hashes@^1.3.2": "patch:@noble/hashes@npm%3A1.7.1#./.yarn/patches/@noble-hashes-npm-1.7.1-4106ab26c5.patch" } } diff --git a/yarn.lock b/yarn.lock index ca525971..42ead2b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4129,6 +4129,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:1.7.1": + version: 1.7.1 + resolution: "@noble/hashes@npm:1.7.1" + checksum: 4f1b56428a10323feef17e4f437c9093556cb18db06f94d254043fadb69c3da8475f96eb3f8322d41e8670117d7486475a8875e68265c2839f60fd03edd6a616 + languageName: node + linkType: hard + "@noble/hashes@npm:1.8.0": version: 1.8.0 resolution: "@noble/hashes@npm:1.8.0" @@ -4136,13 +4143,6 @@ __metadata: languageName: node linkType: hard -"@noble/hashes@npm:^1.1.2, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.2": - version: 1.7.1 - resolution: "@noble/hashes@npm:1.7.1" - checksum: 4f1b56428a10323feef17e4f437c9093556cb18db06f94d254043fadb69c3da8475f96eb3f8322d41e8670117d7486475a8875e68265c2839f60fd03edd6a616 - languageName: node - linkType: hard - "@noble/hashes@npm:~1.3.0, @noble/hashes@npm:~1.3.1, @noble/hashes@npm:~1.3.2": version: 1.3.3 resolution: "@noble/hashes@npm:1.3.3" @@ -4150,6 +4150,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@patch:@noble/hashes@npm%3A1.7.1#./.yarn/patches/@noble-hashes-npm-1.7.1-4106ab26c5.patch::locator=%40metamask%2Fsnap-simple-keyring%40workspace%3A.": + version: 1.7.1 + resolution: "@noble/hashes@patch:@noble/hashes@npm%3A1.7.1#./.yarn/patches/@noble-hashes-npm-1.7.1-4106ab26c5.patch::version=1.7.1&hash=4fc2d8&locator=%40metamask%2Fsnap-simple-keyring%40workspace%3A." + checksum: 28eb99d01c3cbc18a98490228609a1ad44d9eca5521d91ccbc8068f6c039a2263f8fbe97779a92bd000f27454b0dc2c7be353b551bc782b54d262e79dc2cb3be + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" From d85a0cabc833908b7cfc07152ba335f2360680fa Mon Sep 17 00:00:00 2001 From: Charly Chevalier Date: Tue, 7 Oct 2025 21:15:43 +0200 Subject: [PATCH 3/5] build: snap.manifest.json --- packages/snap/snap.manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/snap/snap.manifest.json b/packages/snap/snap.manifest.json index c64ef278..50ce27fe 100644 --- a/packages/snap/snap.manifest.json +++ b/packages/snap/snap.manifest.json @@ -7,7 +7,7 @@ "url": "git+https://github.com/MetaMask/snap-simple-keyring.git" }, "source": { - "shasum": "aeMoTiPM4tFI5jF9OnwClsy0EUn9H84AxFRO4QkjdAg=", + "shasum": "ZmIflRibnpSfxo/UbpxVB7djCzQOAiL/mdEldgZPWXc=", "location": { "npm": { "filePath": "dist/bundle.js", From 897144f9a44d6c68ea81732c98f60fa7eec1fffb Mon Sep 17 00:00:00 2001 From: Charly Chevalier Date: Tue, 7 Oct 2025 21:22:06 +0200 Subject: [PATCH 4/5] chore: lint --- packages/snap/src/keyring.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/snap/src/keyring.ts b/packages/snap/src/keyring.ts index 728f960d..033c3d1f 100644 --- a/packages/snap/src/keyring.ts +++ b/packages/snap/src/keyring.ts @@ -20,6 +20,7 @@ import { import type { Keyring, KeyringAccount, + KeyringEventPayload, KeyringRequest, SubmitRequestResponse, } from '@metamask/keyring-api'; @@ -394,9 +395,9 @@ export class SimpleKeyring implements Keyring { await saveState(this.#state); } - async #emitEvent( - event: KeyringEvent, - data: Record, + async #emitEvent( + event: Event, + data: KeyringEventPayload, ): Promise { await emitSnapKeyringEvent(snap, event, data); } From fd8bf5786fb0196d3e76879950c2153e2d55a937 Mon Sep 17 00:00:00 2001 From: Charly Chevalier Date: Tue, 7 Oct 2025 21:25:25 +0200 Subject: [PATCH 5/5] chore: revert snaps-sdk update --- packages/snap/package.json | 2 +- packages/snap/snap.manifest.json | 4 ++-- yarn.lock | 19 +++---------------- 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/packages/snap/package.json b/packages/snap/package.json index 1fddfe88..0c18a3b2 100644 --- a/packages/snap/package.json +++ b/packages/snap/package.json @@ -44,7 +44,7 @@ "@metamask/eth-sig-util": "^7.0.1", "@metamask/keyring-api": "^21.0.0", "@metamask/keyring-snap-sdk": "^7.0.0", - "@metamask/snaps-sdk": "^7.0.0", + "@metamask/snaps-sdk": "^6.19.0", "@metamask/utils": "^8.1.0", "uuid": "^9.0.0" }, diff --git a/packages/snap/snap.manifest.json b/packages/snap/snap.manifest.json index 50ce27fe..07c28cb8 100644 --- a/packages/snap/snap.manifest.json +++ b/packages/snap/snap.manifest.json @@ -7,7 +7,7 @@ "url": "git+https://github.com/MetaMask/snap-simple-keyring.git" }, "source": { - "shasum": "ZmIflRibnpSfxo/UbpxVB7djCzQOAiL/mdEldgZPWXc=", + "shasum": "JqHSAfhSdIosNdTXR5Pi6lHdO9hTuRSyRE0Q0Tvzaks=", "location": { "npm": { "filePath": "dist/bundle.js", @@ -27,6 +27,6 @@ "snap_manageAccounts": {}, "snap_manageState": {} }, - "platformVersion": "7.1.0", + "platformVersion": "6.19.0", "manifestVersion": "0.1" } diff --git a/yarn.lock b/yarn.lock index 42ead2b9..4b563246 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3561,7 +3561,7 @@ __metadata: "@metamask/keyring-api": ^21.0.0 "@metamask/keyring-snap-sdk": ^7.0.0 "@metamask/snaps-cli": ^6.7.0 - "@metamask/snaps-sdk": ^7.0.0 + "@metamask/snaps-sdk": ^6.19.0 "@metamask/utils": ^8.1.0 "@types/node": ^20.6.2 "@typescript-eslint/eslint-plugin": ^5.33.0 @@ -3679,7 +3679,7 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-sdk@npm:^6.15.0, @metamask/snaps-sdk@npm:^6.17.0, @metamask/snaps-sdk@npm:^6.17.1": +"@metamask/snaps-sdk@npm:^6.15.0, @metamask/snaps-sdk@npm:^6.17.0, @metamask/snaps-sdk@npm:^6.17.1, @metamask/snaps-sdk@npm:^6.19.0": version: 6.19.0 resolution: "@metamask/snaps-sdk@npm:6.19.0" dependencies: @@ -3692,19 +3692,6 @@ __metadata: languageName: node linkType: hard -"@metamask/snaps-sdk@npm:^7.0.0": - version: 7.1.0 - resolution: "@metamask/snaps-sdk@npm:7.1.0" - dependencies: - "@metamask/key-tree": ^10.1.1 - "@metamask/providers": ^22.1.0 - "@metamask/rpc-errors": ^7.0.2 - "@metamask/superstruct": ^3.2.1 - "@metamask/utils": ^11.4.0 - checksum: 9d21b7193ce7dfc388188c9b8ad3983decc3d71f6478af23318933b214a6d42e5e152eb44815a0cdfc9b20eb1cee0a44e87793c3027bcbbdb4d9aa566e8c7743 - languageName: node - linkType: hard - "@metamask/snaps-sdk@npm:^9.0.0": version: 9.3.0 resolution: "@metamask/snaps-sdk@npm:9.3.0" @@ -3793,7 +3780,7 @@ __metadata: languageName: node linkType: hard -"@metamask/utils@npm:^11.4.0, @metamask/utils@npm:^11.4.2": +"@metamask/utils@npm:^11.4.2": version: 11.8.1 resolution: "@metamask/utils@npm:11.8.1" dependencies: