Skip to content

Commit 74a2526

Browse files
perf!: Use mnemonic seed for state persistence key derivation (#3217)
Bump key-tree to the latest version which includes a bunch of performance improvements. One of these performance improvements is the ability to use `.fromSeed`. This PR adds functionality to derive the keys used for state encryption using the mnemonic seed instead of the mnemonic phrase. This should save us more than half of the compute time required for deriving keys used for state persistence. This PR does not yet tackle `getEntropy` or `getBipEntropy` methods, these will be supported in a follow-up. Closes #3218 **Breaking changes** - `SnapController` now expects a `getMnemonicSeed` hook that must return the BIP39 seed for the user's primary mnemonic.
1 parent 8d318a5 commit 74a2526

File tree

27 files changed

+230
-106
lines changed

27 files changed

+230
-106
lines changed

packages/examples/packages/bip32/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"test:watch": "jest --watch"
4444
},
4545
"dependencies": {
46-
"@metamask/key-tree": "^10.0.2",
46+
"@metamask/key-tree": "^10.1.0",
4747
"@metamask/snaps-sdk": "workspace:^",
4848
"@metamask/utils": "^11.2.0",
4949
"@noble/ed25519": "^1.6.0",

packages/examples/packages/bip32/snap.manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "https://github.com/MetaMask/snaps.git"
88
},
99
"source": {
10-
"shasum": "nS48OH2I7YacX70E4rPCF+870ZdKRaJb66DwFU6zu8M=",
10+
"shasum": "HwrsD47LbsSGHt9MwKLSl50VI8lnsY1yxq/LPa1BBcc=",
1111
"location": {
1212
"npm": {
1313
"filePath": "dist/bundle.js",

packages/examples/packages/bip44/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"test:watch": "jest --watch"
4444
},
4545
"dependencies": {
46-
"@metamask/key-tree": "^10.0.2",
46+
"@metamask/key-tree": "^10.1.0",
4747
"@metamask/snaps-sdk": "workspace:^",
4848
"@metamask/utils": "^11.2.0",
4949
"@noble/bls12-381": "^1.2.0"

packages/examples/packages/bip44/snap.manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "https://github.com/MetaMask/snaps.git"
88
},
99
"source": {
10-
"shasum": "AeCVkpJQuy7JZHh5vQioQzJIbeR2H9hjYWmuGH8rww0=",
10+
"shasum": "slHRPz+TwwHJfPqaZKAwCmSUAbxi8aAvwkGWY5MJ1Fk=",
1111
"location": {
1212
"npm": {
1313
"filePath": "dist/bundle.js",

packages/examples/packages/browserify-plugin/snap.manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "https://github.com/MetaMask/snaps.git"
88
},
99
"source": {
10-
"shasum": "mLWzf5XFmDFHwK9UjU+XBds5oRdj/uXwycZlVhpsyDc=",
10+
"shasum": "M83EcfIuVLDGdfzDz6ydToeMztnTSLhjTHpkiGwi3Mo=",
1111
"location": {
1212
"npm": {
1313
"filePath": "dist/bundle.js",

packages/examples/packages/browserify/snap.manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "https://github.com/MetaMask/snaps.git"
88
},
99
"source": {
10-
"shasum": "Yf282fJUrz51Ex+hWO9f+VobgiZHhX4MJD2mkEWYAdw=",
10+
"shasum": "AEZW5peO3bzO6yrbWCplB1yo/tyNirb6bAUXwSuspBc=",
1111
"location": {
1212
"npm": {
1313
"filePath": "dist/bundle.js",

packages/examples/packages/invoke-snap/packages/consumer-signer/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@
4343
"test:watch": "jest --watch"
4444
},
4545
"dependencies": {
46-
"@metamask/key-tree": "^10.0.2",
46+
"@metamask/key-tree": "^10.1.0",
4747
"@metamask/snaps-sdk": "workspace:^",
4848
"@metamask/utils": "^11.2.0",
49-
"@noble/hashes": "^1.3.1"
49+
"@noble/hashes": "^1.7.1"
5050
},
5151
"devDependencies": {
5252
"@jest/globals": "^29.5.0",

packages/examples/packages/invoke-snap/packages/consumer-signer/snap.manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "https://github.com/MetaMask/snaps.git"
88
},
99
"source": {
10-
"shasum": "xs0Nhu0ONoHzoY0QfyPEutaBMwlMGQsoZgG88/bLxNQ=",
10+
"shasum": "crdduVCAntL3FBIJw+t7ETyP9mbZLuXShtUyP4FXU5o=",
1111
"location": {
1212
"npm": {
1313
"filePath": "dist/bundle.js",

packages/examples/packages/invoke-snap/packages/core-signer/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"test:watch": "jest --watch"
4444
},
4545
"dependencies": {
46-
"@metamask/key-tree": "^10.0.2",
46+
"@metamask/key-tree": "^10.1.0",
4747
"@metamask/snaps-sdk": "workspace:^",
4848
"@metamask/utils": "^11.2.0",
4949
"@noble/curves": "^1.1.0",
@@ -55,7 +55,7 @@
5555
"@metamask/auto-changelog": "^4.1.0",
5656
"@metamask/snaps-cli": "workspace:^",
5757
"@metamask/snaps-jest": "workspace:^",
58-
"@noble/hashes": "^1.3.1",
58+
"@noble/hashes": "^1.7.1",
5959
"@swc/core": "1.3.78",
6060
"@swc/jest": "^0.2.26",
6161
"@types/node": "18.14.2",

packages/examples/packages/invoke-snap/packages/core-signer/snap.manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "https://github.com/MetaMask/snaps.git"
88
},
99
"source": {
10-
"shasum": "uJbZD9CQgbJNvLk1lKmtfeWJNKAUf+vjZSNr+YK0Pak=",
10+
"shasum": "4MKzJCtc1uh4GzIg60F9R7FBWD8LZW8LEMe9Au7UxWQ=",
1111
"location": {
1212
"npm": {
1313
"filePath": "dist/bundle.js",

0 commit comments

Comments
 (0)