@metamask-previews/keyring-snap-sdk 7.0.0-9fbf2ff → 7.1.0-74cd0f8
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 +13 -1
- package/dist/index.cjs +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/methods.cjs +13 -0
- package/dist/methods.cjs.map +1 -0
- package/dist/methods.d.cts +12 -0
- package/dist/methods.d.cts.map +1 -0
- package/dist/methods.d.mts +12 -0
- package/dist/methods.d.mts.map +1 -0
- package/dist/methods.mjs +10 -0
- package/dist/methods.mjs.map +1 -0
- package/dist/rpc-handler.cjs +7 -0
- package/dist/rpc-handler.cjs.map +1 -1
- package/dist/rpc-handler.d.cts.map +1 -1
- package/dist/rpc-handler.d.mts.map +1 -1
- package/dist/rpc-handler.mjs +8 -1
- package/dist/rpc-handler.mjs.map +1 -1
- package/dist/snap-utils.cjs +19 -0
- package/dist/snap-utils.cjs.map +1 -1
- package/dist/snap-utils.d.cts +9 -1
- package/dist/snap-utils.d.cts.map +1 -1
- package/dist/snap-utils.d.mts +9 -1
- package/dist/snap-utils.d.mts.map +1 -1
- package/dist/snap-utils.mjs +18 -0
- package/dist/snap-utils.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [7.1.0]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Add `getSelectedAccounts` helper ([#387](https://github.com/MetaMask/accounts/pull/387))
|
|
15
|
+
- This helper can be used to get the currently selected accounts for this Snap.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Bump `@metamask/keyring-api` from `^21.0.0` to `^21.1.0` ([#388](https://github.com/MetaMask/accounts/pull/388))
|
|
20
|
+
|
|
10
21
|
## [7.0.0]
|
|
11
22
|
|
|
12
23
|
### Changed
|
|
@@ -108,7 +119,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
108
119
|
- This new version fixes a bug with CJS re-exports.
|
|
109
120
|
- Initial release ([#24](https://github.com/MetaMask/accounts/pull/24))
|
|
110
121
|
|
|
111
|
-
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@7.
|
|
122
|
+
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@7.1.0...HEAD
|
|
123
|
+
[7.1.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@7.0.0...@metamask/keyring-snap-sdk@7.1.0
|
|
112
124
|
[7.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@6.0.0...@metamask/keyring-snap-sdk@7.0.0
|
|
113
125
|
[6.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@5.0.0...@metamask/keyring-snap-sdk@6.0.0
|
|
114
126
|
[5.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-sdk@4.0.0...@metamask/keyring-snap-sdk@5.0.0
|
package/dist/index.cjs
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./rpc-handler.cjs"), exports);
|
|
18
18
|
__exportStar(require("./snap-utils.cjs"), exports);
|
|
19
19
|
__exportStar(require("./time.cjs"), exports);
|
|
20
|
+
__exportStar(require("./methods.cjs"), exports);
|
|
20
21
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAA8B;AAC9B,mDAA6B;AAC7B,6CAAuB","sourcesContent":["export * from './rpc-handler';\nexport * from './snap-utils';\nexport * from './time';\n"]}
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAA8B;AAC9B,mDAA6B;AAC7B,6CAAuB;AACvB,gDAA0B","sourcesContent":["export * from './rpc-handler';\nexport * from './snap-utils';\nexport * from './time';\nexport * from './methods';\n"]}
|
package/dist/index.d.cts
CHANGED
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAA8B;AAC9B,iCAA6B;AAC7B,2BAAuB"}
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAA8B;AAC9B,iCAA6B;AAC7B,2BAAuB;AACvB,8BAA0B"}
|
package/dist/index.d.mts
CHANGED
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAA8B;AAC9B,iCAA6B;AAC7B,2BAAuB"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAA8B;AAC9B,iCAA6B;AAC7B,2BAAuB;AACvB,8BAA0B"}
|
package/dist/index.mjs
CHANGED
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAA8B;AAC9B,iCAA6B;AAC7B,2BAAuB","sourcesContent":["export * from './rpc-handler';\nexport * from './snap-utils';\nexport * from './time';\n"]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAA8B;AAC9B,iCAA6B;AAC7B,2BAAuB;AACvB,8BAA0B","sourcesContent":["export * from './rpc-handler';\nexport * from './snap-utils';\nexport * from './time';\nexport * from './methods';\n"]}
|
package/dist/methods.cjs
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetSelectedAccountsResponseStruct = exports.GetSelectedAccountsRequestStruct = exports.SnapManageAccountsMethod = void 0;
|
|
4
|
+
const superstruct_1 = require("@metamask/superstruct");
|
|
5
|
+
var SnapManageAccountsMethod;
|
|
6
|
+
(function (SnapManageAccountsMethod) {
|
|
7
|
+
SnapManageAccountsMethod["GetSelectedAccounts"] = "getSelectedAccounts";
|
|
8
|
+
})(SnapManageAccountsMethod || (exports.SnapManageAccountsMethod = SnapManageAccountsMethod = {}));
|
|
9
|
+
exports.GetSelectedAccountsRequestStruct = (0, superstruct_1.object)({
|
|
10
|
+
method: (0, superstruct_1.literal)(SnapManageAccountsMethod.GetSelectedAccounts),
|
|
11
|
+
});
|
|
12
|
+
exports.GetSelectedAccountsResponseStruct = (0, superstruct_1.array)((0, superstruct_1.string)());
|
|
13
|
+
//# sourceMappingURL=methods.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methods.cjs","sourceRoot":"","sources":["../src/methods.ts"],"names":[],"mappings":";;;AAAA,uDAM+B;AAE/B,IAAY,wBAEX;AAFD,WAAY,wBAAwB;IAClC,uEAA2C,CAAA;AAC7C,CAAC,EAFW,wBAAwB,wCAAxB,wBAAwB,QAEnC;AAEY,QAAA,gCAAgC,GAAG,IAAA,oBAAM,EAAC;IACrD,MAAM,EAAE,IAAA,qBAAO,EAAC,wBAAwB,CAAC,mBAAmB,CAAC;CAC9D,CAAC,CAAC;AAEU,QAAA,iCAAiC,GAAG,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC,CAAC","sourcesContent":["import {\n array,\n literal,\n object,\n string,\n type Infer,\n} from '@metamask/superstruct';\n\nexport enum SnapManageAccountsMethod {\n GetSelectedAccounts = 'getSelectedAccounts',\n}\n\nexport const GetSelectedAccountsRequestStruct = object({\n method: literal(SnapManageAccountsMethod.GetSelectedAccounts),\n});\n\nexport const GetSelectedAccountsResponseStruct = array(string());\n\nexport type GetSelectedAccountsResponse = Infer<\n typeof GetSelectedAccountsResponseStruct\n>;\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Infer } from "@metamask/superstruct";
|
|
2
|
+
export declare enum SnapManageAccountsMethod {
|
|
3
|
+
GetSelectedAccounts = "getSelectedAccounts"
|
|
4
|
+
}
|
|
5
|
+
export declare const GetSelectedAccountsRequestStruct: import("@metamask/superstruct").Struct<{
|
|
6
|
+
method: SnapManageAccountsMethod;
|
|
7
|
+
}, {
|
|
8
|
+
method: import("@metamask/superstruct").Struct<SnapManageAccountsMethod, SnapManageAccountsMethod>;
|
|
9
|
+
}>;
|
|
10
|
+
export declare const GetSelectedAccountsResponseStruct: import("@metamask/superstruct").Struct<string[], import("@metamask/superstruct").Struct<string, null>>;
|
|
11
|
+
export type GetSelectedAccountsResponse = Infer<typeof GetSelectedAccountsResponseStruct>;
|
|
12
|
+
//# sourceMappingURL=methods.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methods.d.cts","sourceRoot":"","sources":["../src/methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,KAAK,EACX,8BAA8B;AAE/B,oBAAY,wBAAwB;IAClC,mBAAmB,wBAAwB;CAC5C;AAED,eAAO,MAAM,gCAAgC;;;;EAE3C,CAAC;AAEH,eAAO,MAAM,iCAAiC,wGAAkB,CAAC;AAEjE,MAAM,MAAM,2BAA2B,GAAG,KAAK,CAC7C,OAAO,iCAAiC,CACzC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Infer } from "@metamask/superstruct";
|
|
2
|
+
export declare enum SnapManageAccountsMethod {
|
|
3
|
+
GetSelectedAccounts = "getSelectedAccounts"
|
|
4
|
+
}
|
|
5
|
+
export declare const GetSelectedAccountsRequestStruct: import("@metamask/superstruct").Struct<{
|
|
6
|
+
method: SnapManageAccountsMethod;
|
|
7
|
+
}, {
|
|
8
|
+
method: import("@metamask/superstruct").Struct<SnapManageAccountsMethod, SnapManageAccountsMethod>;
|
|
9
|
+
}>;
|
|
10
|
+
export declare const GetSelectedAccountsResponseStruct: import("@metamask/superstruct").Struct<string[], import("@metamask/superstruct").Struct<string, null>>;
|
|
11
|
+
export type GetSelectedAccountsResponse = Infer<typeof GetSelectedAccountsResponseStruct>;
|
|
12
|
+
//# sourceMappingURL=methods.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methods.d.mts","sourceRoot":"","sources":["../src/methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,KAAK,EACX,8BAA8B;AAE/B,oBAAY,wBAAwB;IAClC,mBAAmB,wBAAwB;CAC5C;AAED,eAAO,MAAM,gCAAgC;;;;EAE3C,CAAC;AAEH,eAAO,MAAM,iCAAiC,wGAAkB,CAAC;AAEjE,MAAM,MAAM,2BAA2B,GAAG,KAAK,CAC7C,OAAO,iCAAiC,CACzC,CAAC"}
|
package/dist/methods.mjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { array, literal, object, string } from "@metamask/superstruct";
|
|
2
|
+
export var SnapManageAccountsMethod;
|
|
3
|
+
(function (SnapManageAccountsMethod) {
|
|
4
|
+
SnapManageAccountsMethod["GetSelectedAccounts"] = "getSelectedAccounts";
|
|
5
|
+
})(SnapManageAccountsMethod || (SnapManageAccountsMethod = {}));
|
|
6
|
+
export const GetSelectedAccountsRequestStruct = object({
|
|
7
|
+
method: literal(SnapManageAccountsMethod.GetSelectedAccounts),
|
|
8
|
+
});
|
|
9
|
+
export const GetSelectedAccountsResponseStruct = array(string());
|
|
10
|
+
//# sourceMappingURL=methods.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methods.mjs","sourceRoot":"","sources":["../src/methods.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EAEP,8BAA8B;AAE/B,MAAM,CAAN,IAAY,wBAEX;AAFD,WAAY,wBAAwB;IAClC,uEAA2C,CAAA;AAC7C,CAAC,EAFW,wBAAwB,KAAxB,wBAAwB,QAEnC;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC;IACrD,MAAM,EAAE,OAAO,CAAC,wBAAwB,CAAC,mBAAmB,CAAC;CAC9D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC","sourcesContent":["import {\n array,\n literal,\n object,\n string,\n type Infer,\n} from '@metamask/superstruct';\n\nexport enum SnapManageAccountsMethod {\n GetSelectedAccounts = 'getSelectedAccounts',\n}\n\nexport const GetSelectedAccountsRequestStruct = object({\n method: literal(SnapManageAccountsMethod.GetSelectedAccounts),\n});\n\nexport const GetSelectedAccountsResponseStruct = array(string());\n\nexport type GetSelectedAccountsResponse = Infer<\n typeof GetSelectedAccountsResponseStruct\n>;\n"]}
|
package/dist/rpc-handler.cjs
CHANGED
|
@@ -74,6 +74,13 @@ async function dispatchRequest(keyring, request) {
|
|
|
74
74
|
(0, superstruct_1.assert)(request, keyring_api_1.ResolveAccountAddressRequestStruct);
|
|
75
75
|
return keyring.resolveAccountAddress(request.params.scope, request.params.request);
|
|
76
76
|
}
|
|
77
|
+
case `${keyring_api_1.KeyringRpcMethod.SetSelectedAccounts}`: {
|
|
78
|
+
if (keyring.setSelectedAccounts === undefined) {
|
|
79
|
+
throw new MethodNotSupportedError(request.method);
|
|
80
|
+
}
|
|
81
|
+
(0, superstruct_1.assert)(request, keyring_api_1.SetSelectedAccountsRequestStruct);
|
|
82
|
+
return keyring.setSelectedAccounts(request.params.accounts);
|
|
83
|
+
}
|
|
77
84
|
case `${keyring_api_1.KeyringRpcMethod.FilterAccountChains}`: {
|
|
78
85
|
(0, superstruct_1.assert)(request, keyring_api_1.FilterAccountChainsStruct);
|
|
79
86
|
return keyring.filterAccountChains(request.params.id, request.params.chains);
|
package/dist/rpc-handler.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-handler.cjs","sourceRoot":"","sources":["../src/rpc-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Keyring } from '@metamask/keyring-api';\nimport {\n KeyringRpcMethod,\n GetAccountRequestStruct,\n CreateAccountRequestStruct,\n ListAccountTransactionsRequestStruct,\n ApproveRequestRequestStruct,\n DeleteAccountRequestStruct,\n ExportAccountRequestStruct,\n GetRequestRequestStruct,\n RejectRequestRequestStruct,\n SubmitRequestRequestStruct,\n UpdateAccountRequestStruct,\n FilterAccountChainsStruct,\n ListAccountsRequestStruct,\n ListRequestsRequestStruct,\n GetAccountBalancesRequestStruct,\n ListAccountAssetsRequestStruct,\n ResolveAccountAddressRequestStruct,\n DiscoverAccountsRequestStruct,\n} from '@metamask/keyring-api';\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\n/**\n * Error thrown when a keyring JSON-RPC method is not supported.\n */\nexport class MethodNotSupportedError extends Error {\n constructor(method: string) {\n super(`Method not supported: ${method}`);\n }\n}\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 dispatchRequest(\n keyring: Keyring,\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.ListAccounts}`: {\n assert(request, ListAccountsRequestStruct);\n return keyring.listAccounts();\n }\n\n case `${KeyringRpcMethod.GetAccount}`: {\n assert(request, GetAccountRequestStruct);\n return keyring.getAccount(request.params.id);\n }\n\n case `${KeyringRpcMethod.CreateAccount}`: {\n assert(request, CreateAccountRequestStruct);\n return keyring.createAccount(request.params.options);\n }\n\n case `${KeyringRpcMethod.DiscoverAccounts}`: {\n if (keyring.discoverAccounts === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, DiscoverAccountsRequestStruct);\n return keyring.discoverAccounts(\n request.params.scopes,\n request.params.entropySource,\n request.params.groupIndex,\n );\n }\n\n case `${KeyringRpcMethod.ListAccountTransactions}`: {\n if (keyring.listAccountTransactions === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListAccountTransactionsRequestStruct);\n return keyring.listAccountTransactions(\n request.params.id,\n request.params.pagination,\n );\n }\n\n case `${KeyringRpcMethod.ListAccountAssets}`: {\n if (keyring.listAccountAssets === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListAccountAssetsRequestStruct);\n return keyring.listAccountAssets(request.params.id);\n }\n\n case `${KeyringRpcMethod.GetAccountBalances}`: {\n if (keyring.getAccountBalances === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, GetAccountBalancesRequestStruct);\n return keyring.getAccountBalances(\n request.params.id,\n request.params.assets,\n );\n }\n\n case `${KeyringRpcMethod.ResolveAccountAddress}`: {\n if (keyring.resolveAccountAddress === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ResolveAccountAddressRequestStruct);\n return keyring.resolveAccountAddress(\n request.params.scope,\n request.params.request,\n );\n }\n\n case `${KeyringRpcMethod.FilterAccountChains}`: {\n assert(request, FilterAccountChainsStruct);\n return keyring.filterAccountChains(\n request.params.id,\n request.params.chains,\n );\n }\n\n case `${KeyringRpcMethod.UpdateAccount}`: {\n assert(request, UpdateAccountRequestStruct);\n return keyring.updateAccount(request.params.account);\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);\n }\n\n case `${KeyringRpcMethod.ListRequests}`: {\n if (keyring.listRequests === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListRequestsRequestStruct);\n return keyring.listRequests();\n }\n\n case `${KeyringRpcMethod.GetRequest}`: {\n if (keyring.getRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, GetRequestRequestStruct);\n return keyring.getRequest(request.params.id);\n }\n\n case `${KeyringRpcMethod.SubmitRequest}`: {\n assert(request, SubmitRequestRequestStruct);\n return keyring.submitRequest(request.params);\n }\n\n case `${KeyringRpcMethod.ApproveRequest}`: {\n if (keyring.approveRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ApproveRequestRequestStruct);\n return keyring.approveRequest(request.params.id, request.params.data);\n }\n\n case `${KeyringRpcMethod.RejectRequest}`: {\n if (keyring.rejectRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, RejectRequestRequestStruct);\n return keyring.rejectRequest(request.params.id);\n }\n\n default: {\n throw new MethodNotSupportedError(request.method);\n }\n }\n}\n\n/**\n * Handles a keyring JSON-RPC request.\n *\n * This function is meant to be used as a handler for Keyring 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: Keyring,\n request: JsonRpcRequest,\n): Promise<Json | void> {\n try {\n return await dispatchRequest(keyring, request);\n } catch (error) {\n const message =\n error instanceof Error && typeof error.message === 'string'\n ? error.message\n : 'An unknown error occurred while handling the keyring request';\n\n throw new Error(message);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"rpc-handler.cjs","sourceRoot":"","sources":["../src/rpc-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Keyring } from '@metamask/keyring-api';\nimport {\n KeyringRpcMethod,\n GetAccountRequestStruct,\n CreateAccountRequestStruct,\n ListAccountTransactionsRequestStruct,\n ApproveRequestRequestStruct,\n DeleteAccountRequestStruct,\n ExportAccountRequestStruct,\n GetRequestRequestStruct,\n RejectRequestRequestStruct,\n SubmitRequestRequestStruct,\n UpdateAccountRequestStruct,\n FilterAccountChainsStruct,\n ListAccountsRequestStruct,\n ListRequestsRequestStruct,\n GetAccountBalancesRequestStruct,\n ListAccountAssetsRequestStruct,\n ResolveAccountAddressRequestStruct,\n DiscoverAccountsRequestStruct,\n SetSelectedAccountsRequestStruct,\n} from '@metamask/keyring-api';\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\n/**\n * Error thrown when a keyring JSON-RPC method is not supported.\n */\nexport class MethodNotSupportedError extends Error {\n constructor(method: string) {\n super(`Method not supported: ${method}`);\n }\n}\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 dispatchRequest(\n keyring: Keyring,\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.ListAccounts}`: {\n assert(request, ListAccountsRequestStruct);\n return keyring.listAccounts();\n }\n\n case `${KeyringRpcMethod.GetAccount}`: {\n assert(request, GetAccountRequestStruct);\n return keyring.getAccount(request.params.id);\n }\n\n case `${KeyringRpcMethod.CreateAccount}`: {\n assert(request, CreateAccountRequestStruct);\n return keyring.createAccount(request.params.options);\n }\n\n case `${KeyringRpcMethod.DiscoverAccounts}`: {\n if (keyring.discoverAccounts === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, DiscoverAccountsRequestStruct);\n return keyring.discoverAccounts(\n request.params.scopes,\n request.params.entropySource,\n request.params.groupIndex,\n );\n }\n\n case `${KeyringRpcMethod.ListAccountTransactions}`: {\n if (keyring.listAccountTransactions === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListAccountTransactionsRequestStruct);\n return keyring.listAccountTransactions(\n request.params.id,\n request.params.pagination,\n );\n }\n\n case `${KeyringRpcMethod.ListAccountAssets}`: {\n if (keyring.listAccountAssets === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListAccountAssetsRequestStruct);\n return keyring.listAccountAssets(request.params.id);\n }\n\n case `${KeyringRpcMethod.GetAccountBalances}`: {\n if (keyring.getAccountBalances === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, GetAccountBalancesRequestStruct);\n return keyring.getAccountBalances(\n request.params.id,\n request.params.assets,\n );\n }\n\n case `${KeyringRpcMethod.ResolveAccountAddress}`: {\n if (keyring.resolveAccountAddress === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ResolveAccountAddressRequestStruct);\n return keyring.resolveAccountAddress(\n request.params.scope,\n request.params.request,\n );\n }\n\n case `${KeyringRpcMethod.SetSelectedAccounts}`: {\n if (keyring.setSelectedAccounts === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, SetSelectedAccountsRequestStruct);\n return keyring.setSelectedAccounts(request.params.accounts);\n }\n\n case `${KeyringRpcMethod.FilterAccountChains}`: {\n assert(request, FilterAccountChainsStruct);\n return keyring.filterAccountChains(\n request.params.id,\n request.params.chains,\n );\n }\n\n case `${KeyringRpcMethod.UpdateAccount}`: {\n assert(request, UpdateAccountRequestStruct);\n return keyring.updateAccount(request.params.account);\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);\n }\n\n case `${KeyringRpcMethod.ListRequests}`: {\n if (keyring.listRequests === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListRequestsRequestStruct);\n return keyring.listRequests();\n }\n\n case `${KeyringRpcMethod.GetRequest}`: {\n if (keyring.getRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, GetRequestRequestStruct);\n return keyring.getRequest(request.params.id);\n }\n\n case `${KeyringRpcMethod.SubmitRequest}`: {\n assert(request, SubmitRequestRequestStruct);\n return keyring.submitRequest(request.params);\n }\n\n case `${KeyringRpcMethod.ApproveRequest}`: {\n if (keyring.approveRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ApproveRequestRequestStruct);\n return keyring.approveRequest(request.params.id, request.params.data);\n }\n\n case `${KeyringRpcMethod.RejectRequest}`: {\n if (keyring.rejectRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, RejectRequestRequestStruct);\n return keyring.rejectRequest(request.params.id);\n }\n\n default: {\n throw new MethodNotSupportedError(request.method);\n }\n }\n}\n\n/**\n * Handles a keyring JSON-RPC request.\n *\n * This function is meant to be used as a handler for Keyring 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: Keyring,\n request: JsonRpcRequest,\n): Promise<Json | void> {\n try {\n return await dispatchRequest(keyring, request);\n } catch (error) {\n const message =\n error instanceof Error && typeof error.message === 'string'\n ? error.message\n : 'An unknown error occurred while handling the keyring request';\n\n throw new Error(message);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-handler.d.cts","sourceRoot":"","sources":["../src/rpc-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,8BAA8B;
|
|
1
|
+
{"version":3,"file":"rpc-handler.d.cts","sourceRoot":"","sources":["../src/rpc-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,8BAA8B;AAsBrD,OAAO,KAAK,EAAE,cAAc,EAAE,gCAAgC;AAG9D,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,MAAM,EAAE,MAAM;CAG3B;AAoKD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAWtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-handler.d.mts","sourceRoot":"","sources":["../src/rpc-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,8BAA8B;
|
|
1
|
+
{"version":3,"file":"rpc-handler.d.mts","sourceRoot":"","sources":["../src/rpc-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,8BAA8B;AAsBrD,OAAO,KAAK,EAAE,cAAc,EAAE,gCAAgC;AAG9D,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,MAAM,EAAE,MAAM;CAG3B;AAoKD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAWtB"}
|
package/dist/rpc-handler.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KeyringRpcMethod, GetAccountRequestStruct, CreateAccountRequestStruct, ListAccountTransactionsRequestStruct, ApproveRequestRequestStruct, DeleteAccountRequestStruct, ExportAccountRequestStruct, GetRequestRequestStruct, RejectRequestRequestStruct, SubmitRequestRequestStruct, UpdateAccountRequestStruct, FilterAccountChainsStruct, ListAccountsRequestStruct, ListRequestsRequestStruct, GetAccountBalancesRequestStruct, ListAccountAssetsRequestStruct, ResolveAccountAddressRequestStruct, DiscoverAccountsRequestStruct } from "@metamask/keyring-api";
|
|
1
|
+
import { KeyringRpcMethod, GetAccountRequestStruct, CreateAccountRequestStruct, ListAccountTransactionsRequestStruct, ApproveRequestRequestStruct, DeleteAccountRequestStruct, ExportAccountRequestStruct, GetRequestRequestStruct, RejectRequestRequestStruct, SubmitRequestRequestStruct, UpdateAccountRequestStruct, FilterAccountChainsStruct, ListAccountsRequestStruct, ListRequestsRequestStruct, GetAccountBalancesRequestStruct, ListAccountAssetsRequestStruct, ResolveAccountAddressRequestStruct, DiscoverAccountsRequestStruct, SetSelectedAccountsRequestStruct } from "@metamask/keyring-api";
|
|
2
2
|
import { JsonRpcRequestStruct } from "@metamask/keyring-utils";
|
|
3
3
|
import { assert } from "@metamask/superstruct";
|
|
4
4
|
/**
|
|
@@ -69,6 +69,13 @@ async function dispatchRequest(keyring, request) {
|
|
|
69
69
|
assert(request, ResolveAccountAddressRequestStruct);
|
|
70
70
|
return keyring.resolveAccountAddress(request.params.scope, request.params.request);
|
|
71
71
|
}
|
|
72
|
+
case `${KeyringRpcMethod.SetSelectedAccounts}`: {
|
|
73
|
+
if (keyring.setSelectedAccounts === undefined) {
|
|
74
|
+
throw new MethodNotSupportedError(request.method);
|
|
75
|
+
}
|
|
76
|
+
assert(request, SetSelectedAccountsRequestStruct);
|
|
77
|
+
return keyring.setSelectedAccounts(request.params.accounts);
|
|
78
|
+
}
|
|
72
79
|
case `${KeyringRpcMethod.FilterAccountChains}`: {
|
|
73
80
|
assert(request, FilterAccountChainsStruct);
|
|
74
81
|
return keyring.filterAccountChains(request.params.id, request.params.chains);
|
package/dist/rpc-handler.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-handler.mjs","sourceRoot":"","sources":["../src/rpc-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Keyring } from '@metamask/keyring-api';\nimport {\n KeyringRpcMethod,\n GetAccountRequestStruct,\n CreateAccountRequestStruct,\n ListAccountTransactionsRequestStruct,\n ApproveRequestRequestStruct,\n DeleteAccountRequestStruct,\n ExportAccountRequestStruct,\n GetRequestRequestStruct,\n RejectRequestRequestStruct,\n SubmitRequestRequestStruct,\n UpdateAccountRequestStruct,\n FilterAccountChainsStruct,\n ListAccountsRequestStruct,\n ListRequestsRequestStruct,\n GetAccountBalancesRequestStruct,\n ListAccountAssetsRequestStruct,\n ResolveAccountAddressRequestStruct,\n DiscoverAccountsRequestStruct,\n} from '@metamask/keyring-api';\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\n/**\n * Error thrown when a keyring JSON-RPC method is not supported.\n */\nexport class MethodNotSupportedError extends Error {\n constructor(method: string) {\n super(`Method not supported: ${method}`);\n }\n}\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 dispatchRequest(\n keyring: Keyring,\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.ListAccounts}`: {\n assert(request, ListAccountsRequestStruct);\n return keyring.listAccounts();\n }\n\n case `${KeyringRpcMethod.GetAccount}`: {\n assert(request, GetAccountRequestStruct);\n return keyring.getAccount(request.params.id);\n }\n\n case `${KeyringRpcMethod.CreateAccount}`: {\n assert(request, CreateAccountRequestStruct);\n return keyring.createAccount(request.params.options);\n }\n\n case `${KeyringRpcMethod.DiscoverAccounts}`: {\n if (keyring.discoverAccounts === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, DiscoverAccountsRequestStruct);\n return keyring.discoverAccounts(\n request.params.scopes,\n request.params.entropySource,\n request.params.groupIndex,\n );\n }\n\n case `${KeyringRpcMethod.ListAccountTransactions}`: {\n if (keyring.listAccountTransactions === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListAccountTransactionsRequestStruct);\n return keyring.listAccountTransactions(\n request.params.id,\n request.params.pagination,\n );\n }\n\n case `${KeyringRpcMethod.ListAccountAssets}`: {\n if (keyring.listAccountAssets === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListAccountAssetsRequestStruct);\n return keyring.listAccountAssets(request.params.id);\n }\n\n case `${KeyringRpcMethod.GetAccountBalances}`: {\n if (keyring.getAccountBalances === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, GetAccountBalancesRequestStruct);\n return keyring.getAccountBalances(\n request.params.id,\n request.params.assets,\n );\n }\n\n case `${KeyringRpcMethod.ResolveAccountAddress}`: {\n if (keyring.resolveAccountAddress === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ResolveAccountAddressRequestStruct);\n return keyring.resolveAccountAddress(\n request.params.scope,\n request.params.request,\n );\n }\n\n case `${KeyringRpcMethod.FilterAccountChains}`: {\n assert(request, FilterAccountChainsStruct);\n return keyring.filterAccountChains(\n request.params.id,\n request.params.chains,\n );\n }\n\n case `${KeyringRpcMethod.UpdateAccount}`: {\n assert(request, UpdateAccountRequestStruct);\n return keyring.updateAccount(request.params.account);\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);\n }\n\n case `${KeyringRpcMethod.ListRequests}`: {\n if (keyring.listRequests === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListRequestsRequestStruct);\n return keyring.listRequests();\n }\n\n case `${KeyringRpcMethod.GetRequest}`: {\n if (keyring.getRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, GetRequestRequestStruct);\n return keyring.getRequest(request.params.id);\n }\n\n case `${KeyringRpcMethod.SubmitRequest}`: {\n assert(request, SubmitRequestRequestStruct);\n return keyring.submitRequest(request.params);\n }\n\n case `${KeyringRpcMethod.ApproveRequest}`: {\n if (keyring.approveRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ApproveRequestRequestStruct);\n return keyring.approveRequest(request.params.id, request.params.data);\n }\n\n case `${KeyringRpcMethod.RejectRequest}`: {\n if (keyring.rejectRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, RejectRequestRequestStruct);\n return keyring.rejectRequest(request.params.id);\n }\n\n default: {\n throw new MethodNotSupportedError(request.method);\n }\n }\n}\n\n/**\n * Handles a keyring JSON-RPC request.\n *\n * This function is meant to be used as a handler for Keyring 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: Keyring,\n request: JsonRpcRequest,\n): Promise<Json | void> {\n try {\n return await dispatchRequest(keyring, request);\n } catch (error) {\n const message =\n error instanceof Error && typeof error.message === 'string'\n ? error.message\n : 'An unknown error occurred while handling the keyring request';\n\n throw new Error(message);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"rpc-handler.mjs","sourceRoot":"","sources":["../src/rpc-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Keyring } from '@metamask/keyring-api';\nimport {\n KeyringRpcMethod,\n GetAccountRequestStruct,\n CreateAccountRequestStruct,\n ListAccountTransactionsRequestStruct,\n ApproveRequestRequestStruct,\n DeleteAccountRequestStruct,\n ExportAccountRequestStruct,\n GetRequestRequestStruct,\n RejectRequestRequestStruct,\n SubmitRequestRequestStruct,\n UpdateAccountRequestStruct,\n FilterAccountChainsStruct,\n ListAccountsRequestStruct,\n ListRequestsRequestStruct,\n GetAccountBalancesRequestStruct,\n ListAccountAssetsRequestStruct,\n ResolveAccountAddressRequestStruct,\n DiscoverAccountsRequestStruct,\n SetSelectedAccountsRequestStruct,\n} from '@metamask/keyring-api';\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\n/**\n * Error thrown when a keyring JSON-RPC method is not supported.\n */\nexport class MethodNotSupportedError extends Error {\n constructor(method: string) {\n super(`Method not supported: ${method}`);\n }\n}\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 dispatchRequest(\n keyring: Keyring,\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.ListAccounts}`: {\n assert(request, ListAccountsRequestStruct);\n return keyring.listAccounts();\n }\n\n case `${KeyringRpcMethod.GetAccount}`: {\n assert(request, GetAccountRequestStruct);\n return keyring.getAccount(request.params.id);\n }\n\n case `${KeyringRpcMethod.CreateAccount}`: {\n assert(request, CreateAccountRequestStruct);\n return keyring.createAccount(request.params.options);\n }\n\n case `${KeyringRpcMethod.DiscoverAccounts}`: {\n if (keyring.discoverAccounts === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, DiscoverAccountsRequestStruct);\n return keyring.discoverAccounts(\n request.params.scopes,\n request.params.entropySource,\n request.params.groupIndex,\n );\n }\n\n case `${KeyringRpcMethod.ListAccountTransactions}`: {\n if (keyring.listAccountTransactions === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListAccountTransactionsRequestStruct);\n return keyring.listAccountTransactions(\n request.params.id,\n request.params.pagination,\n );\n }\n\n case `${KeyringRpcMethod.ListAccountAssets}`: {\n if (keyring.listAccountAssets === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListAccountAssetsRequestStruct);\n return keyring.listAccountAssets(request.params.id);\n }\n\n case `${KeyringRpcMethod.GetAccountBalances}`: {\n if (keyring.getAccountBalances === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, GetAccountBalancesRequestStruct);\n return keyring.getAccountBalances(\n request.params.id,\n request.params.assets,\n );\n }\n\n case `${KeyringRpcMethod.ResolveAccountAddress}`: {\n if (keyring.resolveAccountAddress === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ResolveAccountAddressRequestStruct);\n return keyring.resolveAccountAddress(\n request.params.scope,\n request.params.request,\n );\n }\n\n case `${KeyringRpcMethod.SetSelectedAccounts}`: {\n if (keyring.setSelectedAccounts === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, SetSelectedAccountsRequestStruct);\n return keyring.setSelectedAccounts(request.params.accounts);\n }\n\n case `${KeyringRpcMethod.FilterAccountChains}`: {\n assert(request, FilterAccountChainsStruct);\n return keyring.filterAccountChains(\n request.params.id,\n request.params.chains,\n );\n }\n\n case `${KeyringRpcMethod.UpdateAccount}`: {\n assert(request, UpdateAccountRequestStruct);\n return keyring.updateAccount(request.params.account);\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);\n }\n\n case `${KeyringRpcMethod.ListRequests}`: {\n if (keyring.listRequests === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListRequestsRequestStruct);\n return keyring.listRequests();\n }\n\n case `${KeyringRpcMethod.GetRequest}`: {\n if (keyring.getRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, GetRequestRequestStruct);\n return keyring.getRequest(request.params.id);\n }\n\n case `${KeyringRpcMethod.SubmitRequest}`: {\n assert(request, SubmitRequestRequestStruct);\n return keyring.submitRequest(request.params);\n }\n\n case `${KeyringRpcMethod.ApproveRequest}`: {\n if (keyring.approveRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ApproveRequestRequestStruct);\n return keyring.approveRequest(request.params.id, request.params.data);\n }\n\n case `${KeyringRpcMethod.RejectRequest}`: {\n if (keyring.rejectRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, RejectRequestRequestStruct);\n return keyring.rejectRequest(request.params.id);\n }\n\n default: {\n throw new MethodNotSupportedError(request.method);\n }\n }\n}\n\n/**\n * Handles a keyring JSON-RPC request.\n *\n * This function is meant to be used as a handler for Keyring 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: Keyring,\n request: JsonRpcRequest,\n): Promise<Json | void> {\n try {\n return await dispatchRequest(keyring, request);\n } catch (error) {\n const message =\n error instanceof Error && typeof error.message === 'string'\n ? error.message\n : 'An unknown error occurred while handling the keyring request';\n\n throw new Error(message);\n }\n}\n"]}
|
package/dist/snap-utils.cjs
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.emitSnapKeyringEvent = emitSnapKeyringEvent;
|
|
4
|
+
exports.getSelectedAccounts = getSelectedAccounts;
|
|
5
|
+
const superstruct_1 = require("@metamask/superstruct");
|
|
6
|
+
const methods_1 = require("./methods.cjs");
|
|
4
7
|
/**
|
|
5
8
|
* Emit a keyring event from a snap.
|
|
6
9
|
*
|
|
@@ -17,4 +20,20 @@ async function emitSnapKeyringEvent(snap, event, data) {
|
|
|
17
20
|
},
|
|
18
21
|
});
|
|
19
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the selected accounts from a snap.
|
|
25
|
+
*
|
|
26
|
+
* @param snap - The global snap object.
|
|
27
|
+
* @returns The selected accounts.
|
|
28
|
+
*/
|
|
29
|
+
async function getSelectedAccounts(snap) {
|
|
30
|
+
const response = await snap.request({
|
|
31
|
+
method: 'snap_manageAccounts',
|
|
32
|
+
params: {
|
|
33
|
+
method: methods_1.SnapManageAccountsMethod.GetSelectedAccounts,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
(0, superstruct_1.assert)(response, methods_1.GetSelectedAccountsResponseStruct);
|
|
37
|
+
return response;
|
|
38
|
+
}
|
|
20
39
|
//# sourceMappingURL=snap-utils.cjs.map
|
package/dist/snap-utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snap-utils.cjs","sourceRoot":"","sources":["../src/snap-utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"snap-utils.cjs","sourceRoot":"","sources":["../src/snap-utils.ts"],"names":[],"mappings":";;AAoBA,oDAYC;AAQD,kDAWC;AA9CD,uDAA+C;AAE/C,2CAImB;AAEnB;;;;;;GAMG;AACI,KAAK,UAAU,oBAAoB,CACxC,IAAmB,EACnB,KAAY,EACZ,IAAgC;IAEhC,MAAM,IAAI,CAAC,OAAO,CAAC;QACjB,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE;YACN,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE;SACpB;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,mBAAmB,CACvC,IAAmB;IAEnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE;YACN,MAAM,EAAE,kCAAwB,CAAC,mBAAmB;SACrD;KACF,CAAC,CAAC;IACH,IAAA,oBAAM,EAAC,QAAQ,EAAE,2CAAiC,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import {\n type KeyringEvent,\n type KeyringEventPayload,\n} from '@metamask/keyring-api';\nimport type { SnapsProvider } from '@metamask/snaps-sdk';\nimport { assert } from '@metamask/superstruct';\n\nimport {\n type GetSelectedAccountsResponse,\n GetSelectedAccountsResponseStruct,\n SnapManageAccountsMethod,\n} from './methods';\n\n/**\n * Emit a keyring event from a snap.\n *\n * @param snap - The global snap object.\n * @param event - The event name.\n * @param data - The event data.\n */\nexport async function emitSnapKeyringEvent<Event extends KeyringEvent>(\n snap: SnapsProvider,\n event: Event,\n data: KeyringEventPayload<Event>,\n): Promise<void> {\n await snap.request({\n method: 'snap_manageAccounts',\n params: {\n method: event,\n params: { ...data },\n },\n });\n}\n\n/**\n * Get the selected accounts from a snap.\n *\n * @param snap - The global snap object.\n * @returns The selected accounts.\n */\nexport async function getSelectedAccounts(\n snap: SnapsProvider,\n): Promise<GetSelectedAccountsResponse> {\n const response = await snap.request({\n method: 'snap_manageAccounts',\n params: {\n method: SnapManageAccountsMethod.GetSelectedAccounts,\n },\n });\n assert(response, GetSelectedAccountsResponseStruct);\n return response;\n}\n"]}
|
package/dist/snap-utils.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type KeyringEvent, type KeyringEventPayload } from "@metamask/keyring-api";
|
|
2
2
|
import type { SnapsProvider } from "@metamask/snaps-sdk";
|
|
3
|
+
import { type GetSelectedAccountsResponse } from "./methods.cjs";
|
|
3
4
|
/**
|
|
4
5
|
* Emit a keyring event from a snap.
|
|
5
6
|
*
|
|
@@ -8,4 +9,11 @@ import type { SnapsProvider } from "@metamask/snaps-sdk";
|
|
|
8
9
|
* @param data - The event data.
|
|
9
10
|
*/
|
|
10
11
|
export declare function emitSnapKeyringEvent<Event extends KeyringEvent>(snap: SnapsProvider, event: Event, data: KeyringEventPayload<Event>): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Get the selected accounts from a snap.
|
|
14
|
+
*
|
|
15
|
+
* @param snap - The global snap object.
|
|
16
|
+
* @returns The selected accounts.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getSelectedAccounts(snap: SnapsProvider): Promise<GetSelectedAccountsResponse>;
|
|
11
19
|
//# sourceMappingURL=snap-utils.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snap-utils.d.cts","sourceRoot":"","sources":["../src/snap-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"snap-utils.d.cts","sourceRoot":"","sources":["../src/snap-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACzB,8BAA8B;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,4BAA4B;AAGzD,OAAO,EACL,KAAK,2BAA2B,EAGjC,sBAAkB;AAEnB;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,SAAS,YAAY,EACnE,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,2BAA2B,CAAC,CAStC"}
|
package/dist/snap-utils.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type KeyringEvent, type KeyringEventPayload } from "@metamask/keyring-api";
|
|
2
2
|
import type { SnapsProvider } from "@metamask/snaps-sdk";
|
|
3
|
+
import { type GetSelectedAccountsResponse } from "./methods.mjs";
|
|
3
4
|
/**
|
|
4
5
|
* Emit a keyring event from a snap.
|
|
5
6
|
*
|
|
@@ -8,4 +9,11 @@ import type { SnapsProvider } from "@metamask/snaps-sdk";
|
|
|
8
9
|
* @param data - The event data.
|
|
9
10
|
*/
|
|
10
11
|
export declare function emitSnapKeyringEvent<Event extends KeyringEvent>(snap: SnapsProvider, event: Event, data: KeyringEventPayload<Event>): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Get the selected accounts from a snap.
|
|
14
|
+
*
|
|
15
|
+
* @param snap - The global snap object.
|
|
16
|
+
* @returns The selected accounts.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getSelectedAccounts(snap: SnapsProvider): Promise<GetSelectedAccountsResponse>;
|
|
11
19
|
//# sourceMappingURL=snap-utils.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snap-utils.d.mts","sourceRoot":"","sources":["../src/snap-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"snap-utils.d.mts","sourceRoot":"","sources":["../src/snap-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACzB,8BAA8B;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,4BAA4B;AAGzD,OAAO,EACL,KAAK,2BAA2B,EAGjC,sBAAkB;AAEnB;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,SAAS,YAAY,EACnE,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,2BAA2B,CAAC,CAStC"}
|
package/dist/snap-utils.mjs
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { assert } from "@metamask/superstruct";
|
|
2
|
+
import { GetSelectedAccountsResponseStruct, SnapManageAccountsMethod } from "./methods.mjs";
|
|
1
3
|
/**
|
|
2
4
|
* Emit a keyring event from a snap.
|
|
3
5
|
*
|
|
@@ -14,4 +16,20 @@ export async function emitSnapKeyringEvent(snap, event, data) {
|
|
|
14
16
|
},
|
|
15
17
|
});
|
|
16
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Get the selected accounts from a snap.
|
|
21
|
+
*
|
|
22
|
+
* @param snap - The global snap object.
|
|
23
|
+
* @returns The selected accounts.
|
|
24
|
+
*/
|
|
25
|
+
export async function getSelectedAccounts(snap) {
|
|
26
|
+
const response = await snap.request({
|
|
27
|
+
method: 'snap_manageAccounts',
|
|
28
|
+
params: {
|
|
29
|
+
method: SnapManageAccountsMethod.GetSelectedAccounts,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
assert(response, GetSelectedAccountsResponseStruct);
|
|
33
|
+
return response;
|
|
34
|
+
}
|
|
17
35
|
//# sourceMappingURL=snap-utils.mjs.map
|
package/dist/snap-utils.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snap-utils.mjs","sourceRoot":"","sources":["../src/snap-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"snap-utils.mjs","sourceRoot":"","sources":["../src/snap-utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,8BAA8B;AAE/C,OAAO,EAEL,iCAAiC,EACjC,wBAAwB,EACzB,sBAAkB;AAEnB;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAmB,EACnB,KAAY,EACZ,IAAgC;IAEhC,MAAM,IAAI,CAAC,OAAO,CAAC;QACjB,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE;YACN,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE;SACpB;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAmB;IAEnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE;YACN,MAAM,EAAE,wBAAwB,CAAC,mBAAmB;SACrD;KACF,CAAC,CAAC;IACH,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import {\n type KeyringEvent,\n type KeyringEventPayload,\n} from '@metamask/keyring-api';\nimport type { SnapsProvider } from '@metamask/snaps-sdk';\nimport { assert } from '@metamask/superstruct';\n\nimport {\n type GetSelectedAccountsResponse,\n GetSelectedAccountsResponseStruct,\n SnapManageAccountsMethod,\n} from './methods';\n\n/**\n * Emit a keyring event from a snap.\n *\n * @param snap - The global snap object.\n * @param event - The event name.\n * @param data - The event data.\n */\nexport async function emitSnapKeyringEvent<Event extends KeyringEvent>(\n snap: SnapsProvider,\n event: Event,\n data: KeyringEventPayload<Event>,\n): Promise<void> {\n await snap.request({\n method: 'snap_manageAccounts',\n params: {\n method: event,\n params: { ...data },\n },\n });\n}\n\n/**\n * Get the selected accounts from a snap.\n *\n * @param snap - The global snap object.\n * @returns The selected accounts.\n */\nexport async function getSelectedAccounts(\n snap: SnapsProvider,\n): Promise<GetSelectedAccountsResponse> {\n const response = await snap.request({\n method: 'snap_manageAccounts',\n params: {\n method: SnapManageAccountsMethod.GetSelectedAccounts,\n },\n });\n assert(response, GetSelectedAccountsResponseStruct);\n return response;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metamask-previews/keyring-snap-sdk",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.0-74cd0f8",
|
|
4
4
|
"description": "MetaMask Keyring Snap SDK",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"metamask",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"test:watch": "jest --watch"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@metamask/keyring-api": "21.
|
|
48
|
+
"@metamask/keyring-api": "21.1.0",
|
|
49
49
|
"@metamask/keyring-utils": "3.1.0",
|
|
50
50
|
"@metamask/snaps-sdk": "^9.0.0",
|
|
51
51
|
"@metamask/superstruct": "^3.1.0",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@lavamoat/allow-scripts": "^3.2.1",
|
|
57
57
|
"@lavamoat/preinstall-always-fail": "^2.1.0",
|
|
58
58
|
"@metamask/auto-changelog": "^3.4.4",
|
|
59
|
-
"@metamask/keyring-api": "21.
|
|
59
|
+
"@metamask/keyring-api": "21.1.0",
|
|
60
60
|
"@metamask/providers": "^19.0.0",
|
|
61
61
|
"@ts-bridge/cli": "^0.6.3",
|
|
62
62
|
"@types/jest": "^29.5.12",
|