@metamask-previews/keyring-snap-client 8.0.0-45ee2b8 → 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.
@@ -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 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 BatchRequest,\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: BatchRequest[]): Promise<BatchResponse> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.Batch,\n params: { requests },\n }),\n BatchResponseStruct,\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"]}
@@ -1,4 +1,4 @@
1
- import type { KeyringAccount, KeyringRequest, KeyringAccountData, KeyringResponse, Balance, TransactionsPage, Pagination, ResolvedAccountAddress, CaipChainId, CaipAssetType, CaipAssetTypeOrId, EntropySourceId, DiscoveredAccount, KeyringRpc, BatchRequest, BatchResponse } from "@metamask/keyring-api";
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 = {
@@ -36,6 +36,6 @@ export declare class KeyringClient implements KeyringRpc {
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: BatchRequest[]): Promise<BatchResponse>;
39
+ batch(requests: BatchRequestRequest[]): Promise<BatchResponse>;
40
40
  }
41
41
  //# sourceMappingURL=KeyringClient.d.cts.map
@@ -1 +1 @@
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,YAAY,EACZ,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,YAAY,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CAS9D"}
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"}
@@ -1,4 +1,4 @@
1
- import type { KeyringAccount, KeyringRequest, KeyringAccountData, KeyringResponse, Balance, TransactionsPage, Pagination, ResolvedAccountAddress, CaipChainId, CaipAssetType, CaipAssetTypeOrId, EntropySourceId, DiscoveredAccount, KeyringRpc, BatchRequest, BatchResponse } from "@metamask/keyring-api";
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 = {
@@ -36,6 +36,6 @@ export declare class KeyringClient implements KeyringRpc {
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: BatchRequest[]): Promise<BatchResponse>;
39
+ batch(requests: BatchRequestRequest[]): Promise<BatchResponse>;
40
40
  }
41
41
  //# sourceMappingURL=KeyringClient.d.mts.map
@@ -1 +1 @@
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,YAAY,EACZ,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,YAAY,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CAS9D"}
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"}
@@ -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 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 BatchRequest,\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: BatchRequest[]): Promise<BatchResponse> {\n return strictMask(\n await this.send({\n method: KeyringRpcMethod.Batch,\n params: { requests },\n }),\n BatchResponseStruct,\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":";;;;;;;;;;;;;;;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"]}
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,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"}
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,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"}
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":";;;;;;;;;;;;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"]}
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": "8.0.0-45ee2b8",
3
+ "version": "8.0.0-855692d",
4
4
  "description": "MetaMask Keyring Snap clients",
5
5
  "keywords": [
6
6
  "metamask",