@metamask-previews/keyring-snap-sdk 9.0.1-de887b2 → 9.0.2-52bd218
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -9
- package/dist/v2/rpc-handler.cjs.map +1 -1
- package/dist/v2/rpc-handler.d.cts +2 -2
- package/dist/v2/rpc-handler.d.cts.map +1 -1
- package/dist/v2/rpc-handler.d.mts +2 -2
- package/dist/v2/rpc-handler.d.mts.map +1 -1
- package/dist/v2/rpc-handler.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,10 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [9.0.2]
|
|
11
|
+
|
|
10
12
|
### Changed
|
|
11
13
|
|
|
12
14
|
- Bump `@metamask/keyring-utils` from `^3.2.0` to `^3.3.1` ([#544](https://github.com/MetaMask/accounts/pull/544), [#546](https://github.com/MetaMask/accounts/pull/546))
|
|
13
15
|
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Use `KeyringRpc` instead of `Keyring` (v2) in `handleKeyringRequest` ([#561](https://github.com/MetaMask/accounts/pull/561))
|
|
19
|
+
- Snaps do not need to implement the full `Keyring` (v2) interface, this one is meant to be used in the "client-world".
|
|
20
|
+
- `KeyringRpc` is a subset of `Keyring` which only exposes the method that can be used through `onKeyringRequest` (`keyring_*` requests).
|
|
21
|
+
|
|
14
22
|
## [9.0.1]
|
|
15
23
|
|
|
16
24
|
### Fixed
|
|
@@ -28,7 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
28
36
|
- **BREAKING:** Move and rename `handleKeyringRequestV2` to the `./v2` module ([#513](https://github.com/MetaMask/accounts/pull/513))
|
|
29
37
|
- `handleKeyringRequestV2` is now `handleKeyringRequest` from `@metamask/keyring-snap-sdk/v2`.
|
|
30
38
|
- **BREAKING:** Bump `@metamask/keyring-api` from `^22.0.0` to `^23.0.0` ([#515](https://github.com/MetaMask/accounts/pull/515))
|
|
31
|
-
- Bump `@metamask/utils` from `^11.1.0` to `^11.11.0` ([#489](https://github.com/MetaMask/accounts/pull/489)
|
|
39
|
+
- Bump `@metamask/utils` from `^11.1.0` to `^11.11.0` ([#489](https://github.com/MetaMask/accounts/pull/489), [#483](https://github.com/MetaMask/accounts/pull/483))
|
|
32
40
|
|
|
33
41
|
## [8.0.0]
|
|
34
42
|
|
|
@@ -54,7 +62,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
54
62
|
### Changed
|
|
55
63
|
|
|
56
64
|
- Bump `@metamask/keyring-api` from `^21.2.0` to `^21.4.0` ([#460](https://github.com/MetaMask/accounts/pull/460))
|
|
57
|
-
- Bump `@metamask/snaps-sdk` from `^9.0.0` to `^10.4.0` ([#422](https://github.com/MetaMask/accounts/pull/422)
|
|
65
|
+
- Bump `@metamask/snaps-sdk` from `^9.0.0` to `^10.4.0` ([#422](https://github.com/MetaMask/accounts/pull/422), [#461](https://github.com/MetaMask/accounts/pull/461))
|
|
58
66
|
|
|
59
67
|
## [7.1.1]
|
|
60
68
|
|
|
@@ -77,7 +85,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
77
85
|
|
|
78
86
|
### Changed
|
|
79
87
|
|
|
80
|
-
- **BREAKING:** Bump `@metamask/keyring-api` from `^20.0.0` to `^21.0.0` ([#355](https://github.com/MetaMask/accounts/pull/355)
|
|
88
|
+
- **BREAKING:** Bump `@metamask/keyring-api` from `^20.0.0` to `^21.0.0` ([#355](https://github.com/MetaMask/accounts/pull/355), [#356](https://github.com/MetaMask/accounts/pull/356))
|
|
81
89
|
|
|
82
90
|
## [6.0.0]
|
|
83
91
|
|
|
@@ -92,13 +100,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
92
100
|
|
|
93
101
|
- **BREAKING:** Bump `@metamask/keyring-api` from `^18.0.0` to `^19.0.0` ([#317](https://github.com/MetaMask/accounts/pull/317))
|
|
94
102
|
- The `KeyringAccount.options` field is now partially typed.
|
|
95
|
-
- Bump `@metamask/snaps-sdk` dependency from `^6.16.0` to `^9.0.0` ([#273](https://github.com/MetaMask/accounts/pull/273)
|
|
103
|
+
- Bump `@metamask/snaps-sdk` dependency from `^6.16.0` to `^9.0.0` ([#273](https://github.com/MetaMask/accounts/pull/273), [#304](https://github.com/MetaMask/accounts/pull/304))
|
|
96
104
|
|
|
97
105
|
## [4.0.0]
|
|
98
106
|
|
|
99
107
|
### Changed
|
|
100
108
|
|
|
101
|
-
- **BREAKING:** Make `@metamask/keyring-api@^18.0.0` a peer dependency ([#290](https://github.com/MetaMask/accounts/pull/290)
|
|
109
|
+
- **BREAKING:** Make `@metamask/keyring-api@^18.0.0` a peer dependency ([#290](https://github.com/MetaMask/accounts/pull/290), [#291](https://github.com/MetaMask/accounts/pull/291))
|
|
102
110
|
|
|
103
111
|
## [3.2.0]
|
|
104
112
|
|
|
@@ -109,7 +117,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
109
117
|
### Changed
|
|
110
118
|
|
|
111
119
|
- Use event payload type for `emitSnapKeyringEvent` ([#203](https://github.com/MetaMask/accounts/pull/203))
|
|
112
|
-
- Bump `@metamask/keyring-api` from `^17.2.0` to `^17.4.0` ([#263](https://github.com/MetaMask/accounts/pull/263)
|
|
120
|
+
- Bump `@metamask/keyring-api` from `^17.2.0` to `^17.4.0` ([#263](https://github.com/MetaMask/accounts/pull/263), [#269](https://github.com/MetaMask/accounts/pull/269))
|
|
113
121
|
|
|
114
122
|
## [3.1.0]
|
|
115
123
|
|
|
@@ -121,7 +129,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
121
129
|
|
|
122
130
|
### Changed
|
|
123
131
|
|
|
124
|
-
- Bump `@metamask/keyring-api` from `^17.0.0` to `^17.2.0` ([#212](https://github.com/MetaMask/accounts/pull/212)
|
|
132
|
+
- Bump `@metamask/keyring-api` from `^17.0.0` to `^17.2.0` ([#212](https://github.com/MetaMask/accounts/pull/212), [#220](https://github.com/MetaMask/accounts/pull/220))
|
|
125
133
|
- Use `ts-bridge/cli@0.6.3` ([#214](https://github.com/MetaMask/accounts/pull/214))
|
|
126
134
|
- This new version fixes a bug regarding some missing exports.
|
|
127
135
|
|
|
@@ -143,7 +151,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
143
151
|
|
|
144
152
|
### Changed
|
|
145
153
|
|
|
146
|
-
- Bump `@metamask/keyring-api` from `^14.0.0` to `^16.0.0` ([#172](https://github.com/MetaMask/accounts/pull/172)
|
|
154
|
+
- Bump `@metamask/keyring-api` from `^14.0.0` to `^16.0.0` ([#172](https://github.com/MetaMask/accounts/pull/172), [#160](https://github.com/MetaMask/accounts/pull/160))
|
|
147
155
|
- Bump `@metamask/utils` from `^11.0.1` to `^11.1.0` ([#167](https://github.com/MetaMask/accounts/pull/167))
|
|
148
156
|
|
|
149
157
|
## [2.1.0]
|
|
@@ -174,7 +182,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
174
182
|
- This new version fixes a bug with CJS re-exports.
|
|
175
183
|
- Initial release ([#24](https://github.com/MetaMask/accounts/pull/24))
|
|
176
184
|
|
|
177
|
-
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@9.0.
|
|
185
|
+
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@9.0.2...HEAD
|
|
186
|
+
[9.0.2]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@9.0.1...@metamask/keyring-snap-sdk@9.0.2
|
|
178
187
|
[9.0.1]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@9.0.0...@metamask/keyring-snap-sdk@9.0.1
|
|
179
188
|
[9.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@8.0.0...@metamask/keyring-snap-sdk@9.0.0
|
|
180
189
|
[8.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@7.2.1...@metamask/keyring-snap-sdk@8.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-handler.cjs","sourceRoot":"","sources":["../../src/v2/rpc-handler.ts"],"names":[],"mappings":";;;AAAA,iDAQkC;AAGlC,2DAA+D;AAC/D,uDAA+C;AAG/C,0CAAwC;AACxC,oDAAyD;AAEzD,mHAAmH;AACnH,wDAAwD;AAExD;;;;;;;GAOG;AACH,KAAK,UAAU,sBAAsB,CACnC,
|
|
1
|
+
{"version":3,"file":"rpc-handler.cjs","sourceRoot":"","sources":["../../src/v2/rpc-handler.ts"],"names":[],"mappings":";;;AAAA,iDAQkC;AAGlC,2DAA+D;AAC/D,uDAA+C;AAG/C,0CAAwC;AACxC,oDAAyD;AAEzD,mHAAmH;AACnH,wDAAwD;AAExD;;;;;;;GAOG;AACH,KAAK,UAAU,sBAAsB,CACnC,OAAmB,EACnB,OAAuB;IAEvB,6EAA6E;IAC7E,gCAAgC;IAChC,IAAA,oBAAM,EAAC,OAAO,EAAE,oCAAoB,CAAC,CAAC;IAEtC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,GAAG,qBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACvC,IAAA,oBAAM,EAAC,OAAO,EAAE,6BAAwB,CAAC,CAAC;YAC1C,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC;QAED,KAAK,GAAG,qBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACtC,IAAA,oBAAM,EAAC,OAAO,EAAE,4BAAuB,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,KAAK,GAAG,qBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAC1C,IAAA,oBAAM,EAAC,OAAO,EAAE,gCAA2B,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,GAAG,qBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YACzC,IAAA,oBAAM,EAAC,OAAO,EAAE,+BAA0B,CAAC,CAAC;YAC5C,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,GAAG,qBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,qCAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC;YACD,IAAA,oBAAM,EAAC,OAAO,EAAE,+BAA0B,CAAC,CAAC;YAC5C,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1E,CAAC;QAED,KAAK,GAAG,qBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YACzC,IAAA,oBAAM,EAAC,OAAO,EAAE,+BAA0B,CAAC,CAAC;YAC5C,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAI,qCAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACI,KAAK,UAAU,oBAAoB,CACxC,OAAmB,EACnB,OAAuB;IAEvB,IAAI,CAAC;QACH,OAAO,MAAM,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YACzD,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,mEAAmE,CAAC;QAE1E,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAlBD,oDAkBC","sourcesContent":["import {\n KeyringRpcMethod,\n GetAccountsRequestStruct,\n GetAccountRequestStruct,\n CreateAccountsRequestStruct,\n DeleteAccountRequestStruct,\n ExportAccountRequestStruct,\n SubmitRequestRequestStruct,\n} from '@metamask/keyring-api/v2';\nimport type { KeyringRpc } from '@metamask/keyring-api/v2';\nimport type { JsonRpcRequest } from '@metamask/keyring-utils';\nimport { JsonRpcRequestStruct } from '@metamask/keyring-utils';\nimport { assert } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\n\nimport { isSnapError } from '../errors';\nimport { MethodNotSupportedError } from '../rpc-handler';\n\n// ESLint does not like our custom error classes in this repo for some reason, they do extend Error, so unsure why.\n/* eslint-disable @typescript-eslint/only-throw-error */\n\n/**\n * Inner function that dispatches JSON-RPC request to the associated Keyring\n * methods.\n *\n * @param keyring - Keyring instance.\n * @param request - Keyring JSON-RPC request.\n * @returns A promise that resolves to the keyring response.\n */\nasync function dispatchKeyringRequest(\n keyring: KeyringRpc,\n request: JsonRpcRequest,\n): Promise<Json | void> {\n // We first have to make sure that the request is a valid JSON-RPC request so\n // we can check its method name.\n assert(request, JsonRpcRequestStruct);\n\n switch (request.method) {\n case `${KeyringRpcMethod.GetAccounts}`: {\n assert(request, GetAccountsRequestStruct);\n return keyring.getAccounts();\n }\n\n case `${KeyringRpcMethod.GetAccount}`: {\n assert(request, GetAccountRequestStruct);\n return keyring.getAccount(request.params.id);\n }\n\n case `${KeyringRpcMethod.CreateAccounts}`: {\n assert(request, CreateAccountsRequestStruct);\n return keyring.createAccounts(request.params);\n }\n\n case `${KeyringRpcMethod.DeleteAccount}`: {\n assert(request, DeleteAccountRequestStruct);\n return keyring.deleteAccount(request.params.id);\n }\n\n case `${KeyringRpcMethod.ExportAccount}`: {\n if (keyring.exportAccount === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ExportAccountRequestStruct);\n return keyring.exportAccount(request.params.id, request.params.options);\n }\n\n case `${KeyringRpcMethod.SubmitRequest}`: {\n assert(request, SubmitRequestRequestStruct);\n return keyring.submitRequest(request.params);\n }\n\n default: {\n throw new MethodNotSupportedError(request.method);\n }\n }\n}\n\n/**\n * Handles a keyring (v2) JSON-RPC request.\n *\n * This function is meant to be used as a handler for Keyring (v2) JSON-RPC requests\n * in an Accounts Snap.\n *\n * @param keyring - Keyring instance.\n * @param request - Keyring JSON-RPC request.\n * @returns A promise that resolves to the keyring response.\n * @example\n * ```ts\n * export const onKeyringRequest: OnKeyringRequestHandler = async ({\n * origin,\n * request,\n * }) => {\n * return await handleKeyringRequest(keyring, request);\n * };\n * ```\n */\nexport async function handleKeyringRequest(\n keyring: KeyringRpc,\n request: JsonRpcRequest,\n): Promise<Json | void> {\n try {\n return await dispatchKeyringRequest(keyring, request);\n } catch (error) {\n if (isSnapError(error)) {\n throw error;\n }\n\n const message =\n error instanceof Error && typeof error.message === 'string'\n ? error.message\n : 'An unknown error occurred while handling the keyring (v2) request';\n\n throw new Error(message);\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { KeyringRpc } from "@metamask/keyring-api/v2";
|
|
2
2
|
import type { JsonRpcRequest } from "@metamask/keyring-utils";
|
|
3
3
|
import type { Json } from "@metamask/utils";
|
|
4
4
|
/**
|
|
@@ -20,5 +20,5 @@ import type { Json } from "@metamask/utils";
|
|
|
20
20
|
* };
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
|
-
export declare function handleKeyringRequest(keyring:
|
|
23
|
+
export declare function handleKeyringRequest(keyring: KeyringRpc, request: JsonRpcRequest): Promise<Json | void>;
|
|
24
24
|
//# sourceMappingURL=rpc-handler.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-handler.d.cts","sourceRoot":"","sources":["../../src/v2/rpc-handler.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"rpc-handler.d.cts","sourceRoot":"","sources":["../../src/v2/rpc-handler.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,iCAAiC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,gCAAgC;AAG9D,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAgE5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAetB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { KeyringRpc } from "@metamask/keyring-api/v2";
|
|
2
2
|
import type { JsonRpcRequest } from "@metamask/keyring-utils";
|
|
3
3
|
import type { Json } from "@metamask/utils";
|
|
4
4
|
/**
|
|
@@ -20,5 +20,5 @@ import type { Json } from "@metamask/utils";
|
|
|
20
20
|
* };
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
|
-
export declare function handleKeyringRequest(keyring:
|
|
23
|
+
export declare function handleKeyringRequest(keyring: KeyringRpc, request: JsonRpcRequest): Promise<Json | void>;
|
|
24
24
|
//# sourceMappingURL=rpc-handler.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-handler.d.mts","sourceRoot":"","sources":["../../src/v2/rpc-handler.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"rpc-handler.d.mts","sourceRoot":"","sources":["../../src/v2/rpc-handler.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,iCAAiC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,gCAAgC;AAG9D,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAgE5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAetB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-handler.mjs","sourceRoot":"","sources":["../../src/v2/rpc-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC3B,iCAAiC;AAGlC,OAAO,EAAE,oBAAoB,EAAE,gCAAgC;AAC/D,OAAO,EAAE,MAAM,EAAE,8BAA8B;AAG/C,OAAO,EAAE,WAAW,EAAE,sBAAkB;AACxC,OAAO,EAAE,uBAAuB,EAAE,2BAAuB;AAEzD,mHAAmH;AACnH,wDAAwD;AAExD;;;;;;;GAOG;AACH,KAAK,UAAU,sBAAsB,CACnC,
|
|
1
|
+
{"version":3,"file":"rpc-handler.mjs","sourceRoot":"","sources":["../../src/v2/rpc-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n KeyringRpcMethod,\n GetAccountsRequestStruct,\n GetAccountRequestStruct,\n CreateAccountsRequestStruct,\n DeleteAccountRequestStruct,\n ExportAccountRequestStruct,\n SubmitRequestRequestStruct,\n} from '@metamask/keyring-api/v2';\nimport type { KeyringRpc } from '@metamask/keyring-api/v2';\nimport type { JsonRpcRequest } from '@metamask/keyring-utils';\nimport { JsonRpcRequestStruct } from '@metamask/keyring-utils';\nimport { assert } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\n\nimport { isSnapError } from '../errors';\nimport { MethodNotSupportedError } from '../rpc-handler';\n\n// ESLint does not like our custom error classes in this repo for some reason, they do extend Error, so unsure why.\n/* eslint-disable @typescript-eslint/only-throw-error */\n\n/**\n * Inner function that dispatches JSON-RPC request to the associated Keyring\n * methods.\n *\n * @param keyring - Keyring instance.\n * @param request - Keyring JSON-RPC request.\n * @returns A promise that resolves to the keyring response.\n */\nasync function dispatchKeyringRequest(\n keyring: KeyringRpc,\n request: JsonRpcRequest,\n): Promise<Json | void> {\n // We first have to make sure that the request is a valid JSON-RPC request so\n // we can check its method name.\n assert(request, JsonRpcRequestStruct);\n\n switch (request.method) {\n case `${KeyringRpcMethod.GetAccounts}`: {\n assert(request, GetAccountsRequestStruct);\n return keyring.getAccounts();\n }\n\n case `${KeyringRpcMethod.GetAccount}`: {\n assert(request, GetAccountRequestStruct);\n return keyring.getAccount(request.params.id);\n }\n\n case `${KeyringRpcMethod.CreateAccounts}`: {\n assert(request, CreateAccountsRequestStruct);\n return keyring.createAccounts(request.params);\n }\n\n case `${KeyringRpcMethod.DeleteAccount}`: {\n assert(request, DeleteAccountRequestStruct);\n return keyring.deleteAccount(request.params.id);\n }\n\n case `${KeyringRpcMethod.ExportAccount}`: {\n if (keyring.exportAccount === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ExportAccountRequestStruct);\n return keyring.exportAccount(request.params.id, request.params.options);\n }\n\n case `${KeyringRpcMethod.SubmitRequest}`: {\n assert(request, SubmitRequestRequestStruct);\n return keyring.submitRequest(request.params);\n }\n\n default: {\n throw new MethodNotSupportedError(request.method);\n }\n }\n}\n\n/**\n * Handles a keyring (v2) JSON-RPC request.\n *\n * This function is meant to be used as a handler for Keyring (v2) JSON-RPC requests\n * in an Accounts Snap.\n *\n * @param keyring - Keyring instance.\n * @param request - Keyring JSON-RPC request.\n * @returns A promise that resolves to the keyring response.\n * @example\n * ```ts\n * export const onKeyringRequest: OnKeyringRequestHandler = async ({\n * origin,\n * request,\n * }) => {\n * return await handleKeyringRequest(keyring, request);\n * };\n * ```\n */\nexport async function handleKeyringRequest(\n keyring: KeyringRpc,\n request: JsonRpcRequest,\n): Promise<Json | void> {\n try {\n return await dispatchKeyringRequest(keyring, request);\n } catch (error) {\n if (isSnapError(error)) {\n throw error;\n }\n\n const message =\n error instanceof Error && typeof error.message === 'string'\n ? error.message\n : 'An unknown error occurred while handling the keyring (v2) request';\n\n throw new Error(message);\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metamask-previews/keyring-snap-sdk",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.2-52bd218",
|
|
4
4
|
"description": "MetaMask Keyring Snap SDK",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"keyring",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch"
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@metamask/keyring-api": "23.
|
|
69
|
+
"@metamask/keyring-api": "23.2.0",
|
|
70
70
|
"@metamask/keyring-utils": "3.3.1",
|
|
71
71
|
"@metamask/snaps-sdk": "^11.0.0",
|
|
72
72
|
"@metamask/superstruct": "^3.1.0",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"@lavamoat/allow-scripts": "^3.2.1",
|
|
78
78
|
"@lavamoat/preinstall-always-fail": "^2.1.0",
|
|
79
79
|
"@metamask/auto-changelog": "^6.1.0",
|
|
80
|
-
"@metamask/keyring-api": "23.
|
|
80
|
+
"@metamask/keyring-api": "23.2.0",
|
|
81
81
|
"@metamask/providers": "^19.0.0",
|
|
82
82
|
"@ts-bridge/cli": "^0.6.3",
|
|
83
83
|
"@types/jest": "^29.5.12",
|