@metamask-previews/keyring-snap-client 4.1.0-1e1233a → 4.1.0-2352190

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.
@@ -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 _KeyringClient_instances, _KeyringClient_sender, _KeyringClient_send;
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,124 +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 __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
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 __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
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 __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
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 __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
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
  }
54
66
  async discoverAccounts(scopes, entropySource, groupIndex) {
55
- return (0, keyring_utils_1.strictMask)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
67
+ return (0, keyring_utils_1.strictMask)(await this.send({
56
68
  method: keyring_api_1.KeyringRpcMethod.DiscoverAccounts,
57
69
  params: { scopes, entropySource, groupIndex },
58
70
  }), keyring_api_1.DiscoverAccountsResponseStruct);
59
71
  }
60
72
  async listAccountTransactions(id, pagination) {
61
- return (0, keyring_utils_1.strictMask)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
73
+ return (0, keyring_utils_1.strictMask)(await this.send({
62
74
  method: keyring_api_1.KeyringRpcMethod.ListAccountTransactions,
63
75
  params: { id, pagination },
64
76
  }), keyring_api_1.ListAccountTransactionsResponseStruct);
65
77
  }
66
78
  async listAccountAssets(id) {
67
- return (0, keyring_utils_1.strictMask)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
79
+ return (0, keyring_utils_1.strictMask)(await this.send({
68
80
  method: keyring_api_1.KeyringRpcMethod.ListAccountAssets,
69
81
  params: { id },
70
82
  }), keyring_api_1.ListAccountAssetsResponseStruct);
71
83
  }
72
84
  async resolveAccountAddress(scope, request) {
73
- return (0, keyring_utils_1.strictMask)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
85
+ return (0, keyring_utils_1.strictMask)(await this.send({
74
86
  method: keyring_api_1.KeyringRpcMethod.ResolveAccountAddress,
75
87
  params: { scope, request },
76
88
  }), keyring_api_1.ResolveAccountAddressResponseStruct);
77
89
  }
78
90
  async filterAccountChains(id, chains) {
79
- return (0, keyring_utils_1.strictMask)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
91
+ return (0, keyring_utils_1.strictMask)(await this.send({
80
92
  method: keyring_api_1.KeyringRpcMethod.FilterAccountChains,
81
93
  params: { id, chains },
82
94
  }), keyring_api_1.FilterAccountChainsResponseStruct);
83
95
  }
84
96
  async updateAccount(account) {
85
- (0, superstruct_1.assert)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
97
+ (0, superstruct_1.assert)(await this.send({
86
98
  method: keyring_api_1.KeyringRpcMethod.UpdateAccount,
87
99
  params: { account },
88
100
  }), keyring_api_1.UpdateAccountResponseStruct);
89
101
  }
90
102
  async deleteAccount(id) {
91
- (0, superstruct_1.assert)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
103
+ (0, superstruct_1.assert)(await this.send({
92
104
  method: keyring_api_1.KeyringRpcMethod.DeleteAccount,
93
105
  params: { id },
94
106
  }), keyring_api_1.DeleteAccountResponseStruct);
95
107
  }
96
108
  async exportAccount(id) {
97
- return (0, keyring_utils_1.strictMask)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
109
+ return (0, keyring_utils_1.strictMask)(await this.send({
98
110
  method: keyring_api_1.KeyringRpcMethod.ExportAccount,
99
111
  params: { id },
100
112
  }), keyring_api_1.ExportAccountResponseStruct);
101
113
  }
102
114
  async listRequests() {
103
- return (0, keyring_utils_1.strictMask)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
115
+ return (0, keyring_utils_1.strictMask)(await this.send({
104
116
  method: keyring_api_1.KeyringRpcMethod.ListRequests,
105
117
  }), keyring_api_1.ListRequestsResponseStruct);
106
118
  }
107
119
  async getRequest(id) {
108
- return (0, keyring_utils_1.strictMask)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
120
+ return (0, keyring_utils_1.strictMask)(await this.send({
109
121
  method: keyring_api_1.KeyringRpcMethod.GetRequest,
110
122
  params: { id },
111
123
  }), keyring_api_1.GetRequestResponseStruct);
112
124
  }
113
125
  async submitRequest(request) {
114
- return (0, keyring_utils_1.strictMask)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
126
+ return (0, keyring_utils_1.strictMask)(await this.send({
115
127
  method: keyring_api_1.KeyringRpcMethod.SubmitRequest,
116
128
  params: request,
117
129
  }), keyring_api_1.SubmitRequestResponseStruct);
118
130
  }
119
131
  async approveRequest(id, data = {}) {
120
- (0, superstruct_1.assert)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
132
+ (0, superstruct_1.assert)(await this.send({
121
133
  method: keyring_api_1.KeyringRpcMethod.ApproveRequest,
122
134
  params: { id, data },
123
135
  }), keyring_api_1.ApproveRequestResponseStruct);
124
136
  }
125
137
  async rejectRequest(id) {
126
- (0, superstruct_1.assert)(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
138
+ (0, superstruct_1.assert)(await this.send({
127
139
  method: keyring_api_1.KeyringRpcMethod.RejectRequest,
128
140
  params: { id },
129
141
  }), keyring_api_1.RejectRequestResponseStruct);
130
142
  }
131
143
  }
132
144
  exports.KeyringClient = KeyringClient;
133
- _KeyringClient_sender = new WeakMap(), _KeyringClient_instances = new WeakSet(), _KeyringClient_send =
134
- /**
135
- * Send a request to the snap and return the response.
136
- *
137
- * @param partial - A partial JSON-RPC request (method and params).
138
- * @returns A promise that resolves to the response to the request.
139
- */
140
- async function _KeyringClient_send(partial) {
141
- return __classPrivateFieldGet(this, _KeyringClient_sender, "f").send({
142
- jsonrpc: '2.0',
143
- id: (0, uuid_1.v4)(),
144
- ...partial,
145
- });
146
- };
145
+ _KeyringClient_sender = new WeakMap();
147
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 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 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 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"]}
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 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"]}
@@ -12,6 +12,13 @@ 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>>;
@@ -1 +1 @@
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;IAkBpB,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"}
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"}
@@ -12,6 +12,13 @@ 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>>;
@@ -1 +1 @@
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;IAkBpB,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"}
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"}
@@ -9,7 +9,7 @@ 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 _KeyringClient_instances, _KeyringClient_sender, _KeyringClient_send;
12
+ var _KeyringClient_sender;
13
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";
@@ -21,123 +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 __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
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 __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
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 __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
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 __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
58
+ return strictMask(await this.send({
47
59
  method: KeyringRpcMethod.CreateAccount,
48
60
  params: { options },
49
61
  }), CreateAccountResponseStruct);
50
62
  }
51
63
  async discoverAccounts(scopes, entropySource, groupIndex) {
52
- return strictMask(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
64
+ return strictMask(await this.send({
53
65
  method: KeyringRpcMethod.DiscoverAccounts,
54
66
  params: { scopes, entropySource, groupIndex },
55
67
  }), DiscoverAccountsResponseStruct);
56
68
  }
57
69
  async listAccountTransactions(id, pagination) {
58
- return strictMask(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
70
+ return strictMask(await this.send({
59
71
  method: KeyringRpcMethod.ListAccountTransactions,
60
72
  params: { id, pagination },
61
73
  }), ListAccountTransactionsResponseStruct);
62
74
  }
63
75
  async listAccountAssets(id) {
64
- return strictMask(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
76
+ return strictMask(await this.send({
65
77
  method: KeyringRpcMethod.ListAccountAssets,
66
78
  params: { id },
67
79
  }), ListAccountAssetsResponseStruct);
68
80
  }
69
81
  async resolveAccountAddress(scope, request) {
70
- return strictMask(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
82
+ return strictMask(await this.send({
71
83
  method: KeyringRpcMethod.ResolveAccountAddress,
72
84
  params: { scope, request },
73
85
  }), ResolveAccountAddressResponseStruct);
74
86
  }
75
87
  async filterAccountChains(id, chains) {
76
- return strictMask(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
88
+ return strictMask(await this.send({
77
89
  method: KeyringRpcMethod.FilterAccountChains,
78
90
  params: { id, chains },
79
91
  }), FilterAccountChainsResponseStruct);
80
92
  }
81
93
  async updateAccount(account) {
82
- assert(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
94
+ assert(await this.send({
83
95
  method: KeyringRpcMethod.UpdateAccount,
84
96
  params: { account },
85
97
  }), UpdateAccountResponseStruct);
86
98
  }
87
99
  async deleteAccount(id) {
88
- assert(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
100
+ assert(await this.send({
89
101
  method: KeyringRpcMethod.DeleteAccount,
90
102
  params: { id },
91
103
  }), DeleteAccountResponseStruct);
92
104
  }
93
105
  async exportAccount(id) {
94
- return strictMask(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
106
+ return strictMask(await this.send({
95
107
  method: KeyringRpcMethod.ExportAccount,
96
108
  params: { id },
97
109
  }), ExportAccountResponseStruct);
98
110
  }
99
111
  async listRequests() {
100
- return strictMask(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
112
+ return strictMask(await this.send({
101
113
  method: KeyringRpcMethod.ListRequests,
102
114
  }), ListRequestsResponseStruct);
103
115
  }
104
116
  async getRequest(id) {
105
- return strictMask(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
117
+ return strictMask(await this.send({
106
118
  method: KeyringRpcMethod.GetRequest,
107
119
  params: { id },
108
120
  }), GetRequestResponseStruct);
109
121
  }
110
122
  async submitRequest(request) {
111
- return strictMask(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
123
+ return strictMask(await this.send({
112
124
  method: KeyringRpcMethod.SubmitRequest,
113
125
  params: request,
114
126
  }), SubmitRequestResponseStruct);
115
127
  }
116
128
  async approveRequest(id, data = {}) {
117
- assert(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
129
+ assert(await this.send({
118
130
  method: KeyringRpcMethod.ApproveRequest,
119
131
  params: { id, data },
120
132
  }), ApproveRequestResponseStruct);
121
133
  }
122
134
  async rejectRequest(id) {
123
- assert(await __classPrivateFieldGet(this, _KeyringClient_instances, "m", _KeyringClient_send).call(this, {
135
+ assert(await this.send({
124
136
  method: KeyringRpcMethod.RejectRequest,
125
137
  params: { id },
126
138
  }), RejectRequestResponseStruct);
127
139
  }
128
140
  }
129
- _KeyringClient_sender = new WeakMap(), _KeyringClient_instances = new WeakSet(), _KeyringClient_send =
130
- /**
131
- * Send a request to the snap and return the response.
132
- *
133
- * @param partial - A partial JSON-RPC request (method and params).
134
- * @returns A promise that resolves to the response to the request.
135
- */
136
- async function _KeyringClient_send(partial) {
137
- return __classPrivateFieldGet(this, _KeyringClient_sender, "f").send({
138
- jsonrpc: '2.0',
139
- id: uuid(),
140
- ...partial,
141
- });
142
- };
141
+ _KeyringClient_sender = new WeakMap();
143
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 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 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 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"]}
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 KeyringClient_1 = require("./KeyringClient.cjs");
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 `KeyringClient` that allows the communication with a snap through the snap
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 KeyringClient_1.KeyringClient {
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,uDAAgD;AAEhD;;;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,6BAAa;IACrD;;;;;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 { KeyringClient } from './KeyringClient';\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 `KeyringClient` that allows the communication with a snap through the snap\n * JSON-RPC API.\n */\nexport class KeyringSnapRpcClient extends KeyringClient {\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"]}
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 { KeyringClient } from "./KeyringClient.cjs";
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 `KeyringClient` that allows the communication with a snap through the snap
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 KeyringClient {
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,aAAa,EAAE,4BAAwB;AAEhD;;;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,aAAa;IACrD;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB;CAG7D"}
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 { KeyringClient } from "./KeyringClient.mjs";
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 `KeyringClient` that allows the communication with a snap through the snap
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 KeyringClient {
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,aAAa,EAAE,4BAAwB;AAEhD;;;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,aAAa;IACrD;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB;CAG7D"}
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 { KeyringClient } from "./KeyringClient.mjs";
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 `KeyringClient` that allows the communication with a snap through the snap
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 KeyringClient {
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,aAAa,EAAE,4BAAwB;AAEhD;;;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,aAAa;IACrD;;;;;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 { KeyringClient } from './KeyringClient';\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 `KeyringClient` that allows the communication with a snap through the snap\n * JSON-RPC API.\n */\nexport class KeyringSnapRpcClient extends KeyringClient {\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"]}
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
@@ -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
@@ -1,3 +1,4 @@
1
1
  export * from "./KeyringClient.cjs";
2
2
  export * from "./KeyringSnapRpcClient.cjs";
3
+ export * from "./KeyringPublicClient.cjs";
3
4
  //# sourceMappingURL=index.d.cts.map
@@ -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
@@ -1,3 +1,4 @@
1
1
  export * from "./KeyringClient.mjs";
2
2
  export * from "./KeyringSnapRpcClient.mjs";
3
+ export * from "./KeyringPublicClient.mjs";
3
4
  //# sourceMappingURL=index.d.mts.map
@@ -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
@@ -1,3 +1,4 @@
1
1
  export * from "./KeyringClient.mjs";
2
2
  export * from "./KeyringSnapRpcClient.mjs";
3
+ export * from "./KeyringPublicClient.mjs";
3
4
  //# sourceMappingURL=index.mjs.map
@@ -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.1.0-1e1233a",
3
+ "version": "4.1.0-2352190",
4
4
  "description": "MetaMask Keyring Snap clients",
5
5
  "keywords": [
6
6
  "metamask",
@@ -45,7 +45,7 @@
45
45
  "test:watch": "jest --watch"
46
46
  },
47
47
  "dependencies": {
48
- "@metamask/keyring-api": "17.6.0",
48
+ "@metamask/keyring-api": "17.5.0",
49
49
  "@metamask/keyring-utils": "3.0.0",
50
50
  "@metamask/superstruct": "^3.1.0",
51
51
  "@types/uuid": "^9.0.8",