@metamask-previews/keyring-snap-client 7.0.0-a621908 → 8.0.0-855692d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -1
- package/dist/KeyringClient.cjs +6 -0
- package/dist/KeyringClient.cjs.map +1 -1
- package/dist/KeyringClient.d.cts +3 -2
- package/dist/KeyringClient.d.cts.map +1 -1
- package/dist/KeyringClient.d.mts +3 -2
- package/dist/KeyringClient.d.mts.map +1 -1
- package/dist/KeyringClient.mjs +7 -1
- package/dist/KeyringClient.mjs.map +1 -1
- package/dist/KeyringPublicClient.cjs +4 -0
- package/dist/KeyringPublicClient.cjs.map +1 -1
- package/dist/KeyringPublicClient.d.cts +3 -2
- package/dist/KeyringPublicClient.d.cts.map +1 -1
- package/dist/KeyringPublicClient.d.mts +3 -2
- package/dist/KeyringPublicClient.d.mts.map +1 -1
- package/dist/KeyringPublicClient.mjs +4 -0
- package/dist/KeyringPublicClient.mjs.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [8.0.0]
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **BREAKING:** Bump `@metamask/keyring-api` from `^20.0.0` to `^21.0.0` ([#355](https://github.com/MetaMask/accounts/pull/355)), ([#356](https://github.com/MetaMask/accounts/pull/356))
|
|
15
|
+
|
|
10
16
|
## [7.0.0]
|
|
11
17
|
|
|
12
18
|
### Changed
|
|
@@ -114,7 +120,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
114
120
|
- This new version fixes a bug with CJS re-exports.
|
|
115
121
|
- Initial release ([#24](https://github.com/MetaMask/accounts/pull/24))
|
|
116
122
|
|
|
117
|
-
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@
|
|
123
|
+
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@8.0.0...HEAD
|
|
124
|
+
[8.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@7.0.0...@metamask/keyring-snap-client@8.0.0
|
|
118
125
|
[7.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@6.0.0...@metamask/keyring-snap-client@7.0.0
|
|
119
126
|
[6.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@5.0.0...@metamask/keyring-snap-client@6.0.0
|
|
120
127
|
[5.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-snap-client@4.1.0...@metamask/keyring-snap-client@5.0.0
|
package/dist/KeyringClient.cjs
CHANGED
|
@@ -140,6 +140,12 @@ class KeyringClient {
|
|
|
140
140
|
params: { id },
|
|
141
141
|
}), keyring_api_1.RejectRequestResponseStruct);
|
|
142
142
|
}
|
|
143
|
+
async batch(requests) {
|
|
144
|
+
return (0, keyring_utils_1.strictMask)(await this.send({
|
|
145
|
+
method: keyring_api_1.KeyringRpcMethod.Batch,
|
|
146
|
+
params: { requests },
|
|
147
|
+
}), keyring_api_1.BatchResponseStruct);
|
|
148
|
+
}
|
|
143
149
|
}
|
|
144
150
|
exports.KeyringClient = KeyringClient;
|
|
145
151
|
_KeyringClient_sender = new WeakMap();
|
|
@@ -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 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"]}
|
|
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 BatchResponseStruct,\n} from '@metamask/keyring-api';\nimport type {\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 KeyringRpc,\n BatchRequestRequest,\n BatchResponse,\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 KeyringRpc {\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 async batch(requests: BatchRequestRequest[]): Promise<BatchResponse> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.Batch,\n params: { requests },\n }),\n BatchResponseStruct,\n );\n }\n}\n"]}
|
package/dist/KeyringClient.d.cts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { KeyringAccount, KeyringRequest, KeyringAccountData, KeyringResponse, Balance, TransactionsPage, Pagination, ResolvedAccountAddress, CaipChainId, CaipAssetType, CaipAssetTypeOrId, EntropySourceId, DiscoveredAccount, KeyringRpc, BatchRequestRequest, BatchResponse } from "@metamask/keyring-api";
|
|
2
2
|
import type { JsonRpcRequest } from "@metamask/keyring-utils";
|
|
3
3
|
import type { Json } from "@metamask/utils";
|
|
4
4
|
export type Sender = {
|
|
5
5
|
send(request: JsonRpcRequest): Promise<Json>;
|
|
6
6
|
};
|
|
7
|
-
export declare class KeyringClient implements
|
|
7
|
+
export declare class KeyringClient implements KeyringRpc {
|
|
8
8
|
#private;
|
|
9
9
|
/**
|
|
10
10
|
* Create a new instance of `KeyringClient`.
|
|
@@ -36,5 +36,6 @@ export declare class KeyringClient implements Keyring {
|
|
|
36
36
|
submitRequest(request: KeyringRequest): Promise<KeyringResponse>;
|
|
37
37
|
approveRequest(id: string, data?: Record<string, Json>): Promise<void>;
|
|
38
38
|
rejectRequest(id: string): Promise<void>;
|
|
39
|
+
batch(requests: BatchRequestRequest[]): Promise<BatchResponse>;
|
|
39
40
|
}
|
|
40
41
|
//# sourceMappingURL=KeyringClient.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringClient.d.cts","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KeyringClient.d.cts","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,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,EACjB,UAAU,EACV,mBAAmB,EACnB,aAAa,EACd,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,UAAU;;IAG9C;;;;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;IAUxC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CASrE"}
|
package/dist/KeyringClient.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { KeyringAccount, KeyringRequest, KeyringAccountData, KeyringResponse, Balance, TransactionsPage, Pagination, ResolvedAccountAddress, CaipChainId, CaipAssetType, CaipAssetTypeOrId, EntropySourceId, DiscoveredAccount, KeyringRpc, BatchRequestRequest, BatchResponse } from "@metamask/keyring-api";
|
|
2
2
|
import type { JsonRpcRequest } from "@metamask/keyring-utils";
|
|
3
3
|
import type { Json } from "@metamask/utils";
|
|
4
4
|
export type Sender = {
|
|
5
5
|
send(request: JsonRpcRequest): Promise<Json>;
|
|
6
6
|
};
|
|
7
|
-
export declare class KeyringClient implements
|
|
7
|
+
export declare class KeyringClient implements KeyringRpc {
|
|
8
8
|
#private;
|
|
9
9
|
/**
|
|
10
10
|
* Create a new instance of `KeyringClient`.
|
|
@@ -36,5 +36,6 @@ export declare class KeyringClient implements Keyring {
|
|
|
36
36
|
submitRequest(request: KeyringRequest): Promise<KeyringResponse>;
|
|
37
37
|
approveRequest(id: string, data?: Record<string, Json>): Promise<void>;
|
|
38
38
|
rejectRequest(id: string): Promise<void>;
|
|
39
|
+
batch(requests: BatchRequestRequest[]): Promise<BatchResponse>;
|
|
39
40
|
}
|
|
40
41
|
//# sourceMappingURL=KeyringClient.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringClient.d.mts","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KeyringClient.d.mts","sourceRoot":"","sources":["../src/KeyringClient.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,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,EACjB,UAAU,EACV,mBAAmB,EACnB,aAAa,EACd,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,UAAU;;IAG9C;;;;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;IAUxC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CASrE"}
|
package/dist/KeyringClient.mjs
CHANGED
|
@@ -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 _KeyringClient_sender;
|
|
13
|
-
import { ApproveRequestResponseStruct, CreateAccountResponseStruct, DeleteAccountResponseStruct, ExportAccountResponseStruct, FilterAccountChainsResponseStruct, GetAccountBalancesResponseStruct, GetAccountResponseStruct, GetRequestResponseStruct, ListAccountsResponseStruct, ListAccountTransactionsResponseStruct, ListAccountAssetsResponseStruct, ListRequestsResponseStruct, RejectRequestResponseStruct, SubmitRequestResponseStruct, UpdateAccountResponseStruct, KeyringRpcMethod, ResolveAccountAddressResponseStruct, DiscoverAccountsResponseStruct } from "@metamask/keyring-api";
|
|
13
|
+
import { ApproveRequestResponseStruct, CreateAccountResponseStruct, DeleteAccountResponseStruct, ExportAccountResponseStruct, FilterAccountChainsResponseStruct, GetAccountBalancesResponseStruct, GetAccountResponseStruct, GetRequestResponseStruct, ListAccountsResponseStruct, ListAccountTransactionsResponseStruct, ListAccountAssetsResponseStruct, ListRequestsResponseStruct, RejectRequestResponseStruct, SubmitRequestResponseStruct, UpdateAccountResponseStruct, KeyringRpcMethod, ResolveAccountAddressResponseStruct, DiscoverAccountsResponseStruct, BatchResponseStruct } from "@metamask/keyring-api";
|
|
14
14
|
import { strictMask } from "@metamask/keyring-utils";
|
|
15
15
|
import { assert } from "@metamask/superstruct";
|
|
16
16
|
import { v4 as uuid } from "uuid";
|
|
@@ -137,6 +137,12 @@ export class KeyringClient {
|
|
|
137
137
|
params: { id },
|
|
138
138
|
}), RejectRequestResponseStruct);
|
|
139
139
|
}
|
|
140
|
+
async batch(requests) {
|
|
141
|
+
return strictMask(await this.send({
|
|
142
|
+
method: KeyringRpcMethod.Batch,
|
|
143
|
+
params: { requests },
|
|
144
|
+
}), BatchResponseStruct);
|
|
145
|
+
}
|
|
140
146
|
}
|
|
141
147
|
_KeyringClient_sender = new WeakMap();
|
|
142
148
|
//# 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 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"]}
|
|
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 BatchResponseStruct,\n} from '@metamask/keyring-api';\nimport type {\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 KeyringRpc,\n BatchRequestRequest,\n BatchResponse,\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 KeyringRpc {\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 async batch(requests: BatchRequestRequest[]): Promise<BatchResponse> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.Batch,\n params: { requests },\n }),\n BatchResponseStruct,\n );\n }\n}\n"]}
|
|
@@ -30,6 +30,7 @@ exports.KeyringPublicRpcMethod = [
|
|
|
30
30
|
keyring_api_1.KeyringRpcMethod.ApproveRequest,
|
|
31
31
|
keyring_api_1.KeyringRpcMethod.RejectRequest,
|
|
32
32
|
keyring_api_1.KeyringRpcMethod.ListRequests,
|
|
33
|
+
keyring_api_1.KeyringRpcMethod.Batch,
|
|
33
34
|
];
|
|
34
35
|
/**
|
|
35
36
|
* A client that can be used by companion dapp. Only some keyring methods are
|
|
@@ -78,6 +79,9 @@ class KeyringPublicClient {
|
|
|
78
79
|
async exportAccount(id) {
|
|
79
80
|
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").exportAccount(id);
|
|
80
81
|
}
|
|
82
|
+
async batch(requests) {
|
|
83
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").batch(requests);
|
|
84
|
+
}
|
|
81
85
|
}
|
|
82
86
|
exports.KeyringPublicClient = KeyringPublicClient;
|
|
83
87
|
_KeyringPublicClient_client = new WeakMap();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringPublicClient.cjs","sourceRoot":"","sources":["../src/KeyringPublicClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"KeyringPublicClient.cjs","sourceRoot":"","sources":["../src/KeyringPublicClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAOA,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;IAC7B,8BAAgB,CAAC,KAAK;CACd,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;IAED,KAAK,CAAC,KAAK,CAAC,QAA+B;QACzC,OAAO,uBAAA,IAAI,mCAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF;AA7DD,kDA6DC","sourcesContent":["import type {\n BatchRequestRequest,\n BatchResponse,\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 KeyringRpcMethod.Batch,\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 async batch(requests: BatchRequestRequest[]): Promise<BatchResponse> {\n return this.#client.batch(requests);\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { KeyringAccount, KeyringAccountData, KeyringRequest } from "@metamask/keyring-api";
|
|
1
|
+
import type { BatchRequestRequest, BatchResponse, KeyringAccount, KeyringAccountData, KeyringRequest } from "@metamask/keyring-api";
|
|
2
2
|
import { KeyringRpcMethod } from "@metamask/keyring-api";
|
|
3
3
|
import type { Json } from "@metamask/utils";
|
|
4
4
|
import type { Sender } from "./KeyringClient.cjs";
|
|
@@ -14,7 +14,7 @@ type KeyringRpcMethodToMethodName<RpcMethod extends string> = RpcMethod extends
|
|
|
14
14
|
/**
|
|
15
15
|
* Public methods list.
|
|
16
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];
|
|
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, KeyringRpcMethod.Batch];
|
|
18
18
|
/**
|
|
19
19
|
* Union of all public methods.
|
|
20
20
|
*/
|
|
@@ -42,6 +42,7 @@ export declare class KeyringPublicClient implements Pick<KeyringClient, KeyringP
|
|
|
42
42
|
rejectRequest(id: string): Promise<void>;
|
|
43
43
|
filterAccountChains(id: string, chains: string[]): Promise<string[]>;
|
|
44
44
|
exportAccount(id: string): Promise<KeyringAccountData>;
|
|
45
|
+
batch(requests: BatchRequestRequest[]): Promise<BatchResponse>;
|
|
45
46
|
}
|
|
46
47
|
export {};
|
|
47
48
|
//# sourceMappingURL=KeyringPublicClient.d.cts.map
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"KeyringPublicClient.d.cts","sourceRoot":"","sources":["../src/KeyringPublicClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,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,kYAazB,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;IAItD,KAAK,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CAGrE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { KeyringAccount, KeyringAccountData, KeyringRequest } from "@metamask/keyring-api";
|
|
1
|
+
import type { BatchRequestRequest, BatchResponse, KeyringAccount, KeyringAccountData, KeyringRequest } from "@metamask/keyring-api";
|
|
2
2
|
import { KeyringRpcMethod } from "@metamask/keyring-api";
|
|
3
3
|
import type { Json } from "@metamask/utils";
|
|
4
4
|
import type { Sender } from "./KeyringClient.mjs";
|
|
@@ -14,7 +14,7 @@ type KeyringRpcMethodToMethodName<RpcMethod extends string> = RpcMethod extends
|
|
|
14
14
|
/**
|
|
15
15
|
* Public methods list.
|
|
16
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];
|
|
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, KeyringRpcMethod.Batch];
|
|
18
18
|
/**
|
|
19
19
|
* Union of all public methods.
|
|
20
20
|
*/
|
|
@@ -42,6 +42,7 @@ export declare class KeyringPublicClient implements Pick<KeyringClient, KeyringP
|
|
|
42
42
|
rejectRequest(id: string): Promise<void>;
|
|
43
43
|
filterAccountChains(id: string, chains: string[]): Promise<string[]>;
|
|
44
44
|
exportAccount(id: string): Promise<KeyringAccountData>;
|
|
45
|
+
batch(requests: BatchRequestRequest[]): Promise<BatchResponse>;
|
|
45
46
|
}
|
|
46
47
|
export {};
|
|
47
48
|
//# sourceMappingURL=KeyringPublicClient.d.mts.map
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"KeyringPublicClient.d.mts","sourceRoot":"","sources":["../src/KeyringPublicClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,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,kYAazB,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;IAItD,KAAK,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CAGrE"}
|
|
@@ -27,6 +27,7 @@ export const KeyringPublicRpcMethod = [
|
|
|
27
27
|
KeyringRpcMethod.ApproveRequest,
|
|
28
28
|
KeyringRpcMethod.RejectRequest,
|
|
29
29
|
KeyringRpcMethod.ListRequests,
|
|
30
|
+
KeyringRpcMethod.Batch,
|
|
30
31
|
];
|
|
31
32
|
/**
|
|
32
33
|
* A client that can be used by companion dapp. Only some keyring methods are
|
|
@@ -75,6 +76,9 @@ export class KeyringPublicClient {
|
|
|
75
76
|
async exportAccount(id) {
|
|
76
77
|
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").exportAccount(id);
|
|
77
78
|
}
|
|
79
|
+
async batch(requests) {
|
|
80
|
+
return __classPrivateFieldGet(this, _KeyringPublicClient_client, "f").batch(requests);
|
|
81
|
+
}
|
|
78
82
|
}
|
|
79
83
|
_KeyringPublicClient_client = new WeakMap();
|
|
80
84
|
//# sourceMappingURL=KeyringPublicClient.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyringPublicClient.mjs","sourceRoot":"","sources":["../src/KeyringPublicClient.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"KeyringPublicClient.mjs","sourceRoot":"","sources":["../src/KeyringPublicClient.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,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;IAC7B,gBAAgB,CAAC,KAAK;CACd,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;IAED,KAAK,CAAC,KAAK,CAAC,QAA+B;QACzC,OAAO,uBAAA,IAAI,mCAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF","sourcesContent":["import type {\n BatchRequestRequest,\n BatchResponse,\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 KeyringRpcMethod.Batch,\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 async batch(requests: BatchRequestRequest[]): Promise<BatchResponse> {\n return this.#client.batch(requests);\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metamask-previews/keyring-snap-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0-855692d",
|
|
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": "
|
|
48
|
+
"@metamask/keyring-api": "21.0.0",
|
|
49
49
|
"@metamask/keyring-utils": "3.1.0",
|
|
50
50
|
"@metamask/superstruct": "^3.1.0",
|
|
51
51
|
"@types/uuid": "^9.0.8",
|