@metamask-previews/keyring-snap-client 4.0.1-f2dd645 → 4.1.0-03fdc7b
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 +12 -1
- package/dist/KeyringClient.cjs +37 -32
- package/dist/KeyringClient.cjs.map +1 -1
- package/dist/KeyringClient.d.cts +9 -1
- package/dist/KeyringClient.d.cts.map +1 -1
- package/dist/KeyringClient.d.mts +9 -1
- package/dist/KeyringClient.d.mts.map +1 -1
- package/dist/KeyringClient.mjs +38 -33
- package/dist/KeyringClient.mjs.map +1 -1
- package/dist/KeyringPublicClient.cjs +84 -0
- package/dist/KeyringPublicClient.cjs.map +1 -0
- package/dist/KeyringPublicClient.d.cts +47 -0
- package/dist/KeyringPublicClient.d.cts.map +1 -0
- package/dist/KeyringPublicClient.d.mts +47 -0
- package/dist/KeyringPublicClient.d.mts.map +1 -0
- package/dist/KeyringPublicClient.mjs +80 -0
- package/dist/KeyringPublicClient.mjs.map +1 -0
- package/dist/KeyringSnapRpcClient.cjs +4 -4
- package/dist/KeyringSnapRpcClient.cjs.map +1 -1
- package/dist/KeyringSnapRpcClient.d.cts +4 -4
- package/dist/KeyringSnapRpcClient.d.cts.map +1 -1
- package/dist/KeyringSnapRpcClient.d.mts +4 -4
- package/dist/KeyringSnapRpcClient.d.mts.map +1 -1
- package/dist/KeyringSnapRpcClient.mjs +4 -4
- package/dist/KeyringSnapRpcClient.mjs.map +1 -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/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [4.1.0]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Add `discoverAccounts` keyring method ([#266](https://github.com/MetaMask/accounts/pull/266))
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- 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))
|
|
19
|
+
|
|
10
20
|
## [4.0.1]
|
|
11
21
|
|
|
12
22
|
### Changed
|
|
@@ -76,7 +86,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
76
86
|
- This new version fixes a bug with CJS re-exports.
|
|
77
87
|
- Initial release ([#24](https://github.com/MetaMask/accounts/pull/24))
|
|
78
88
|
|
|
79
|
-
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@4.0
|
|
89
|
+
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@4.1.0...HEAD
|
|
90
|
+
[4.1.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@4.0.1...@metamask/keyring-snap-client@4.1.0
|
|
80
91
|
[4.0.1]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@4.0.0...@metamask/keyring-snap-client@4.0.1
|
|
81
92
|
[4.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@3.0.3...@metamask/keyring-snap-client@4.0.0
|
|
82
93
|
[3.0.3]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@3.0.2...@metamask/keyring-snap-client@3.0.3
|
package/dist/KeyringClient.cjs
CHANGED
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var
|
|
13
|
+
var _KeyringClient_sender;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.KeyringClient = void 0;
|
|
16
16
|
const keyring_api_1 = require("@metamask/keyring-api");
|
|
@@ -24,118 +24,123 @@ class KeyringClient {
|
|
|
24
24
|
* @param sender - The `Sender` instance to use to send requests to the snap.
|
|
25
25
|
*/
|
|
26
26
|
constructor(sender) {
|
|
27
|
-
_KeyringClient_instances.add(this);
|
|
28
27
|
_KeyringClient_sender.set(this, void 0);
|
|
29
28
|
__classPrivateFieldSet(this, _KeyringClient_sender, sender, "f");
|
|
30
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Send a request to the snap and return the response.
|
|
32
|
+
*
|
|
33
|
+
* @param partial - A partial JSON-RPC request (method and params).
|
|
34
|
+
* @returns A promise that resolves to the response to the request.
|
|
35
|
+
*/
|
|
36
|
+
async send(partial) {
|
|
37
|
+
return __classPrivateFieldGet(this, _KeyringClient_sender, "f").send({
|
|
38
|
+
jsonrpc: '2.0',
|
|
39
|
+
id: (0, uuid_1.v4)(),
|
|
40
|
+
...partial,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
31
43
|
async listAccounts() {
|
|
32
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
44
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
33
45
|
method: keyring_api_1.KeyringRpcMethod.ListAccounts,
|
|
34
46
|
}), keyring_api_1.ListAccountsResponseStruct);
|
|
35
47
|
}
|
|
36
48
|
async getAccount(id) {
|
|
37
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
49
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
38
50
|
method: keyring_api_1.KeyringRpcMethod.GetAccount,
|
|
39
51
|
params: { id },
|
|
40
52
|
}), keyring_api_1.GetAccountResponseStruct);
|
|
41
53
|
}
|
|
42
54
|
async getAccountBalances(id, assets) {
|
|
43
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
55
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
44
56
|
method: keyring_api_1.KeyringRpcMethod.GetAccountBalances,
|
|
45
57
|
params: { id, assets },
|
|
46
58
|
}), keyring_api_1.GetAccountBalancesResponseStruct);
|
|
47
59
|
}
|
|
48
60
|
async createAccount(options = {}) {
|
|
49
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
61
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
50
62
|
method: keyring_api_1.KeyringRpcMethod.CreateAccount,
|
|
51
63
|
params: { options },
|
|
52
64
|
}), keyring_api_1.CreateAccountResponseStruct);
|
|
53
65
|
}
|
|
66
|
+
async discoverAccounts(scopes, entropySource, groupIndex) {
|
|
67
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
68
|
+
method: keyring_api_1.KeyringRpcMethod.DiscoverAccounts,
|
|
69
|
+
params: { scopes, entropySource, groupIndex },
|
|
70
|
+
}), keyring_api_1.DiscoverAccountsResponseStruct);
|
|
71
|
+
}
|
|
54
72
|
async listAccountTransactions(id, pagination) {
|
|
55
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
73
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
56
74
|
method: keyring_api_1.KeyringRpcMethod.ListAccountTransactions,
|
|
57
75
|
params: { id, pagination },
|
|
58
76
|
}), keyring_api_1.ListAccountTransactionsResponseStruct);
|
|
59
77
|
}
|
|
60
78
|
async listAccountAssets(id) {
|
|
61
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
79
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
62
80
|
method: keyring_api_1.KeyringRpcMethod.ListAccountAssets,
|
|
63
81
|
params: { id },
|
|
64
82
|
}), keyring_api_1.ListAccountAssetsResponseStruct);
|
|
65
83
|
}
|
|
66
84
|
async resolveAccountAddress(scope, request) {
|
|
67
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
85
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
68
86
|
method: keyring_api_1.KeyringRpcMethod.ResolveAccountAddress,
|
|
69
87
|
params: { scope, request },
|
|
70
88
|
}), keyring_api_1.ResolveAccountAddressResponseStruct);
|
|
71
89
|
}
|
|
72
90
|
async filterAccountChains(id, chains) {
|
|
73
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
91
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
74
92
|
method: keyring_api_1.KeyringRpcMethod.FilterAccountChains,
|
|
75
93
|
params: { id, chains },
|
|
76
94
|
}), keyring_api_1.FilterAccountChainsResponseStruct);
|
|
77
95
|
}
|
|
78
96
|
async updateAccount(account) {
|
|
79
|
-
(0, superstruct_1.assert)(await
|
|
97
|
+
(0, superstruct_1.assert)(await this.send({
|
|
80
98
|
method: keyring_api_1.KeyringRpcMethod.UpdateAccount,
|
|
81
99
|
params: { account },
|
|
82
100
|
}), keyring_api_1.UpdateAccountResponseStruct);
|
|
83
101
|
}
|
|
84
102
|
async deleteAccount(id) {
|
|
85
|
-
(0, superstruct_1.assert)(await
|
|
103
|
+
(0, superstruct_1.assert)(await this.send({
|
|
86
104
|
method: keyring_api_1.KeyringRpcMethod.DeleteAccount,
|
|
87
105
|
params: { id },
|
|
88
106
|
}), keyring_api_1.DeleteAccountResponseStruct);
|
|
89
107
|
}
|
|
90
108
|
async exportAccount(id) {
|
|
91
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
109
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
92
110
|
method: keyring_api_1.KeyringRpcMethod.ExportAccount,
|
|
93
111
|
params: { id },
|
|
94
112
|
}), keyring_api_1.ExportAccountResponseStruct);
|
|
95
113
|
}
|
|
96
114
|
async listRequests() {
|
|
97
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
115
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
98
116
|
method: keyring_api_1.KeyringRpcMethod.ListRequests,
|
|
99
117
|
}), keyring_api_1.ListRequestsResponseStruct);
|
|
100
118
|
}
|
|
101
119
|
async getRequest(id) {
|
|
102
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
120
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
103
121
|
method: keyring_api_1.KeyringRpcMethod.GetRequest,
|
|
104
122
|
params: { id },
|
|
105
123
|
}), keyring_api_1.GetRequestResponseStruct);
|
|
106
124
|
}
|
|
107
125
|
async submitRequest(request) {
|
|
108
|
-
return (0, keyring_utils_1.strictMask)(await
|
|
126
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
109
127
|
method: keyring_api_1.KeyringRpcMethod.SubmitRequest,
|
|
110
128
|
params: request,
|
|
111
129
|
}), keyring_api_1.SubmitRequestResponseStruct);
|
|
112
130
|
}
|
|
113
131
|
async approveRequest(id, data = {}) {
|
|
114
|
-
(0, superstruct_1.assert)(await
|
|
132
|
+
(0, superstruct_1.assert)(await this.send({
|
|
115
133
|
method: keyring_api_1.KeyringRpcMethod.ApproveRequest,
|
|
116
134
|
params: { id, data },
|
|
117
135
|
}), keyring_api_1.ApproveRequestResponseStruct);
|
|
118
136
|
}
|
|
119
137
|
async rejectRequest(id) {
|
|
120
|
-
(0, superstruct_1.assert)(await
|
|
138
|
+
(0, superstruct_1.assert)(await this.send({
|
|
121
139
|
method: keyring_api_1.KeyringRpcMethod.RejectRequest,
|
|
122
140
|
params: { id },
|
|
123
141
|
}), keyring_api_1.RejectRequestResponseStruct);
|
|
124
142
|
}
|
|
125
143
|
}
|
|
126
144
|
exports.KeyringClient = KeyringClient;
|
|
127
|
-
_KeyringClient_sender = new WeakMap()
|
|
128
|
-
/**
|
|
129
|
-
* Send a request to the snap and return the response.
|
|
130
|
-
*
|
|
131
|
-
* @param partial - A partial JSON-RPC request (method and params).
|
|
132
|
-
* @returns A promise that resolves to the response to the request.
|
|
133
|
-
*/
|
|
134
|
-
async function _KeyringClient_send(partial) {
|
|
135
|
-
return __classPrivateFieldGet(this, _KeyringClient_sender, "f").send({
|
|
136
|
-
jsonrpc: '2.0',
|
|
137
|
-
id: (0, uuid_1.v4)(),
|
|
138
|
-
...partial,
|
|
139
|
-
});
|
|
140
|
-
};
|
|
145
|
+
_KeyringClient_sender = new WeakMap();
|
|
141
146
|
//# sourceMappingURL=KeyringClient.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringClient.cjs","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApproveRequestResponseStruct,\n CreateAccountResponseStruct,\n DeleteAccountResponseStruct,\n ExportAccountResponseStruct,\n FilterAccountChainsResponseStruct,\n GetAccountBalancesResponseStruct,\n GetAccountResponseStruct,\n GetRequestResponseStruct,\n ListAccountsResponseStruct,\n ListAccountTransactionsResponseStruct,\n ListAccountAssetsResponseStruct,\n ListRequestsResponseStruct,\n RejectRequestResponseStruct,\n SubmitRequestResponseStruct,\n UpdateAccountResponseStruct,\n KeyringRpcMethod,\n ResolveAccountAddressResponseStruct,\n} from '@metamask/keyring-api';\nimport type {\n Keyring,\n KeyringAccount,\n KeyringRequest,\n KeyringAccountData,\n KeyringResponse,\n Balance,\n TransactionsPage,\n Pagination,\n ResolvedAccountAddress,\n CaipChainId,\n CaipAssetType,\n CaipAssetTypeOrId,\n} from '@metamask/keyring-api';\nimport type { JsonRpcRequest } from '@metamask/keyring-utils';\nimport { strictMask } from '@metamask/keyring-utils';\nimport { assert } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\nimport { v4 as uuid } from 'uuid';\n\nexport type Sender = {\n send(request: JsonRpcRequest): Promise<Json>;\n};\n\nexport class KeyringClient implements Keyring {\n readonly #sender: Sender;\n\n /**\n * Create a new instance of `KeyringClient`.\n *\n * @param sender - The `Sender` instance to use to send requests to the snap.\n */\n constructor(sender: Sender) {\n this.#sender = sender;\n }\n\n /**\n * Send a request to the snap and return the response.\n *\n * @param partial - A partial JSON-RPC request (method and params).\n * @returns A promise that resolves to the response to the request.\n */\n async #send(partial: Omit<JsonRpcRequest, 'jsonrpc' | 'id'>): Promise<Json> {\n return this.#sender.send({\n jsonrpc: '2.0',\n id: uuid(),\n ...partial,\n });\n }\n\n async listAccounts(): Promise<KeyringAccount[]> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ListAccounts,\n }),\n ListAccountsResponseStruct,\n );\n }\n\n async getAccount(id: string): Promise<KeyringAccount> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.GetAccount,\n params: { id },\n }),\n GetAccountResponseStruct,\n );\n }\n\n async getAccountBalances(\n id: string,\n assets: CaipAssetType[],\n ): Promise<Record<CaipAssetType, Balance>> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.GetAccountBalances,\n params: { id, assets },\n }),\n GetAccountBalancesResponseStruct,\n );\n }\n\n async createAccount(\n options: Record<string, Json> = {},\n ): Promise<KeyringAccount> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.CreateAccount,\n params: { options },\n }),\n CreateAccountResponseStruct,\n );\n }\n\n async listAccountTransactions(\n id: string,\n pagination: Pagination,\n ): Promise<TransactionsPage> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ListAccountTransactions,\n params: { id, pagination },\n }),\n ListAccountTransactionsResponseStruct,\n );\n }\n\n async listAccountAssets(id: string): Promise<CaipAssetTypeOrId[]> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ListAccountAssets,\n params: { id },\n }),\n ListAccountAssetsResponseStruct,\n );\n }\n\n async resolveAccountAddress(\n scope: CaipChainId,\n request: JsonRpcRequest,\n // FIXME: eslint is complaning about `ResolvedAccountAddress` being `any`, so disable this for now:\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n ): Promise<ResolvedAccountAddress | null> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ResolveAccountAddress,\n params: { scope, request },\n }),\n ResolveAccountAddressResponseStruct,\n );\n }\n\n async filterAccountChains(id: string, chains: string[]): Promise<string[]> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.FilterAccountChains,\n params: { id, chains },\n }),\n FilterAccountChainsResponseStruct,\n );\n }\n\n async updateAccount(account: KeyringAccount): Promise<void> {\n assert(\n await this.#send({\n method: KeyringRpcMethod.UpdateAccount,\n params: { account },\n }),\n UpdateAccountResponseStruct,\n );\n }\n\n async deleteAccount(id: string): Promise<void> {\n assert(\n await this.#send({\n method: KeyringRpcMethod.DeleteAccount,\n params: { id },\n }),\n DeleteAccountResponseStruct,\n );\n }\n\n async exportAccount(id: string): Promise<KeyringAccountData> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ExportAccount,\n params: { id },\n }),\n ExportAccountResponseStruct,\n );\n }\n\n async listRequests(): Promise<KeyringRequest[]> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ListRequests,\n }),\n ListRequestsResponseStruct,\n );\n }\n\n async getRequest(id: string): Promise<KeyringRequest> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.GetRequest,\n params: { id },\n }),\n GetRequestResponseStruct,\n );\n }\n\n async submitRequest(request: KeyringRequest): Promise<KeyringResponse> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.SubmitRequest,\n params: request,\n }),\n SubmitRequestResponseStruct,\n );\n }\n\n async approveRequest(\n id: string,\n data: Record<string, Json> = {},\n ): Promise<void> {\n assert(\n await this.#send({\n method: KeyringRpcMethod.ApproveRequest,\n params: { id, data },\n }),\n ApproveRequestResponseStruct,\n );\n }\n\n async rejectRequest(id: string): Promise<void> {\n assert(\n await this.#send({\n method: KeyringRpcMethod.RejectRequest,\n params: { id },\n }),\n RejectRequestResponseStruct,\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"KeyringClient.cjs","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uDAmB+B;AAkB/B,2DAAqD;AACrD,uDAA+C;AAE/C,+BAAkC;AAMlC,MAAa,aAAa;IAGxB;;;;OAIG;IACH,YAAY,MAAc;QAPjB,wCAAgB;QAQvB,uBAAA,IAAI,yBAAW,MAAM,MAAA,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,IAAI,CAClB,OAA+C;QAE/C,OAAO,uBAAA,IAAI,6BAAQ,CAAC,IAAI,CAAC;YACvB,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,IAAA,SAAI,GAAE;YACV,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,YAAY;SACtC,CAAC,EACF,wCAA0B,CAC3B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,UAAU;YACnC,MAAM,EAAE,EAAE,EAAE,EAAE;SACf,CAAC,EACF,sCAAwB,CACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,EAAU,EACV,MAAuB;QAEvB,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,kBAAkB;YAC3C,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SACvB,CAAC,EACF,8CAAgC,CACjC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,UAAgC,EAAE;QAElC,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,aAAa;YACtC,MAAM,EAAE,EAAE,OAAO,EAAE;SACpB,CAAC,EACF,yCAA2B,CAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAqB,EACrB,aAA8B,EAC9B,UAAkB;QAElB,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,gBAAgB;YACzC,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE;SAC9C,CAAC,EACF,4CAA8B,CAC/B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,EAAU,EACV,UAAsB;QAEtB,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,uBAAuB;YAChD,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;SAC3B,CAAC,EACF,mDAAqC,CACtC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EAAU;QAChC,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,iBAAiB;YAC1C,MAAM,EAAE,EAAE,EAAE,EAAE;SACf,CAAC,EACF,6CAA+B,CAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,KAAkB,EAClB,OAAuB;QAIvB,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,qBAAqB;YAC9C,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;SAC3B,CAAC,EACF,iDAAmC,CACpC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,EAAU,EAAE,MAAgB;QACpD,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,mBAAmB;YAC5C,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SACvB,CAAC,EACF,+CAAiC,CAClC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAuB;QACzC,IAAA,oBAAM,EACJ,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,aAAa;YACtC,MAAM,EAAE,EAAE,OAAO,EAAE;SACpB,CAAC,EACF,yCAA2B,CAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,IAAA,oBAAM,EACJ,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,aAAa;YACtC,MAAM,EAAE,EAAE,EAAE,EAAE;SACf,CAAC,EACF,yCAA2B,CAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,aAAa;YACtC,MAAM,EAAE,EAAE,EAAE,EAAE;SACf,CAAC,EACF,yCAA2B,CAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,YAAY;SACtC,CAAC,EACF,wCAA0B,CAC3B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,UAAU;YACnC,MAAM,EAAE,EAAE,EAAE,EAAE;SACf,CAAC,EACF,sCAAwB,CACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAuB;QACzC,OAAO,IAAA,0BAAU,EACf,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,aAAa;YACtC,MAAM,EAAE,OAAO;SAChB,CAAC,EACF,yCAA2B,CAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,EAAU,EACV,OAA6B,EAAE;QAE/B,IAAA,oBAAM,EACJ,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,cAAc;YACvC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC,EACF,0CAA4B,CAC7B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,IAAA,oBAAM,EACJ,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,8BAAgB,CAAC,aAAa;YACtC,MAAM,EAAE,EAAE,EAAE,EAAE;SACf,CAAC,EACF,yCAA2B,CAC5B,CAAC;IACJ,CAAC;CACF;AAvND,sCAuNC","sourcesContent":["import {\n ApproveRequestResponseStruct,\n CreateAccountResponseStruct,\n DeleteAccountResponseStruct,\n ExportAccountResponseStruct,\n FilterAccountChainsResponseStruct,\n GetAccountBalancesResponseStruct,\n GetAccountResponseStruct,\n GetRequestResponseStruct,\n ListAccountsResponseStruct,\n ListAccountTransactionsResponseStruct,\n ListAccountAssetsResponseStruct,\n ListRequestsResponseStruct,\n RejectRequestResponseStruct,\n SubmitRequestResponseStruct,\n UpdateAccountResponseStruct,\n KeyringRpcMethod,\n ResolveAccountAddressResponseStruct,\n DiscoverAccountsResponseStruct,\n} from '@metamask/keyring-api';\nimport type {\n Keyring,\n KeyringAccount,\n KeyringRequest,\n KeyringAccountData,\n KeyringResponse,\n Balance,\n TransactionsPage,\n Pagination,\n ResolvedAccountAddress,\n CaipChainId,\n CaipAssetType,\n CaipAssetTypeOrId,\n EntropySourceId,\n DiscoveredAccount,\n} from '@metamask/keyring-api';\nimport type { JsonRpcRequest } from '@metamask/keyring-utils';\nimport { strictMask } from '@metamask/keyring-utils';\nimport { assert } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\nimport { v4 as uuid } from 'uuid';\n\nexport type Sender = {\n send(request: JsonRpcRequest): Promise<Json>;\n};\n\nexport class KeyringClient implements Keyring {\n readonly #sender: Sender;\n\n /**\n * Create a new instance of `KeyringClient`.\n *\n * @param sender - The `Sender` instance to use to send requests to the snap.\n */\n constructor(sender: Sender) {\n this.#sender = sender;\n }\n\n /**\n * Send a request to the snap and return the response.\n *\n * @param partial - A partial JSON-RPC request (method and params).\n * @returns A promise that resolves to the response to the request.\n */\n protected async send(\n partial: Omit<JsonRpcRequest, 'jsonrpc' | 'id'>,\n ): Promise<Json> {\n return this.#sender.send({\n jsonrpc: '2.0',\n id: uuid(),\n ...partial,\n });\n }\n\n async listAccounts(): Promise<KeyringAccount[]> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ListAccounts,\n }),\n ListAccountsResponseStruct,\n );\n }\n\n async getAccount(id: string): Promise<KeyringAccount> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.GetAccount,\n params: { id },\n }),\n GetAccountResponseStruct,\n );\n }\n\n async getAccountBalances(\n id: string,\n assets: CaipAssetType[],\n ): Promise<Record<CaipAssetType, Balance>> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.GetAccountBalances,\n params: { id, assets },\n }),\n GetAccountBalancesResponseStruct,\n );\n }\n\n async createAccount(\n options: Record<string, Json> = {},\n ): Promise<KeyringAccount> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.CreateAccount,\n params: { options },\n }),\n CreateAccountResponseStruct,\n );\n }\n\n async discoverAccounts(\n scopes: CaipChainId[],\n entropySource: EntropySourceId,\n groupIndex: number,\n ): Promise<DiscoveredAccount[]> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.DiscoverAccounts,\n params: { scopes, entropySource, groupIndex },\n }),\n DiscoverAccountsResponseStruct,\n );\n }\n\n async listAccountTransactions(\n id: string,\n pagination: Pagination,\n ): Promise<TransactionsPage> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ListAccountTransactions,\n params: { id, pagination },\n }),\n ListAccountTransactionsResponseStruct,\n );\n }\n\n async listAccountAssets(id: string): Promise<CaipAssetTypeOrId[]> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ListAccountAssets,\n params: { id },\n }),\n ListAccountAssetsResponseStruct,\n );\n }\n\n async resolveAccountAddress(\n scope: CaipChainId,\n request: JsonRpcRequest,\n // FIXME: eslint is complaning about `ResolvedAccountAddress` being `any`, so disable this for now:\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n ): Promise<ResolvedAccountAddress | null> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ResolveAccountAddress,\n params: { scope, request },\n }),\n ResolveAccountAddressResponseStruct,\n );\n }\n\n async filterAccountChains(id: string, chains: string[]): Promise<string[]> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.FilterAccountChains,\n params: { id, chains },\n }),\n FilterAccountChainsResponseStruct,\n );\n }\n\n async updateAccount(account: KeyringAccount): Promise<void> {\n assert(\n await this.send({\n method: KeyringRpcMethod.UpdateAccount,\n params: { account },\n }),\n UpdateAccountResponseStruct,\n );\n }\n\n async deleteAccount(id: string): Promise<void> {\n assert(\n await this.send({\n method: KeyringRpcMethod.DeleteAccount,\n params: { id },\n }),\n DeleteAccountResponseStruct,\n );\n }\n\n async exportAccount(id: string): Promise<KeyringAccountData> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ExportAccount,\n params: { id },\n }),\n ExportAccountResponseStruct,\n );\n }\n\n async listRequests(): Promise<KeyringRequest[]> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ListRequests,\n }),\n ListRequestsResponseStruct,\n );\n }\n\n async getRequest(id: string): Promise<KeyringRequest> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.GetRequest,\n params: { id },\n }),\n GetRequestResponseStruct,\n );\n }\n\n async submitRequest(request: KeyringRequest): Promise<KeyringResponse> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.SubmitRequest,\n params: request,\n }),\n SubmitRequestResponseStruct,\n );\n }\n\n async approveRequest(\n id: string,\n data: Record<string, Json> = {},\n ): Promise<void> {\n assert(\n await this.send({\n method: KeyringRpcMethod.ApproveRequest,\n params: { id, data },\n }),\n ApproveRequestResponseStruct,\n );\n }\n\n async rejectRequest(id: string): Promise<void> {\n assert(\n await this.send({\n method: KeyringRpcMethod.RejectRequest,\n params: { id },\n }),\n RejectRequestResponseStruct,\n );\n }\n}\n"]}
|
package/dist/KeyringClient.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Keyring, KeyringAccount, KeyringRequest, KeyringAccountData, KeyringResponse, Balance, TransactionsPage, Pagination, ResolvedAccountAddress, CaipChainId, CaipAssetType, CaipAssetTypeOrId } from "@metamask/keyring-api";
|
|
1
|
+
import type { Keyring, KeyringAccount, KeyringRequest, KeyringAccountData, KeyringResponse, Balance, TransactionsPage, Pagination, ResolvedAccountAddress, CaipChainId, CaipAssetType, CaipAssetTypeOrId, EntropySourceId, DiscoveredAccount } from "@metamask/keyring-api";
|
|
2
2
|
import type { JsonRpcRequest } from "@metamask/keyring-utils";
|
|
3
3
|
import type { Json } from "@metamask/utils";
|
|
4
4
|
export type Sender = {
|
|
@@ -12,10 +12,18 @@ export declare class KeyringClient implements Keyring {
|
|
|
12
12
|
* @param sender - The `Sender` instance to use to send requests to the snap.
|
|
13
13
|
*/
|
|
14
14
|
constructor(sender: Sender);
|
|
15
|
+
/**
|
|
16
|
+
* Send a request to the snap and return the response.
|
|
17
|
+
*
|
|
18
|
+
* @param partial - A partial JSON-RPC request (method and params).
|
|
19
|
+
* @returns A promise that resolves to the response to the request.
|
|
20
|
+
*/
|
|
21
|
+
protected send(partial: Omit<JsonRpcRequest, 'jsonrpc' | 'id'>): Promise<Json>;
|
|
15
22
|
listAccounts(): Promise<KeyringAccount[]>;
|
|
16
23
|
getAccount(id: string): Promise<KeyringAccount>;
|
|
17
24
|
getAccountBalances(id: string, assets: CaipAssetType[]): Promise<Record<CaipAssetType, Balance>>;
|
|
18
25
|
createAccount(options?: Record<string, Json>): Promise<KeyringAccount>;
|
|
26
|
+
discoverAccounts(scopes: CaipChainId[], entropySource: EntropySourceId, groupIndex: number): Promise<DiscoveredAccount[]>;
|
|
19
27
|
listAccountTransactions(id: string, pagination: Pagination): Promise<TransactionsPage>;
|
|
20
28
|
listAccountAssets(id: string): Promise<CaipAssetTypeOrId[]>;
|
|
21
29
|
resolveAccountAddress(scope: CaipChainId, request: JsonRpcRequest): Promise<ResolvedAccountAddress | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringClient.d.cts","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KeyringClient.d.cts","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EAClB,8BAA8B;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,gCAAgC;AAG9D,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAG5C,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C,CAAC;AAEF,qBAAa,aAAc,YAAW,OAAO;;IAG3C;;;;OAIG;gBACS,MAAM,EAAE,MAAM;IAI1B;;;;;OAKG;cACa,IAAI,CAClB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC;IAQV,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IASzC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU/C,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,aAAa,EAAE,GACtB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAUpC,aAAa,CACjB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAM,GACjC,OAAO,CAAC,cAAc,CAAC;IAUpB,gBAAgB,CACpB,MAAM,EAAE,WAAW,EAAE,EACrB,aAAa,EAAE,eAAe,EAC9B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAUzB,uBAAuB,CAC3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,gBAAgB,CAAC;IAUtB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAU3D,qBAAqB,CACzB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,cAAc,GAGtB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAUnC,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAUpE,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUtD,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IASzC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU/C,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAUhE,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAM,GAC9B,OAAO,CAAC,IAAI,CAAC;IAUV,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS/C"}
|
package/dist/KeyringClient.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Keyring, KeyringAccount, KeyringRequest, KeyringAccountData, KeyringResponse, Balance, TransactionsPage, Pagination, ResolvedAccountAddress, CaipChainId, CaipAssetType, CaipAssetTypeOrId } from "@metamask/keyring-api";
|
|
1
|
+
import type { Keyring, KeyringAccount, KeyringRequest, KeyringAccountData, KeyringResponse, Balance, TransactionsPage, Pagination, ResolvedAccountAddress, CaipChainId, CaipAssetType, CaipAssetTypeOrId, EntropySourceId, DiscoveredAccount } from "@metamask/keyring-api";
|
|
2
2
|
import type { JsonRpcRequest } from "@metamask/keyring-utils";
|
|
3
3
|
import type { Json } from "@metamask/utils";
|
|
4
4
|
export type Sender = {
|
|
@@ -12,10 +12,18 @@ export declare class KeyringClient implements Keyring {
|
|
|
12
12
|
* @param sender - The `Sender` instance to use to send requests to the snap.
|
|
13
13
|
*/
|
|
14
14
|
constructor(sender: Sender);
|
|
15
|
+
/**
|
|
16
|
+
* Send a request to the snap and return the response.
|
|
17
|
+
*
|
|
18
|
+
* @param partial - A partial JSON-RPC request (method and params).
|
|
19
|
+
* @returns A promise that resolves to the response to the request.
|
|
20
|
+
*/
|
|
21
|
+
protected send(partial: Omit<JsonRpcRequest, 'jsonrpc' | 'id'>): Promise<Json>;
|
|
15
22
|
listAccounts(): Promise<KeyringAccount[]>;
|
|
16
23
|
getAccount(id: string): Promise<KeyringAccount>;
|
|
17
24
|
getAccountBalances(id: string, assets: CaipAssetType[]): Promise<Record<CaipAssetType, Balance>>;
|
|
18
25
|
createAccount(options?: Record<string, Json>): Promise<KeyringAccount>;
|
|
26
|
+
discoverAccounts(scopes: CaipChainId[], entropySource: EntropySourceId, groupIndex: number): Promise<DiscoveredAccount[]>;
|
|
19
27
|
listAccountTransactions(id: string, pagination: Pagination): Promise<TransactionsPage>;
|
|
20
28
|
listAccountAssets(id: string): Promise<CaipAssetTypeOrId[]>;
|
|
21
29
|
resolveAccountAddress(scope: CaipChainId, request: JsonRpcRequest): Promise<ResolvedAccountAddress | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringClient.d.mts","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KeyringClient.d.mts","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EAClB,8BAA8B;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,gCAAgC;AAG9D,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAG5C,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C,CAAC;AAEF,qBAAa,aAAc,YAAW,OAAO;;IAG3C;;;;OAIG;gBACS,MAAM,EAAE,MAAM;IAI1B;;;;;OAKG;cACa,IAAI,CAClB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC;IAQV,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IASzC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU/C,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,aAAa,EAAE,GACtB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAUpC,aAAa,CACjB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAM,GACjC,OAAO,CAAC,cAAc,CAAC;IAUpB,gBAAgB,CACpB,MAAM,EAAE,WAAW,EAAE,EACrB,aAAa,EAAE,eAAe,EAC9B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAUzB,uBAAuB,CAC3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,gBAAgB,CAAC;IAUtB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAU3D,qBAAqB,CACzB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,cAAc,GAGtB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAUnC,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAUpE,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUtD,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IASzC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU/C,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAUhE,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAM,GAC9B,OAAO,CAAC,IAAI,CAAC;IAUV,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS/C"}
|
package/dist/KeyringClient.mjs
CHANGED
|
@@ -9,8 +9,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var
|
|
13
|
-
import { ApproveRequestResponseStruct, CreateAccountResponseStruct, DeleteAccountResponseStruct, ExportAccountResponseStruct, FilterAccountChainsResponseStruct, GetAccountBalancesResponseStruct, GetAccountResponseStruct, GetRequestResponseStruct, ListAccountsResponseStruct, ListAccountTransactionsResponseStruct, ListAccountAssetsResponseStruct, ListRequestsResponseStruct, RejectRequestResponseStruct, SubmitRequestResponseStruct, UpdateAccountResponseStruct, KeyringRpcMethod, ResolveAccountAddressResponseStruct } from "@metamask/keyring-api";
|
|
12
|
+
var _KeyringClient_sender;
|
|
13
|
+
import { ApproveRequestResponseStruct, CreateAccountResponseStruct, DeleteAccountResponseStruct, ExportAccountResponseStruct, FilterAccountChainsResponseStruct, GetAccountBalancesResponseStruct, GetAccountResponseStruct, GetRequestResponseStruct, ListAccountsResponseStruct, ListAccountTransactionsResponseStruct, ListAccountAssetsResponseStruct, ListRequestsResponseStruct, RejectRequestResponseStruct, SubmitRequestResponseStruct, UpdateAccountResponseStruct, KeyringRpcMethod, ResolveAccountAddressResponseStruct, DiscoverAccountsResponseStruct } from "@metamask/keyring-api";
|
|
14
14
|
import { strictMask } from "@metamask/keyring-utils";
|
|
15
15
|
import { assert } from "@metamask/superstruct";
|
|
16
16
|
import { v4 as uuid } from "uuid";
|
|
@@ -21,117 +21,122 @@ export class KeyringClient {
|
|
|
21
21
|
* @param sender - The `Sender` instance to use to send requests to the snap.
|
|
22
22
|
*/
|
|
23
23
|
constructor(sender) {
|
|
24
|
-
_KeyringClient_instances.add(this);
|
|
25
24
|
_KeyringClient_sender.set(this, void 0);
|
|
26
25
|
__classPrivateFieldSet(this, _KeyringClient_sender, sender, "f");
|
|
27
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Send a request to the snap and return the response.
|
|
29
|
+
*
|
|
30
|
+
* @param partial - A partial JSON-RPC request (method and params).
|
|
31
|
+
* @returns A promise that resolves to the response to the request.
|
|
32
|
+
*/
|
|
33
|
+
async send(partial) {
|
|
34
|
+
return __classPrivateFieldGet(this, _KeyringClient_sender, "f").send({
|
|
35
|
+
jsonrpc: '2.0',
|
|
36
|
+
id: uuid(),
|
|
37
|
+
...partial,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
28
40
|
async listAccounts() {
|
|
29
|
-
return strictMask(await
|
|
41
|
+
return strictMask(await this.send({
|
|
30
42
|
method: KeyringRpcMethod.ListAccounts,
|
|
31
43
|
}), ListAccountsResponseStruct);
|
|
32
44
|
}
|
|
33
45
|
async getAccount(id) {
|
|
34
|
-
return strictMask(await
|
|
46
|
+
return strictMask(await this.send({
|
|
35
47
|
method: KeyringRpcMethod.GetAccount,
|
|
36
48
|
params: { id },
|
|
37
49
|
}), GetAccountResponseStruct);
|
|
38
50
|
}
|
|
39
51
|
async getAccountBalances(id, assets) {
|
|
40
|
-
return strictMask(await
|
|
52
|
+
return strictMask(await this.send({
|
|
41
53
|
method: KeyringRpcMethod.GetAccountBalances,
|
|
42
54
|
params: { id, assets },
|
|
43
55
|
}), GetAccountBalancesResponseStruct);
|
|
44
56
|
}
|
|
45
57
|
async createAccount(options = {}) {
|
|
46
|
-
return strictMask(await
|
|
58
|
+
return strictMask(await this.send({
|
|
47
59
|
method: KeyringRpcMethod.CreateAccount,
|
|
48
60
|
params: { options },
|
|
49
61
|
}), CreateAccountResponseStruct);
|
|
50
62
|
}
|
|
63
|
+
async discoverAccounts(scopes, entropySource, groupIndex) {
|
|
64
|
+
return strictMask(await this.send({
|
|
65
|
+
method: KeyringRpcMethod.DiscoverAccounts,
|
|
66
|
+
params: { scopes, entropySource, groupIndex },
|
|
67
|
+
}), DiscoverAccountsResponseStruct);
|
|
68
|
+
}
|
|
51
69
|
async listAccountTransactions(id, pagination) {
|
|
52
|
-
return strictMask(await
|
|
70
|
+
return strictMask(await this.send({
|
|
53
71
|
method: KeyringRpcMethod.ListAccountTransactions,
|
|
54
72
|
params: { id, pagination },
|
|
55
73
|
}), ListAccountTransactionsResponseStruct);
|
|
56
74
|
}
|
|
57
75
|
async listAccountAssets(id) {
|
|
58
|
-
return strictMask(await
|
|
76
|
+
return strictMask(await this.send({
|
|
59
77
|
method: KeyringRpcMethod.ListAccountAssets,
|
|
60
78
|
params: { id },
|
|
61
79
|
}), ListAccountAssetsResponseStruct);
|
|
62
80
|
}
|
|
63
81
|
async resolveAccountAddress(scope, request) {
|
|
64
|
-
return strictMask(await
|
|
82
|
+
return strictMask(await this.send({
|
|
65
83
|
method: KeyringRpcMethod.ResolveAccountAddress,
|
|
66
84
|
params: { scope, request },
|
|
67
85
|
}), ResolveAccountAddressResponseStruct);
|
|
68
86
|
}
|
|
69
87
|
async filterAccountChains(id, chains) {
|
|
70
|
-
return strictMask(await
|
|
88
|
+
return strictMask(await this.send({
|
|
71
89
|
method: KeyringRpcMethod.FilterAccountChains,
|
|
72
90
|
params: { id, chains },
|
|
73
91
|
}), FilterAccountChainsResponseStruct);
|
|
74
92
|
}
|
|
75
93
|
async updateAccount(account) {
|
|
76
|
-
assert(await
|
|
94
|
+
assert(await this.send({
|
|
77
95
|
method: KeyringRpcMethod.UpdateAccount,
|
|
78
96
|
params: { account },
|
|
79
97
|
}), UpdateAccountResponseStruct);
|
|
80
98
|
}
|
|
81
99
|
async deleteAccount(id) {
|
|
82
|
-
assert(await
|
|
100
|
+
assert(await this.send({
|
|
83
101
|
method: KeyringRpcMethod.DeleteAccount,
|
|
84
102
|
params: { id },
|
|
85
103
|
}), DeleteAccountResponseStruct);
|
|
86
104
|
}
|
|
87
105
|
async exportAccount(id) {
|
|
88
|
-
return strictMask(await
|
|
106
|
+
return strictMask(await this.send({
|
|
89
107
|
method: KeyringRpcMethod.ExportAccount,
|
|
90
108
|
params: { id },
|
|
91
109
|
}), ExportAccountResponseStruct);
|
|
92
110
|
}
|
|
93
111
|
async listRequests() {
|
|
94
|
-
return strictMask(await
|
|
112
|
+
return strictMask(await this.send({
|
|
95
113
|
method: KeyringRpcMethod.ListRequests,
|
|
96
114
|
}), ListRequestsResponseStruct);
|
|
97
115
|
}
|
|
98
116
|
async getRequest(id) {
|
|
99
|
-
return strictMask(await
|
|
117
|
+
return strictMask(await this.send({
|
|
100
118
|
method: KeyringRpcMethod.GetRequest,
|
|
101
119
|
params: { id },
|
|
102
120
|
}), GetRequestResponseStruct);
|
|
103
121
|
}
|
|
104
122
|
async submitRequest(request) {
|
|
105
|
-
return strictMask(await
|
|
123
|
+
return strictMask(await this.send({
|
|
106
124
|
method: KeyringRpcMethod.SubmitRequest,
|
|
107
125
|
params: request,
|
|
108
126
|
}), SubmitRequestResponseStruct);
|
|
109
127
|
}
|
|
110
128
|
async approveRequest(id, data = {}) {
|
|
111
|
-
assert(await
|
|
129
|
+
assert(await this.send({
|
|
112
130
|
method: KeyringRpcMethod.ApproveRequest,
|
|
113
131
|
params: { id, data },
|
|
114
132
|
}), ApproveRequestResponseStruct);
|
|
115
133
|
}
|
|
116
134
|
async rejectRequest(id) {
|
|
117
|
-
assert(await
|
|
135
|
+
assert(await this.send({
|
|
118
136
|
method: KeyringRpcMethod.RejectRequest,
|
|
119
137
|
params: { id },
|
|
120
138
|
}), RejectRequestResponseStruct);
|
|
121
139
|
}
|
|
122
140
|
}
|
|
123
|
-
_KeyringClient_sender = new WeakMap()
|
|
124
|
-
/**
|
|
125
|
-
* Send a request to the snap and return the response.
|
|
126
|
-
*
|
|
127
|
-
* @param partial - A partial JSON-RPC request (method and params).
|
|
128
|
-
* @returns A promise that resolves to the response to the request.
|
|
129
|
-
*/
|
|
130
|
-
async function _KeyringClient_send(partial) {
|
|
131
|
-
return __classPrivateFieldGet(this, _KeyringClient_sender, "f").send({
|
|
132
|
-
jsonrpc: '2.0',
|
|
133
|
-
id: uuid(),
|
|
134
|
-
...partial,
|
|
135
|
-
});
|
|
136
|
-
};
|
|
141
|
+
_KeyringClient_sender = new WeakMap();
|
|
137
142
|
//# sourceMappingURL=KeyringClient.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringClient.mjs","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApproveRequestResponseStruct,\n CreateAccountResponseStruct,\n DeleteAccountResponseStruct,\n ExportAccountResponseStruct,\n FilterAccountChainsResponseStruct,\n GetAccountBalancesResponseStruct,\n GetAccountResponseStruct,\n GetRequestResponseStruct,\n ListAccountsResponseStruct,\n ListAccountTransactionsResponseStruct,\n ListAccountAssetsResponseStruct,\n ListRequestsResponseStruct,\n RejectRequestResponseStruct,\n SubmitRequestResponseStruct,\n UpdateAccountResponseStruct,\n KeyringRpcMethod,\n ResolveAccountAddressResponseStruct,\n} from '@metamask/keyring-api';\nimport type {\n Keyring,\n KeyringAccount,\n KeyringRequest,\n KeyringAccountData,\n KeyringResponse,\n Balance,\n TransactionsPage,\n Pagination,\n ResolvedAccountAddress,\n CaipChainId,\n CaipAssetType,\n CaipAssetTypeOrId,\n} from '@metamask/keyring-api';\nimport type { JsonRpcRequest } from '@metamask/keyring-utils';\nimport { strictMask } from '@metamask/keyring-utils';\nimport { assert } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\nimport { v4 as uuid } from 'uuid';\n\nexport type Sender = {\n send(request: JsonRpcRequest): Promise<Json>;\n};\n\nexport class KeyringClient implements Keyring {\n readonly #sender: Sender;\n\n /**\n * Create a new instance of `KeyringClient`.\n *\n * @param sender - The `Sender` instance to use to send requests to the snap.\n */\n constructor(sender: Sender) {\n this.#sender = sender;\n }\n\n /**\n * Send a request to the snap and return the response.\n *\n * @param partial - A partial JSON-RPC request (method and params).\n * @returns A promise that resolves to the response to the request.\n */\n async #send(partial: Omit<JsonRpcRequest, 'jsonrpc' | 'id'>): Promise<Json> {\n return this.#sender.send({\n jsonrpc: '2.0',\n id: uuid(),\n ...partial,\n });\n }\n\n async listAccounts(): Promise<KeyringAccount[]> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ListAccounts,\n }),\n ListAccountsResponseStruct,\n );\n }\n\n async getAccount(id: string): Promise<KeyringAccount> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.GetAccount,\n params: { id },\n }),\n GetAccountResponseStruct,\n );\n }\n\n async getAccountBalances(\n id: string,\n assets: CaipAssetType[],\n ): Promise<Record<CaipAssetType, Balance>> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.GetAccountBalances,\n params: { id, assets },\n }),\n GetAccountBalancesResponseStruct,\n );\n }\n\n async createAccount(\n options: Record<string, Json> = {},\n ): Promise<KeyringAccount> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.CreateAccount,\n params: { options },\n }),\n CreateAccountResponseStruct,\n );\n }\n\n async listAccountTransactions(\n id: string,\n pagination: Pagination,\n ): Promise<TransactionsPage> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ListAccountTransactions,\n params: { id, pagination },\n }),\n ListAccountTransactionsResponseStruct,\n );\n }\n\n async listAccountAssets(id: string): Promise<CaipAssetTypeOrId[]> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ListAccountAssets,\n params: { id },\n }),\n ListAccountAssetsResponseStruct,\n );\n }\n\n async resolveAccountAddress(\n scope: CaipChainId,\n request: JsonRpcRequest,\n // FIXME: eslint is complaning about `ResolvedAccountAddress` being `any`, so disable this for now:\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n ): Promise<ResolvedAccountAddress | null> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ResolveAccountAddress,\n params: { scope, request },\n }),\n ResolveAccountAddressResponseStruct,\n );\n }\n\n async filterAccountChains(id: string, chains: string[]): Promise<string[]> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.FilterAccountChains,\n params: { id, chains },\n }),\n FilterAccountChainsResponseStruct,\n );\n }\n\n async updateAccount(account: KeyringAccount): Promise<void> {\n assert(\n await this.#send({\n method: KeyringRpcMethod.UpdateAccount,\n params: { account },\n }),\n UpdateAccountResponseStruct,\n );\n }\n\n async deleteAccount(id: string): Promise<void> {\n assert(\n await this.#send({\n method: KeyringRpcMethod.DeleteAccount,\n params: { id },\n }),\n DeleteAccountResponseStruct,\n );\n }\n\n async exportAccount(id: string): Promise<KeyringAccountData> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ExportAccount,\n params: { id },\n }),\n ExportAccountResponseStruct,\n );\n }\n\n async listRequests(): Promise<KeyringRequest[]> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.ListRequests,\n }),\n ListRequestsResponseStruct,\n );\n }\n\n async getRequest(id: string): Promise<KeyringRequest> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.GetRequest,\n params: { id },\n }),\n GetRequestResponseStruct,\n );\n }\n\n async submitRequest(request: KeyringRequest): Promise<KeyringResponse> {\n return strictMask(\n await this.#send({\n method: KeyringRpcMethod.SubmitRequest,\n params: request,\n }),\n SubmitRequestResponseStruct,\n );\n }\n\n async approveRequest(\n id: string,\n data: Record<string, Json> = {},\n ): Promise<void> {\n assert(\n await this.#send({\n method: KeyringRpcMethod.ApproveRequest,\n params: { id, data },\n }),\n ApproveRequestResponseStruct,\n );\n }\n\n async rejectRequest(id: string): Promise<void> {\n assert(\n await this.#send({\n method: KeyringRpcMethod.RejectRequest,\n params: { id },\n }),\n RejectRequestResponseStruct,\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"KeyringClient.mjs","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApproveRequestResponseStruct,\n CreateAccountResponseStruct,\n DeleteAccountResponseStruct,\n ExportAccountResponseStruct,\n FilterAccountChainsResponseStruct,\n GetAccountBalancesResponseStruct,\n GetAccountResponseStruct,\n GetRequestResponseStruct,\n ListAccountsResponseStruct,\n ListAccountTransactionsResponseStruct,\n ListAccountAssetsResponseStruct,\n ListRequestsResponseStruct,\n RejectRequestResponseStruct,\n SubmitRequestResponseStruct,\n UpdateAccountResponseStruct,\n KeyringRpcMethod,\n ResolveAccountAddressResponseStruct,\n DiscoverAccountsResponseStruct,\n} from '@metamask/keyring-api';\nimport type {\n Keyring,\n KeyringAccount,\n KeyringRequest,\n KeyringAccountData,\n KeyringResponse,\n Balance,\n TransactionsPage,\n Pagination,\n ResolvedAccountAddress,\n CaipChainId,\n CaipAssetType,\n CaipAssetTypeOrId,\n EntropySourceId,\n DiscoveredAccount,\n} from '@metamask/keyring-api';\nimport type { JsonRpcRequest } from '@metamask/keyring-utils';\nimport { strictMask } from '@metamask/keyring-utils';\nimport { assert } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\nimport { v4 as uuid } from 'uuid';\n\nexport type Sender = {\n send(request: JsonRpcRequest): Promise<Json>;\n};\n\nexport class KeyringClient implements Keyring {\n readonly #sender: Sender;\n\n /**\n * Create a new instance of `KeyringClient`.\n *\n * @param sender - The `Sender` instance to use to send requests to the snap.\n */\n constructor(sender: Sender) {\n this.#sender = sender;\n }\n\n /**\n * Send a request to the snap and return the response.\n *\n * @param partial - A partial JSON-RPC request (method and params).\n * @returns A promise that resolves to the response to the request.\n */\n protected async send(\n partial: Omit<JsonRpcRequest, 'jsonrpc' | 'id'>,\n ): Promise<Json> {\n return this.#sender.send({\n jsonrpc: '2.0',\n id: uuid(),\n ...partial,\n });\n }\n\n async listAccounts(): Promise<KeyringAccount[]> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ListAccounts,\n }),\n ListAccountsResponseStruct,\n );\n }\n\n async getAccount(id: string): Promise<KeyringAccount> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.GetAccount,\n params: { id },\n }),\n GetAccountResponseStruct,\n );\n }\n\n async getAccountBalances(\n id: string,\n assets: CaipAssetType[],\n ): Promise<Record<CaipAssetType, Balance>> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.GetAccountBalances,\n params: { id, assets },\n }),\n GetAccountBalancesResponseStruct,\n );\n }\n\n async createAccount(\n options: Record<string, Json> = {},\n ): Promise<KeyringAccount> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.CreateAccount,\n params: { options },\n }),\n CreateAccountResponseStruct,\n );\n }\n\n async discoverAccounts(\n scopes: CaipChainId[],\n entropySource: EntropySourceId,\n groupIndex: number,\n ): Promise<DiscoveredAccount[]> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.DiscoverAccounts,\n params: { scopes, entropySource, groupIndex },\n }),\n DiscoverAccountsResponseStruct,\n );\n }\n\n async listAccountTransactions(\n id: string,\n pagination: Pagination,\n ): Promise<TransactionsPage> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ListAccountTransactions,\n params: { id, pagination },\n }),\n ListAccountTransactionsResponseStruct,\n );\n }\n\n async listAccountAssets(id: string): Promise<CaipAssetTypeOrId[]> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ListAccountAssets,\n params: { id },\n }),\n ListAccountAssetsResponseStruct,\n );\n }\n\n async resolveAccountAddress(\n scope: CaipChainId,\n request: JsonRpcRequest,\n // FIXME: eslint is complaning about `ResolvedAccountAddress` being `any`, so disable this for now:\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n ): Promise<ResolvedAccountAddress | null> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ResolveAccountAddress,\n params: { scope, request },\n }),\n ResolveAccountAddressResponseStruct,\n );\n }\n\n async filterAccountChains(id: string, chains: string[]): Promise<string[]> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.FilterAccountChains,\n params: { id, chains },\n }),\n FilterAccountChainsResponseStruct,\n );\n }\n\n async updateAccount(account: KeyringAccount): Promise<void> {\n assert(\n await this.send({\n method: KeyringRpcMethod.UpdateAccount,\n params: { account },\n }),\n UpdateAccountResponseStruct,\n );\n }\n\n async deleteAccount(id: string): Promise<void> {\n assert(\n await this.send({\n method: KeyringRpcMethod.DeleteAccount,\n params: { id },\n }),\n DeleteAccountResponseStruct,\n );\n }\n\n async exportAccount(id: string): Promise<KeyringAccountData> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ExportAccount,\n params: { id },\n }),\n ExportAccountResponseStruct,\n );\n }\n\n async listRequests(): Promise<KeyringRequest[]> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.ListRequests,\n }),\n ListRequestsResponseStruct,\n );\n }\n\n async getRequest(id: string): Promise<KeyringRequest> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.GetRequest,\n params: { id },\n }),\n GetRequestResponseStruct,\n );\n }\n\n async submitRequest(request: KeyringRequest): Promise<KeyringResponse> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.SubmitRequest,\n params: request,\n }),\n SubmitRequestResponseStruct,\n );\n }\n\n async approveRequest(\n id: string,\n data: Record<string, Json> = {},\n ): Promise<void> {\n assert(\n await this.send({\n method: KeyringRpcMethod.ApproveRequest,\n params: { id, data },\n }),\n ApproveRequestResponseStruct,\n );\n }\n\n async rejectRequest(id: string): Promise<void> {\n assert(\n await this.send({\n method: KeyringRpcMethod.RejectRequest,\n params: { id },\n }),\n RejectRequestResponseStruct,\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _KeyringPublicClient_client;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.KeyringPublicClient = exports.KeyringPublicRpcMethod = void 0;
|
|
16
|
+
const keyring_api_1 = require("@metamask/keyring-api");
|
|
17
|
+
const KeyringClient_1 = require("./KeyringClient.cjs");
|
|
18
|
+
/**
|
|
19
|
+
* Public methods list.
|
|
20
|
+
*/
|
|
21
|
+
exports.KeyringPublicRpcMethod = [
|
|
22
|
+
keyring_api_1.KeyringRpcMethod.CreateAccount,
|
|
23
|
+
keyring_api_1.KeyringRpcMethod.GetAccount,
|
|
24
|
+
keyring_api_1.KeyringRpcMethod.UpdateAccount,
|
|
25
|
+
keyring_api_1.KeyringRpcMethod.DeleteAccount,
|
|
26
|
+
keyring_api_1.KeyringRpcMethod.ExportAccount,
|
|
27
|
+
keyring_api_1.KeyringRpcMethod.ListAccounts,
|
|
28
|
+
keyring_api_1.KeyringRpcMethod.FilterAccountChains,
|
|
29
|
+
keyring_api_1.KeyringRpcMethod.GetRequest,
|
|
30
|
+
keyring_api_1.KeyringRpcMethod.ApproveRequest,
|
|
31
|
+
keyring_api_1.KeyringRpcMethod.RejectRequest,
|
|
32
|
+
keyring_api_1.KeyringRpcMethod.ListRequests,
|
|
33
|
+
];
|
|
34
|
+
/**
|
|
35
|
+
* A client that can be used by companion dapp. Only some keyring methods are
|
|
36
|
+
* available with this client.
|
|
37
|
+
*/
|
|
38
|
+
class KeyringPublicClient {
|
|
39
|
+
/**
|
|
40
|
+
* Create a new instance of `KeyringPublicClient`.
|
|
41
|
+
*
|
|
42
|
+
* @param sender - The `Sender` instance to use to send requests to the snap.
|
|
43
|
+
*/
|
|
44
|
+
constructor(sender) {
|
|
45
|
+
_KeyringPublicClient_client.set(this, void 0);
|
|
46
|
+
__classPrivateFieldSet(this, _KeyringPublicClient_client, new KeyringClient_1.KeyringClient(sender), "f");
|
|
47
|
+
}
|
|
48
|
+
async createAccount(options) {
|
|
49
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").createAccount(options);
|
|
50
|
+
}
|
|
51
|
+
async deleteAccount(id) {
|
|
52
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").deleteAccount(id);
|
|
53
|
+
}
|
|
54
|
+
async listAccounts() {
|
|
55
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").listAccounts();
|
|
56
|
+
}
|
|
57
|
+
async getAccount(id) {
|
|
58
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").getAccount(id);
|
|
59
|
+
}
|
|
60
|
+
async getRequest(id) {
|
|
61
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").getRequest(id);
|
|
62
|
+
}
|
|
63
|
+
async listRequests() {
|
|
64
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").listRequests();
|
|
65
|
+
}
|
|
66
|
+
async updateAccount(account) {
|
|
67
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").updateAccount(account);
|
|
68
|
+
}
|
|
69
|
+
async approveRequest(id, data) {
|
|
70
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").approveRequest(id, data);
|
|
71
|
+
}
|
|
72
|
+
async rejectRequest(id) {
|
|
73
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").rejectRequest(id);
|
|
74
|
+
}
|
|
75
|
+
async filterAccountChains(id, chains) {
|
|
76
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").filterAccountChains(id, chains);
|
|
77
|
+
}
|
|
78
|
+
async exportAccount(id) {
|
|
79
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").exportAccount(id);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.KeyringPublicClient = KeyringPublicClient;
|
|
83
|
+
_KeyringPublicClient_client = new WeakMap();
|
|
84
|
+
//# sourceMappingURL=KeyringPublicClient.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyringPublicClient.cjs","sourceRoot":"","sources":["../src/KeyringPublicClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,uDAAyD;AAIzD,uDAAgD;AAahD;;GAEG;AACU,QAAA,sBAAsB,GAAG;IACpC,8BAAgB,CAAC,aAAa;IAC9B,8BAAgB,CAAC,UAAU;IAC3B,8BAAgB,CAAC,aAAa;IAC9B,8BAAgB,CAAC,aAAa;IAC9B,8BAAgB,CAAC,aAAa;IAC9B,8BAAgB,CAAC,YAAY;IAC7B,8BAAgB,CAAC,mBAAmB;IACpC,8BAAgB,CAAC,UAAU;IAC3B,8BAAgB,CAAC,cAAc;IAC/B,8BAAgB,CAAC,aAAa;IAC9B,8BAAgB,CAAC,YAAY;CACrB,CAAC;AASX;;;GAGG;AACH,MAAa,mBAAmB;IAK9B;;;;OAIG;IACH,YAAY,MAAc;QAPjB,8CAAuB;QAQ9B,uBAAA,IAAI,+BAAW,IAAI,6BAAa,CAAC,MAAM,CAAC,MAAA,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA8B;QAChD,OAAO,uBAAA,IAAI,mCAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,OAAO,uBAAA,IAAI,mCAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,uBAAA,IAAI,mCAAQ,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,OAAO,uBAAA,IAAI,mCAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,OAAO,uBAAA,IAAI,mCAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,uBAAA,IAAI,mCAAQ,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAuB;QACzC,OAAO,uBAAA,IAAI,mCAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,IAA2B;QAC1D,OAAO,uBAAA,IAAI,mCAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,OAAO,uBAAA,IAAI,mCAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,EAAU,EAAE,MAAgB;QACpD,OAAO,uBAAA,IAAI,mCAAQ,CAAC,mBAAmB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,OAAO,uBAAA,IAAI,mCAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;CACF;AAzDD,kDAyDC","sourcesContent":["import type {\n KeyringAccount,\n KeyringAccountData,\n KeyringRequest,\n} from '@metamask/keyring-api';\nimport { KeyringRpcMethod } from '@metamask/keyring-api';\nimport type { Json } from '@metamask/utils';\n\nimport type { Sender } from './KeyringClient';\nimport { KeyringClient } from './KeyringClient';\n\n/**\n * Convert a tuple to a union.\n */\ntype TupleToUnion<Tuple extends readonly unknown[]> = Tuple[number];\n\n/**\n * Extract the method name from a RPC method name.\n */\ntype KeyringRpcMethodToMethodName<RpcMethod extends string> =\n RpcMethod extends `keyring_${infer Method}` ? Method : never;\n\n/**\n * Public methods list.\n */\nexport const KeyringPublicRpcMethod = [\n KeyringRpcMethod.CreateAccount,\n KeyringRpcMethod.GetAccount,\n KeyringRpcMethod.UpdateAccount,\n KeyringRpcMethod.DeleteAccount,\n KeyringRpcMethod.ExportAccount,\n KeyringRpcMethod.ListAccounts,\n KeyringRpcMethod.FilterAccountChains,\n KeyringRpcMethod.GetRequest,\n KeyringRpcMethod.ApproveRequest,\n KeyringRpcMethod.RejectRequest,\n KeyringRpcMethod.ListRequests,\n] as const;\n\n/**\n * Union of all public methods.\n */\ntype KeyringPublicMethod = KeyringRpcMethodToMethodName<\n TupleToUnion<typeof KeyringPublicRpcMethod>\n>;\n\n/**\n * A client that can be used by companion dapp. Only some keyring methods are\n * available with this client.\n */\nexport class KeyringPublicClient\n implements Pick<KeyringClient, KeyringPublicMethod>\n{\n readonly #client: KeyringClient;\n\n /**\n * Create a new instance of `KeyringPublicClient`.\n *\n * @param sender - The `Sender` instance to use to send requests to the snap.\n */\n constructor(sender: Sender) {\n this.#client = new KeyringClient(sender);\n }\n\n async createAccount(options?: Record<string, Json>): Promise<KeyringAccount> {\n return this.#client.createAccount(options);\n }\n\n async deleteAccount(id: string): Promise<void> {\n return this.#client.deleteAccount(id);\n }\n\n async listAccounts(): Promise<KeyringAccount[]> {\n return this.#client.listAccounts();\n }\n\n async getAccount(id: string): Promise<KeyringAccount> {\n return this.#client.getAccount(id);\n }\n\n async getRequest(id: string): Promise<KeyringRequest> {\n return this.#client.getRequest(id);\n }\n\n async listRequests(): Promise<KeyringRequest[]> {\n return this.#client.listRequests();\n }\n\n async updateAccount(account: KeyringAccount): Promise<void> {\n return this.#client.updateAccount(account);\n }\n\n async approveRequest(id: string, data?: Record<string, Json>): Promise<void> {\n return this.#client.approveRequest(id, data);\n }\n\n async rejectRequest(id: string): Promise<void> {\n return this.#client.rejectRequest(id);\n }\n\n async filterAccountChains(id: string, chains: string[]): Promise<string[]> {\n return this.#client.filterAccountChains(id, chains);\n }\n\n async exportAccount(id: string): Promise<KeyringAccountData> {\n return this.#client.exportAccount(id);\n }\n}\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { KeyringAccount, KeyringAccountData, KeyringRequest } from "@metamask/keyring-api";
|
|
2
|
+
import { KeyringRpcMethod } from "@metamask/keyring-api";
|
|
3
|
+
import type { Json } from "@metamask/utils";
|
|
4
|
+
import type { Sender } from "./KeyringClient.cjs";
|
|
5
|
+
import { KeyringClient } from "./KeyringClient.cjs";
|
|
6
|
+
/**
|
|
7
|
+
* Convert a tuple to a union.
|
|
8
|
+
*/
|
|
9
|
+
type TupleToUnion<Tuple extends readonly unknown[]> = Tuple[number];
|
|
10
|
+
/**
|
|
11
|
+
* Extract the method name from a RPC method name.
|
|
12
|
+
*/
|
|
13
|
+
type KeyringRpcMethodToMethodName<RpcMethod extends string> = RpcMethod extends `keyring_${infer Method}` ? Method : never;
|
|
14
|
+
/**
|
|
15
|
+
* Public methods list.
|
|
16
|
+
*/
|
|
17
|
+
export declare const KeyringPublicRpcMethod: readonly [KeyringRpcMethod.CreateAccount, KeyringRpcMethod.GetAccount, KeyringRpcMethod.UpdateAccount, KeyringRpcMethod.DeleteAccount, KeyringRpcMethod.ExportAccount, KeyringRpcMethod.ListAccounts, KeyringRpcMethod.FilterAccountChains, KeyringRpcMethod.GetRequest, KeyringRpcMethod.ApproveRequest, KeyringRpcMethod.RejectRequest, KeyringRpcMethod.ListRequests];
|
|
18
|
+
/**
|
|
19
|
+
* Union of all public methods.
|
|
20
|
+
*/
|
|
21
|
+
type KeyringPublicMethod = KeyringRpcMethodToMethodName<TupleToUnion<typeof KeyringPublicRpcMethod>>;
|
|
22
|
+
/**
|
|
23
|
+
* A client that can be used by companion dapp. Only some keyring methods are
|
|
24
|
+
* available with this client.
|
|
25
|
+
*/
|
|
26
|
+
export declare class KeyringPublicClient implements Pick<KeyringClient, KeyringPublicMethod> {
|
|
27
|
+
#private;
|
|
28
|
+
/**
|
|
29
|
+
* Create a new instance of `KeyringPublicClient`.
|
|
30
|
+
*
|
|
31
|
+
* @param sender - The `Sender` instance to use to send requests to the snap.
|
|
32
|
+
*/
|
|
33
|
+
constructor(sender: Sender);
|
|
34
|
+
createAccount(options?: Record<string, Json>): Promise<KeyringAccount>;
|
|
35
|
+
deleteAccount(id: string): Promise<void>;
|
|
36
|
+
listAccounts(): Promise<KeyringAccount[]>;
|
|
37
|
+
getAccount(id: string): Promise<KeyringAccount>;
|
|
38
|
+
getRequest(id: string): Promise<KeyringRequest>;
|
|
39
|
+
listRequests(): Promise<KeyringRequest[]>;
|
|
40
|
+
updateAccount(account: KeyringAccount): Promise<void>;
|
|
41
|
+
approveRequest(id: string, data?: Record<string, Json>): Promise<void>;
|
|
42
|
+
rejectRequest(id: string): Promise<void>;
|
|
43
|
+
filterAccountChains(id: string, chains: string[]): Promise<string[]>;
|
|
44
|
+
exportAccount(id: string): Promise<KeyringAccountData>;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=KeyringPublicClient.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyringPublicClient.d.cts","sourceRoot":"","sources":["../src/KeyringPublicClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,cAAc,EACf,8BAA8B;AAC/B,OAAO,EAAE,gBAAgB,EAAE,8BAA8B;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,4BAAwB;AAC9C,OAAO,EAAE,aAAa,EAAE,4BAAwB;AAEhD;;GAEG;AACH,KAAK,YAAY,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAEpE;;GAEG;AACH,KAAK,4BAA4B,CAAC,SAAS,SAAS,MAAM,IACxD,SAAS,SAAS,WAAW,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,sBAAsB,0WAYzB,CAAC;AAEX;;GAEG;AACH,KAAK,mBAAmB,GAAG,4BAA4B,CACrD,YAAY,CAAC,OAAO,sBAAsB,CAAC,CAC5C,CAAC;AAEF;;;GAGG;AACH,qBAAa,mBACX,YAAW,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC;;IAInD;;;;OAIG;gBACS,MAAM,EAAE,MAAM;IAIpB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAItE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIzC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/C,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIzC,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIpE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAG7D"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { KeyringAccount, KeyringAccountData, KeyringRequest } from "@metamask/keyring-api";
|
|
2
|
+
import { KeyringRpcMethod } from "@metamask/keyring-api";
|
|
3
|
+
import type { Json } from "@metamask/utils";
|
|
4
|
+
import type { Sender } from "./KeyringClient.mjs";
|
|
5
|
+
import { KeyringClient } from "./KeyringClient.mjs";
|
|
6
|
+
/**
|
|
7
|
+
* Convert a tuple to a union.
|
|
8
|
+
*/
|
|
9
|
+
type TupleToUnion<Tuple extends readonly unknown[]> = Tuple[number];
|
|
10
|
+
/**
|
|
11
|
+
* Extract the method name from a RPC method name.
|
|
12
|
+
*/
|
|
13
|
+
type KeyringRpcMethodToMethodName<RpcMethod extends string> = RpcMethod extends `keyring_${infer Method}` ? Method : never;
|
|
14
|
+
/**
|
|
15
|
+
* Public methods list.
|
|
16
|
+
*/
|
|
17
|
+
export declare const KeyringPublicRpcMethod: readonly [KeyringRpcMethod.CreateAccount, KeyringRpcMethod.GetAccount, KeyringRpcMethod.UpdateAccount, KeyringRpcMethod.DeleteAccount, KeyringRpcMethod.ExportAccount, KeyringRpcMethod.ListAccounts, KeyringRpcMethod.FilterAccountChains, KeyringRpcMethod.GetRequest, KeyringRpcMethod.ApproveRequest, KeyringRpcMethod.RejectRequest, KeyringRpcMethod.ListRequests];
|
|
18
|
+
/**
|
|
19
|
+
* Union of all public methods.
|
|
20
|
+
*/
|
|
21
|
+
type KeyringPublicMethod = KeyringRpcMethodToMethodName<TupleToUnion<typeof KeyringPublicRpcMethod>>;
|
|
22
|
+
/**
|
|
23
|
+
* A client that can be used by companion dapp. Only some keyring methods are
|
|
24
|
+
* available with this client.
|
|
25
|
+
*/
|
|
26
|
+
export declare class KeyringPublicClient implements Pick<KeyringClient, KeyringPublicMethod> {
|
|
27
|
+
#private;
|
|
28
|
+
/**
|
|
29
|
+
* Create a new instance of `KeyringPublicClient`.
|
|
30
|
+
*
|
|
31
|
+
* @param sender - The `Sender` instance to use to send requests to the snap.
|
|
32
|
+
*/
|
|
33
|
+
constructor(sender: Sender);
|
|
34
|
+
createAccount(options?: Record<string, Json>): Promise<KeyringAccount>;
|
|
35
|
+
deleteAccount(id: string): Promise<void>;
|
|
36
|
+
listAccounts(): Promise<KeyringAccount[]>;
|
|
37
|
+
getAccount(id: string): Promise<KeyringAccount>;
|
|
38
|
+
getRequest(id: string): Promise<KeyringRequest>;
|
|
39
|
+
listRequests(): Promise<KeyringRequest[]>;
|
|
40
|
+
updateAccount(account: KeyringAccount): Promise<void>;
|
|
41
|
+
approveRequest(id: string, data?: Record<string, Json>): Promise<void>;
|
|
42
|
+
rejectRequest(id: string): Promise<void>;
|
|
43
|
+
filterAccountChains(id: string, chains: string[]): Promise<string[]>;
|
|
44
|
+
exportAccount(id: string): Promise<KeyringAccountData>;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=KeyringPublicClient.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyringPublicClient.d.mts","sourceRoot":"","sources":["../src/KeyringPublicClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,cAAc,EACf,8BAA8B;AAC/B,OAAO,EAAE,gBAAgB,EAAE,8BAA8B;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,4BAAwB;AAC9C,OAAO,EAAE,aAAa,EAAE,4BAAwB;AAEhD;;GAEG;AACH,KAAK,YAAY,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAEpE;;GAEG;AACH,KAAK,4BAA4B,CAAC,SAAS,SAAS,MAAM,IACxD,SAAS,SAAS,WAAW,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,sBAAsB,0WAYzB,CAAC;AAEX;;GAEG;AACH,KAAK,mBAAmB,GAAG,4BAA4B,CACrD,YAAY,CAAC,OAAO,sBAAsB,CAAC,CAC5C,CAAC;AAEF;;;GAGG;AACH,qBAAa,mBACX,YAAW,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC;;IAInD;;;;OAIG;gBACS,MAAM,EAAE,MAAM;IAIpB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAItE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIzC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/C,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIzC,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIpE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAG7D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _KeyringPublicClient_client;
|
|
13
|
+
import { KeyringRpcMethod } from "@metamask/keyring-api";
|
|
14
|
+
import { KeyringClient } from "./KeyringClient.mjs";
|
|
15
|
+
/**
|
|
16
|
+
* Public methods list.
|
|
17
|
+
*/
|
|
18
|
+
export const KeyringPublicRpcMethod = [
|
|
19
|
+
KeyringRpcMethod.CreateAccount,
|
|
20
|
+
KeyringRpcMethod.GetAccount,
|
|
21
|
+
KeyringRpcMethod.UpdateAccount,
|
|
22
|
+
KeyringRpcMethod.DeleteAccount,
|
|
23
|
+
KeyringRpcMethod.ExportAccount,
|
|
24
|
+
KeyringRpcMethod.ListAccounts,
|
|
25
|
+
KeyringRpcMethod.FilterAccountChains,
|
|
26
|
+
KeyringRpcMethod.GetRequest,
|
|
27
|
+
KeyringRpcMethod.ApproveRequest,
|
|
28
|
+
KeyringRpcMethod.RejectRequest,
|
|
29
|
+
KeyringRpcMethod.ListRequests,
|
|
30
|
+
];
|
|
31
|
+
/**
|
|
32
|
+
* A client that can be used by companion dapp. Only some keyring methods are
|
|
33
|
+
* available with this client.
|
|
34
|
+
*/
|
|
35
|
+
export class KeyringPublicClient {
|
|
36
|
+
/**
|
|
37
|
+
* Create a new instance of `KeyringPublicClient`.
|
|
38
|
+
*
|
|
39
|
+
* @param sender - The `Sender` instance to use to send requests to the snap.
|
|
40
|
+
*/
|
|
41
|
+
constructor(sender) {
|
|
42
|
+
_KeyringPublicClient_client.set(this, void 0);
|
|
43
|
+
__classPrivateFieldSet(this, _KeyringPublicClient_client, new KeyringClient(sender), "f");
|
|
44
|
+
}
|
|
45
|
+
async createAccount(options) {
|
|
46
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").createAccount(options);
|
|
47
|
+
}
|
|
48
|
+
async deleteAccount(id) {
|
|
49
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").deleteAccount(id);
|
|
50
|
+
}
|
|
51
|
+
async listAccounts() {
|
|
52
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").listAccounts();
|
|
53
|
+
}
|
|
54
|
+
async getAccount(id) {
|
|
55
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").getAccount(id);
|
|
56
|
+
}
|
|
57
|
+
async getRequest(id) {
|
|
58
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").getRequest(id);
|
|
59
|
+
}
|
|
60
|
+
async listRequests() {
|
|
61
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").listRequests();
|
|
62
|
+
}
|
|
63
|
+
async updateAccount(account) {
|
|
64
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").updateAccount(account);
|
|
65
|
+
}
|
|
66
|
+
async approveRequest(id, data) {
|
|
67
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").approveRequest(id, data);
|
|
68
|
+
}
|
|
69
|
+
async rejectRequest(id) {
|
|
70
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").rejectRequest(id);
|
|
71
|
+
}
|
|
72
|
+
async filterAccountChains(id, chains) {
|
|
73
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").filterAccountChains(id, chains);
|
|
74
|
+
}
|
|
75
|
+
async exportAccount(id) {
|
|
76
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").exportAccount(id);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
_KeyringPublicClient_client = new WeakMap();
|
|
80
|
+
//# sourceMappingURL=KeyringPublicClient.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyringPublicClient.mjs","sourceRoot":"","sources":["../src/KeyringPublicClient.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,OAAO,EAAE,gBAAgB,EAAE,8BAA8B;AAIzD,OAAO,EAAE,aAAa,EAAE,4BAAwB;AAahD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,gBAAgB,CAAC,aAAa;IAC9B,gBAAgB,CAAC,UAAU;IAC3B,gBAAgB,CAAC,aAAa;IAC9B,gBAAgB,CAAC,aAAa;IAC9B,gBAAgB,CAAC,aAAa;IAC9B,gBAAgB,CAAC,YAAY;IAC7B,gBAAgB,CAAC,mBAAmB;IACpC,gBAAgB,CAAC,UAAU;IAC3B,gBAAgB,CAAC,cAAc;IAC/B,gBAAgB,CAAC,aAAa;IAC9B,gBAAgB,CAAC,YAAY;CACrB,CAAC;AASX;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAK9B;;;;OAIG;IACH,YAAY,MAAc;QAPjB,8CAAuB;QAQ9B,uBAAA,IAAI,+BAAW,IAAI,aAAa,CAAC,MAAM,CAAC,MAAA,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA8B;QAChD,OAAO,uBAAA,IAAI,mCAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,OAAO,uBAAA,IAAI,mCAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,uBAAA,IAAI,mCAAQ,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,OAAO,uBAAA,IAAI,mCAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,OAAO,uBAAA,IAAI,mCAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,uBAAA,IAAI,mCAAQ,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAuB;QACzC,OAAO,uBAAA,IAAI,mCAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,IAA2B;QAC1D,OAAO,uBAAA,IAAI,mCAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,OAAO,uBAAA,IAAI,mCAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,EAAU,EAAE,MAAgB;QACpD,OAAO,uBAAA,IAAI,mCAAQ,CAAC,mBAAmB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,OAAO,uBAAA,IAAI,mCAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;CACF","sourcesContent":["import type {\n KeyringAccount,\n KeyringAccountData,\n KeyringRequest,\n} from '@metamask/keyring-api';\nimport { KeyringRpcMethod } from '@metamask/keyring-api';\nimport type { Json } from '@metamask/utils';\n\nimport type { Sender } from './KeyringClient';\nimport { KeyringClient } from './KeyringClient';\n\n/**\n * Convert a tuple to a union.\n */\ntype TupleToUnion<Tuple extends readonly unknown[]> = Tuple[number];\n\n/**\n * Extract the method name from a RPC method name.\n */\ntype KeyringRpcMethodToMethodName<RpcMethod extends string> =\n RpcMethod extends `keyring_${infer Method}` ? Method : never;\n\n/**\n * Public methods list.\n */\nexport const KeyringPublicRpcMethod = [\n KeyringRpcMethod.CreateAccount,\n KeyringRpcMethod.GetAccount,\n KeyringRpcMethod.UpdateAccount,\n KeyringRpcMethod.DeleteAccount,\n KeyringRpcMethod.ExportAccount,\n KeyringRpcMethod.ListAccounts,\n KeyringRpcMethod.FilterAccountChains,\n KeyringRpcMethod.GetRequest,\n KeyringRpcMethod.ApproveRequest,\n KeyringRpcMethod.RejectRequest,\n KeyringRpcMethod.ListRequests,\n] as const;\n\n/**\n * Union of all public methods.\n */\ntype KeyringPublicMethod = KeyringRpcMethodToMethodName<\n TupleToUnion<typeof KeyringPublicRpcMethod>\n>;\n\n/**\n * A client that can be used by companion dapp. Only some keyring methods are\n * available with this client.\n */\nexport class KeyringPublicClient\n implements Pick<KeyringClient, KeyringPublicMethod>\n{\n readonly #client: KeyringClient;\n\n /**\n * Create a new instance of `KeyringPublicClient`.\n *\n * @param sender - The `Sender` instance to use to send requests to the snap.\n */\n constructor(sender: Sender) {\n this.#client = new KeyringClient(sender);\n }\n\n async createAccount(options?: Record<string, Json>): Promise<KeyringAccount> {\n return this.#client.createAccount(options);\n }\n\n async deleteAccount(id: string): Promise<void> {\n return this.#client.deleteAccount(id);\n }\n\n async listAccounts(): Promise<KeyringAccount[]> {\n return this.#client.listAccounts();\n }\n\n async getAccount(id: string): Promise<KeyringAccount> {\n return this.#client.getAccount(id);\n }\n\n async getRequest(id: string): Promise<KeyringRequest> {\n return this.#client.getRequest(id);\n }\n\n async listRequests(): Promise<KeyringRequest[]> {\n return this.#client.listRequests();\n }\n\n async updateAccount(account: KeyringAccount): Promise<void> {\n return this.#client.updateAccount(account);\n }\n\n async approveRequest(id: string, data?: Record<string, Json>): Promise<void> {\n return this.#client.approveRequest(id, data);\n }\n\n async rejectRequest(id: string): Promise<void> {\n return this.#client.rejectRequest(id);\n }\n\n async filterAccountChains(id: string, chains: string[]): Promise<string[]> {\n return this.#client.filterAccountChains(id, chains);\n }\n\n async exportAccount(id: string): Promise<KeyringAccountData> {\n return this.#client.exportAccount(id);\n }\n}\n"]}
|
|
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
13
13
|
var _SnapRpcSender_origin, _SnapRpcSender_provider;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.KeyringSnapRpcClient = exports.SnapRpcSender = void 0;
|
|
16
|
-
const
|
|
16
|
+
const KeyringPublicClient_1 = require("./KeyringPublicClient.cjs");
|
|
17
17
|
/**
|
|
18
18
|
* Implementation of the `Sender` interface that can be used to send requests
|
|
19
19
|
* to a snap through the snap JSON-RPC API.
|
|
@@ -50,10 +50,10 @@ class SnapRpcSender {
|
|
|
50
50
|
exports.SnapRpcSender = SnapRpcSender;
|
|
51
51
|
_SnapRpcSender_origin = new WeakMap(), _SnapRpcSender_provider = new WeakMap();
|
|
52
52
|
/**
|
|
53
|
-
* A
|
|
54
|
-
* JSON-RPC API.
|
|
53
|
+
* A client that allows the communication with a snap through the snap
|
|
54
|
+
* JSON-RPC API to call keyring methods.
|
|
55
55
|
*/
|
|
56
|
-
class KeyringSnapRpcClient extends
|
|
56
|
+
class KeyringSnapRpcClient extends KeyringPublicClient_1.KeyringPublicClient {
|
|
57
57
|
/**
|
|
58
58
|
* Create a new instance of `KeyringSnapRpcClient`.
|
|
59
59
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringSnapRpcClient.cjs","sourceRoot":"","sources":["../src/KeyringSnapRpcClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,
|
|
1
|
+
{"version":3,"file":"KeyringSnapRpcClient.cjs","sourceRoot":"","sources":["../src/KeyringSnapRpcClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,mEAA4D;AAE5D;;;GAGG;AACH,MAAa,aAAa;IAKxB;;;;;OAKG;IACH,YAAY,MAAc,EAAE,QAAgC;QAVnD,wCAAgB;QAEhB,0CAAkC;QASzC,uBAAA,IAAI,yBAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,2BAAa,QAAQ,MAAA,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,OAAuB;QAChC,OAAO,uBAAA,IAAI,+BAAU,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,sBAAsB;YAC9B,MAAM,EAAE;gBACN,MAAM,EAAE,uBAAA,IAAI,6BAAQ;gBACpB,OAAO;aACR;SACF,CAAkB,CAAC;IACtB,CAAC;CACF;AA/BD,sCA+BC;;AAED;;;GAGG;AACH,MAAa,oBAAqB,SAAQ,yCAAmB;IAC3D;;;;;OAKG;IACH,YAAY,MAAc,EAAE,QAAgC;QAC1D,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AAVD,oDAUC","sourcesContent":["import type { JsonRpcRequest } from '@metamask/keyring-utils';\nimport type { MetaMaskInpageProvider } from '@metamask/providers';\nimport type { Json } from '@metamask/utils';\n\nimport type { Sender } from './KeyringClient';\nimport { KeyringPublicClient } from './KeyringPublicClient';\n\n/**\n * Implementation of the `Sender` interface that can be used to send requests\n * to a snap through the snap JSON-RPC API.\n */\nexport class SnapRpcSender implements Sender {\n readonly #origin: string;\n\n readonly #provider: MetaMaskInpageProvider;\n\n /**\n * Create a new instance of `SnapRpcSender`.\n *\n * @param origin - The caller's origin.\n * @param provider - The `MetaMaskInpageProvider` instance to use.\n */\n constructor(origin: string, provider: MetaMaskInpageProvider) {\n this.#origin = origin;\n this.#provider = provider;\n }\n\n /**\n * Send a request to the snap and return the response.\n *\n * @param request - The JSON-RPC request to send to the snap.\n * @returns A promise that resolves to the response of the request.\n */\n async send(request: JsonRpcRequest): Promise<Json> {\n return this.#provider.request({\n method: 'wallet_invokeKeyring',\n params: {\n snapId: this.#origin,\n request,\n },\n }) as Promise<Json>;\n }\n}\n\n/**\n * A client that allows the communication with a snap through the snap\n * JSON-RPC API to call keyring methods.\n */\nexport class KeyringSnapRpcClient extends KeyringPublicClient {\n /**\n * Create a new instance of `KeyringSnapRpcClient`.\n *\n * @param origin - Caller's origin.\n * @param provider - The `MetaMaskInpageProvider` instance to use.\n */\n constructor(origin: string, provider: MetaMaskInpageProvider) {\n super(new SnapRpcSender(origin, provider));\n }\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import type { JsonRpcRequest } from "@metamask/keyring-utils";
|
|
|
2
2
|
import type { MetaMaskInpageProvider } from "@metamask/providers";
|
|
3
3
|
import type { Json } from "@metamask/utils";
|
|
4
4
|
import type { Sender } from "./KeyringClient.cjs";
|
|
5
|
-
import {
|
|
5
|
+
import { KeyringPublicClient } from "./KeyringPublicClient.cjs";
|
|
6
6
|
/**
|
|
7
7
|
* Implementation of the `Sender` interface that can be used to send requests
|
|
8
8
|
* to a snap through the snap JSON-RPC API.
|
|
@@ -25,10 +25,10 @@ export declare class SnapRpcSender implements Sender {
|
|
|
25
25
|
send(request: JsonRpcRequest): Promise<Json>;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
* A
|
|
29
|
-
* JSON-RPC API.
|
|
28
|
+
* A client that allows the communication with a snap through the snap
|
|
29
|
+
* JSON-RPC API to call keyring methods.
|
|
30
30
|
*/
|
|
31
|
-
export declare class KeyringSnapRpcClient extends
|
|
31
|
+
export declare class KeyringSnapRpcClient extends KeyringPublicClient {
|
|
32
32
|
/**
|
|
33
33
|
* Create a new instance of `KeyringSnapRpcClient`.
|
|
34
34
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringSnapRpcClient.d.cts","sourceRoot":"","sources":["../src/KeyringSnapRpcClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gCAAgC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,4BAA4B;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,4BAAwB;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"KeyringSnapRpcClient.d.cts","sourceRoot":"","sources":["../src/KeyringSnapRpcClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gCAAgC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,4BAA4B;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,4BAAwB;AAC9C,OAAO,EAAE,mBAAmB,EAAE,kCAA8B;AAE5D;;;GAGG;AACH,qBAAa,aAAc,YAAW,MAAM;;IAK1C;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB;IAK5D;;;;;OAKG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CASnD;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;IAC3D;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB;CAG7D"}
|
|
@@ -2,7 +2,7 @@ import type { JsonRpcRequest } from "@metamask/keyring-utils";
|
|
|
2
2
|
import type { MetaMaskInpageProvider } from "@metamask/providers";
|
|
3
3
|
import type { Json } from "@metamask/utils";
|
|
4
4
|
import type { Sender } from "./KeyringClient.mjs";
|
|
5
|
-
import {
|
|
5
|
+
import { KeyringPublicClient } from "./KeyringPublicClient.mjs";
|
|
6
6
|
/**
|
|
7
7
|
* Implementation of the `Sender` interface that can be used to send requests
|
|
8
8
|
* to a snap through the snap JSON-RPC API.
|
|
@@ -25,10 +25,10 @@ export declare class SnapRpcSender implements Sender {
|
|
|
25
25
|
send(request: JsonRpcRequest): Promise<Json>;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
* A
|
|
29
|
-
* JSON-RPC API.
|
|
28
|
+
* A client that allows the communication with a snap through the snap
|
|
29
|
+
* JSON-RPC API to call keyring methods.
|
|
30
30
|
*/
|
|
31
|
-
export declare class KeyringSnapRpcClient extends
|
|
31
|
+
export declare class KeyringSnapRpcClient extends KeyringPublicClient {
|
|
32
32
|
/**
|
|
33
33
|
* Create a new instance of `KeyringSnapRpcClient`.
|
|
34
34
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringSnapRpcClient.d.mts","sourceRoot":"","sources":["../src/KeyringSnapRpcClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gCAAgC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,4BAA4B;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,4BAAwB;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"KeyringSnapRpcClient.d.mts","sourceRoot":"","sources":["../src/KeyringSnapRpcClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gCAAgC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,4BAA4B;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,4BAAwB;AAC9C,OAAO,EAAE,mBAAmB,EAAE,kCAA8B;AAE5D;;;GAGG;AACH,qBAAa,aAAc,YAAW,MAAM;;IAK1C;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB;IAK5D;;;;;OAKG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CASnD;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;IAC3D;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB;CAG7D"}
|
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
12
|
var _SnapRpcSender_origin, _SnapRpcSender_provider;
|
|
13
|
-
import {
|
|
13
|
+
import { KeyringPublicClient } from "./KeyringPublicClient.mjs";
|
|
14
14
|
/**
|
|
15
15
|
* Implementation of the `Sender` interface that can be used to send requests
|
|
16
16
|
* to a snap through the snap JSON-RPC API.
|
|
@@ -46,10 +46,10 @@ export class SnapRpcSender {
|
|
|
46
46
|
}
|
|
47
47
|
_SnapRpcSender_origin = new WeakMap(), _SnapRpcSender_provider = new WeakMap();
|
|
48
48
|
/**
|
|
49
|
-
* A
|
|
50
|
-
* JSON-RPC API.
|
|
49
|
+
* A client that allows the communication with a snap through the snap
|
|
50
|
+
* JSON-RPC API to call keyring methods.
|
|
51
51
|
*/
|
|
52
|
-
export class KeyringSnapRpcClient extends
|
|
52
|
+
export class KeyringSnapRpcClient extends KeyringPublicClient {
|
|
53
53
|
/**
|
|
54
54
|
* Create a new instance of `KeyringSnapRpcClient`.
|
|
55
55
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringSnapRpcClient.mjs","sourceRoot":"","sources":["../src/KeyringSnapRpcClient.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"KeyringSnapRpcClient.mjs","sourceRoot":"","sources":["../src/KeyringSnapRpcClient.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,OAAO,EAAE,mBAAmB,EAAE,kCAA8B;AAE5D;;;GAGG;AACH,MAAM,OAAO,aAAa;IAKxB;;;;;OAKG;IACH,YAAY,MAAc,EAAE,QAAgC;QAVnD,wCAAgB;QAEhB,0CAAkC;QASzC,uBAAA,IAAI,yBAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,2BAAa,QAAQ,MAAA,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,OAAuB;QAChC,OAAO,uBAAA,IAAI,+BAAU,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,sBAAsB;YAC9B,MAAM,EAAE;gBACN,MAAM,EAAE,uBAAA,IAAI,6BAAQ;gBACpB,OAAO;aACR;SACF,CAAkB,CAAC;IACtB,CAAC;CACF;;AAED;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D;;;;;OAKG;IACH,YAAY,MAAc,EAAE,QAAgC;QAC1D,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import type { JsonRpcRequest } from '@metamask/keyring-utils';\nimport type { MetaMaskInpageProvider } from '@metamask/providers';\nimport type { Json } from '@metamask/utils';\n\nimport type { Sender } from './KeyringClient';\nimport { KeyringPublicClient } from './KeyringPublicClient';\n\n/**\n * Implementation of the `Sender` interface that can be used to send requests\n * to a snap through the snap JSON-RPC API.\n */\nexport class SnapRpcSender implements Sender {\n readonly #origin: string;\n\n readonly #provider: MetaMaskInpageProvider;\n\n /**\n * Create a new instance of `SnapRpcSender`.\n *\n * @param origin - The caller's origin.\n * @param provider - The `MetaMaskInpageProvider` instance to use.\n */\n constructor(origin: string, provider: MetaMaskInpageProvider) {\n this.#origin = origin;\n this.#provider = provider;\n }\n\n /**\n * Send a request to the snap and return the response.\n *\n * @param request - The JSON-RPC request to send to the snap.\n * @returns A promise that resolves to the response of the request.\n */\n async send(request: JsonRpcRequest): Promise<Json> {\n return this.#provider.request({\n method: 'wallet_invokeKeyring',\n params: {\n snapId: this.#origin,\n request,\n },\n }) as Promise<Json>;\n }\n}\n\n/**\n * A client that allows the communication with a snap through the snap\n * JSON-RPC API to call keyring methods.\n */\nexport class KeyringSnapRpcClient extends KeyringPublicClient {\n /**\n * Create a new instance of `KeyringSnapRpcClient`.\n *\n * @param origin - Caller's origin.\n * @param provider - The `MetaMaskInpageProvider` instance to use.\n */\n constructor(origin: string, provider: MetaMaskInpageProvider) {\n super(new SnapRpcSender(origin, provider));\n }\n}\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./KeyringClient.cjs"), exports);
|
|
18
18
|
__exportStar(require("./KeyringSnapRpcClient.cjs"), exports);
|
|
19
|
+
__exportStar(require("./KeyringPublicClient.cjs"), exports);
|
|
19
20
|
//# 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,sDAAgC;AAChC,6DAAuC","sourcesContent":["export * from './KeyringClient';\nexport * from './KeyringSnapRpcClient';\n"]}
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAgC;AAChC,6DAAuC;AACvC,4DAAsC","sourcesContent":["export * from './KeyringClient';\nexport * from './KeyringSnapRpcClient';\nexport * from './KeyringPublicClient';\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,oCAAgC;AAChC,2CAAuC"}
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oCAAgC;AAChC,2CAAuC;AACvC,0CAAsC"}
|
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,oCAAgC;AAChC,2CAAuC"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oCAAgC;AAChC,2CAAuC;AACvC,0CAAsC"}
|
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,oCAAgC;AAChC,2CAAuC","sourcesContent":["export * from './KeyringClient';\nexport * from './KeyringSnapRpcClient';\n"]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oCAAgC;AAChC,2CAAuC;AACvC,0CAAsC","sourcesContent":["export * from './KeyringClient';\nexport * from './KeyringSnapRpcClient';\nexport * from './KeyringPublicClient';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metamask-previews/keyring-snap-client",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.0-03fdc7b",
|
|
4
4
|
"description": "MetaMask Keyring Snap clients",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"metamask",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"test:watch": "jest --watch"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@metamask/keyring-api": "17.
|
|
49
|
-
"@metamask/keyring-utils": "
|
|
48
|
+
"@metamask/keyring-api": "17.5.0",
|
|
49
|
+
"@metamask/keyring-utils": "3.0.0",
|
|
50
50
|
"@metamask/superstruct": "^3.1.0",
|
|
51
51
|
"@types/uuid": "^9.0.8",
|
|
52
52
|
"uuid": "^9.0.1",
|