@metamask-previews/keyring-api 23.3.0-e51c895 → 23.4.0-5951828
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 +20 -1
- package/dist/api/account-options.cjs +3 -3
- package/dist/api/account-options.cjs.map +1 -1
- package/dist/api/account-options.d.cts.map +1 -1
- package/dist/api/account-options.d.mts.map +1 -1
- package/dist/api/account-options.mjs +2 -2
- package/dist/api/account-options.mjs.map +1 -1
- package/dist/api/account.cjs +1 -1
- package/dist/api/account.cjs.map +1 -1
- package/dist/api/account.mjs +2 -2
- package/dist/api/account.mjs.map +1 -1
- package/dist/api/asset.cjs +3 -3
- package/dist/api/asset.cjs.map +1 -1
- package/dist/api/asset.d.cts.map +1 -1
- package/dist/api/asset.d.mts.map +1 -1
- package/dist/api/asset.mjs +2 -2
- package/dist/api/asset.mjs.map +1 -1
- package/dist/api/balance.cjs +1 -1
- package/dist/api/balance.cjs.map +1 -1
- package/dist/api/balance.mjs +2 -2
- package/dist/api/balance.mjs.map +1 -1
- package/dist/api/options.cjs +3 -2
- package/dist/api/options.cjs.map +1 -1
- package/dist/api/options.d.cts +1 -1
- package/dist/api/options.d.cts.map +1 -1
- package/dist/api/options.d.mts +1 -1
- package/dist/api/options.d.mts.map +1 -1
- package/dist/api/options.mjs +2 -1
- package/dist/api/options.mjs.map +1 -1
- package/dist/api/pagination.cjs +2 -3
- package/dist/api/pagination.cjs.map +1 -1
- package/dist/api/pagination.d.cts +1 -1
- package/dist/api/pagination.d.cts.map +1 -1
- package/dist/api/pagination.d.mts +1 -1
- package/dist/api/pagination.d.mts.map +1 -1
- package/dist/api/pagination.mjs +1 -2
- package/dist/api/pagination.mjs.map +1 -1
- package/dist/api/request.cjs +3 -3
- package/dist/api/request.cjs.map +1 -1
- package/dist/api/request.d.cts +1 -1
- package/dist/api/request.d.cts.map +1 -1
- package/dist/api/request.d.mts +1 -1
- package/dist/api/request.d.mts.map +1 -1
- package/dist/api/request.mjs +2 -2
- package/dist/api/request.mjs.map +1 -1
- package/dist/api/response.cjs +5 -6
- package/dist/api/response.cjs.map +1 -1
- package/dist/api/response.d.cts.map +1 -1
- package/dist/api/response.d.mts.map +1 -1
- package/dist/api/response.mjs +1 -2
- package/dist/api/response.mjs.map +1 -1
- package/dist/api/transaction.cjs +10 -10
- package/dist/api/transaction.cjs.map +1 -1
- package/dist/api/transaction.d.cts +11 -11
- package/dist/api/transaction.d.cts.map +1 -1
- package/dist/api/transaction.d.mts +11 -11
- package/dist/api/transaction.d.mts.map +1 -1
- package/dist/api/transaction.mjs +2 -2
- package/dist/api/transaction.mjs.map +1 -1
- package/dist/btc/types.cjs +5 -6
- package/dist/btc/types.cjs.map +1 -1
- package/dist/btc/types.d.cts.map +1 -1
- package/dist/btc/types.d.mts.map +1 -1
- package/dist/btc/types.mjs +1 -2
- package/dist/btc/types.mjs.map +1 -1
- package/dist/eth/erc4337/types.cjs +9 -8
- package/dist/eth/erc4337/types.cjs.map +1 -1
- package/dist/eth/erc4337/types.d.cts +4 -4
- package/dist/eth/erc4337/types.d.cts.map +1 -1
- package/dist/eth/erc4337/types.d.mts +4 -4
- package/dist/eth/erc4337/types.d.mts.map +1 -1
- package/dist/eth/erc4337/types.mjs +2 -1
- package/dist/eth/erc4337/types.mjs.map +1 -1
- package/dist/eth/rpc/params.cjs +4 -5
- package/dist/eth/rpc/params.cjs.map +1 -1
- package/dist/eth/rpc/params.d.cts.map +1 -1
- package/dist/eth/rpc/params.d.mts.map +1 -1
- package/dist/eth/rpc/params.mjs +1 -2
- package/dist/eth/rpc/params.mjs.map +1 -1
- package/dist/eth/types.cjs +4 -5
- package/dist/eth/types.cjs.map +1 -1
- package/dist/eth/types.d.cts +1 -1
- package/dist/eth/types.d.cts.map +1 -1
- package/dist/eth/types.d.mts +1 -1
- package/dist/eth/types.d.mts.map +1 -1
- package/dist/eth/types.mjs +2 -3
- package/dist/eth/types.mjs.map +1 -1
- package/dist/events.cjs +20 -20
- package/dist/events.cjs.map +1 -1
- package/dist/events.d.cts +4 -4
- package/dist/events.d.cts.map +1 -1
- package/dist/events.d.mts +4 -4
- package/dist/events.d.mts.map +1 -1
- package/dist/events.mjs +2 -2
- package/dist/events.mjs.map +1 -1
- package/dist/rpc.cjs +36 -36
- package/dist/rpc.cjs.map +1 -1
- package/dist/rpc.d.cts +78 -42
- package/dist/rpc.d.cts.map +1 -1
- package/dist/rpc.d.mts +78 -42
- package/dist/rpc.d.mts.map +1 -1
- package/dist/rpc.mjs +2 -2
- package/dist/rpc.mjs.map +1 -1
- package/dist/sol/types.cjs +1 -2
- package/dist/sol/types.cjs.map +1 -1
- package/dist/sol/types.d.cts.map +1 -1
- package/dist/sol/types.d.mts.map +1 -1
- package/dist/sol/types.mjs +1 -2
- package/dist/sol/types.mjs.map +1 -1
- package/dist/trx/types.cjs +1 -2
- package/dist/trx/types.cjs.map +1 -1
- package/dist/trx/types.d.cts.map +1 -1
- package/dist/trx/types.d.mts.map +1 -1
- package/dist/trx/types.mjs +1 -2
- package/dist/trx/types.mjs.map +1 -1
- package/dist/v2/api/index.cjs +1 -0
- package/dist/v2/api/index.cjs.map +1 -1
- package/dist/v2/api/index.d.cts +1 -0
- package/dist/v2/api/index.d.cts.map +1 -1
- package/dist/v2/api/index.d.mts +1 -0
- package/dist/v2/api/index.d.mts.map +1 -1
- package/dist/v2/api/index.mjs +1 -0
- package/dist/v2/api/index.mjs.map +1 -1
- package/dist/v2/api/keyring-capabilities.cjs +37 -0
- package/dist/v2/api/keyring-capabilities.cjs.map +1 -1
- package/dist/v2/api/keyring-capabilities.d.cts +57 -0
- package/dist/v2/api/keyring-capabilities.d.cts.map +1 -1
- package/dist/v2/api/keyring-capabilities.d.mts +57 -0
- package/dist/v2/api/keyring-capabilities.d.mts.map +1 -1
- package/dist/v2/api/keyring-capabilities.mjs +37 -0
- package/dist/v2/api/keyring-capabilities.mjs.map +1 -1
- package/dist/v2/api/keyring-rpc.cjs +10 -10
- package/dist/v2/api/keyring-rpc.cjs.map +1 -1
- package/dist/v2/api/keyring-rpc.d.cts +2 -2
- package/dist/v2/api/keyring-rpc.d.cts.map +1 -1
- package/dist/v2/api/keyring-rpc.d.mts +2 -2
- package/dist/v2/api/keyring-rpc.d.mts.map +1 -1
- package/dist/v2/api/keyring-rpc.mjs +2 -2
- package/dist/v2/api/keyring-rpc.mjs.map +1 -1
- package/dist/v2/api/keyring-snap-rpc.cjs +92 -0
- package/dist/v2/api/keyring-snap-rpc.cjs.map +1 -0
- package/dist/v2/api/keyring-snap-rpc.d.cts +545 -0
- package/dist/v2/api/keyring-snap-rpc.d.cts.map +1 -0
- package/dist/v2/api/keyring-snap-rpc.d.mts +545 -0
- package/dist/v2/api/keyring-snap-rpc.d.mts.map +1 -0
- package/dist/v2/api/keyring-snap-rpc.mjs +88 -0
- package/dist/v2/api/keyring-snap-rpc.mjs.map +1 -0
- package/dist/xlm/types.cjs +1 -2
- package/dist/xlm/types.cjs.map +1 -1
- package/dist/xlm/types.d.cts.map +1 -1
- package/dist/xlm/types.d.mts.map +1 -1
- package/dist/xlm/types.mjs +1 -2
- package/dist/xlm/types.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyring-rpc.mjs","sourceRoot":"","sources":["../../../src/v2/api/keyring-rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"keyring-rpc.mjs","sourceRoot":"","sources":["../../../src/v2/api/keyring-rpc.ts"],"names":[],"mappings":"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","sourcesContent":["import { UuidStruct } from '@metamask/keyring-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n array,\n exactOptional,\n literal,\n number,\n object,\n string,\n union,\n} from '@metamask/superstruct';\nimport { JsonStruct } from '@metamask/utils';\n\nimport { KeyringAccountStruct } from '../../api/account';\nimport { KeyringRequestStruct } from '../../api/request';\nimport { CreateAccountOptionsStruct } from './create-account';\nimport {\n ExportAccountOptionsStruct,\n PrivateKeyExportedAccountStruct,\n} from './export-account';\nimport type { Keyring } from './keyring';\n\n/**\n * Keyring interface for keyring methods that can be invoked through\n * RPC calls.\n */\nexport type KeyringRpc = {\n getAccount: Keyring['getAccount'];\n getAccounts: Keyring['getAccounts'];\n createAccounts: Keyring['createAccounts'];\n deleteAccount: Keyring['deleteAccount'];\n submitRequest: Keyring['submitRequest'];\n exportAccount?: Keyring['exportAccount'];\n};\n\n/**\n * Keyring RPC methods used by the API.\n */\nexport const KeyringRpcMethod = {\n GetAccounts: 'keyring_getAccounts',\n CreateAccounts: 'keyring_createAccounts',\n // Inherited from v1 (but method signatures may differ...):\n // NOTE: We use literals here to avoid circular dependencies.\n GetAccount: 'keyring_getAccount',\n DeleteAccount: 'keyring_deleteAccount',\n ExportAccount: 'keyring_exportAccount',\n SubmitRequest: 'keyring_submitRequest',\n} as const;\n\n/**\n * Keyring RPC methods used by the API.\n */\nexport type KeyringRpcMethod =\n (typeof KeyringRpcMethod)[keyof typeof KeyringRpcMethod];\n\n/**\n * Check if a method is a keyring RPC method (v2).\n *\n * @param method - Method to check.\n * @returns Whether the method is a keyring RPC method (v2).\n */\nexport function isKeyringRpcMethod(method: string): method is KeyringRpcMethod {\n return Object.values(KeyringRpcMethod).includes(method as KeyringRpcMethod);\n}\n\n// ----------------------------------------------------------------------------\n\nconst CommonHeader = {\n jsonrpc: literal('2.0'),\n id: union([string(), number(), literal(null)]),\n};\n\n// ----------------------------------------------------------------------------\n// Get accounts\n\nexport const GetAccountsRequestStruct = object({\n ...CommonHeader,\n method: literal(`${KeyringRpcMethod.GetAccounts}`),\n});\n\nexport type GetAccountsRequest = Infer<typeof GetAccountsRequestStruct>;\n\nexport const GetAccountsResponseStruct = array(KeyringAccountStruct);\n\nexport type GetAccountsResponse = Infer<typeof GetAccountsResponseStruct>;\n\n// ----------------------------------------------------------------------------\n// Get account\n\nexport const GetAccountRequestStruct = object({\n ...CommonHeader,\n method: literal(`${KeyringRpcMethod.GetAccount}`),\n params: object({\n id: UuidStruct,\n }),\n});\n\nexport type GetAccountRequest = Infer<typeof GetAccountRequestStruct>;\n\nexport const GetAccountResponseStruct = KeyringAccountStruct;\n\nexport type GetAccountResponse = Infer<typeof GetAccountResponseStruct>;\n\n// ----------------------------------------------------------------------------\n// Create accounts\n\nexport const CreateAccountsRequestStruct = object({\n ...CommonHeader,\n method: literal(`${KeyringRpcMethod.CreateAccounts}`),\n params: CreateAccountOptionsStruct,\n});\n\nexport type CreateAccountsRequest = Infer<typeof CreateAccountsRequestStruct>;\n\nexport const CreateAccountsResponseStruct = array(KeyringAccountStruct);\n\nexport type CreateAccountsResponse = Infer<typeof CreateAccountsResponseStruct>;\n\n// ----------------------------------------------------------------------------\n// Delete account\n\nexport const DeleteAccountRequestStruct = object({\n ...CommonHeader,\n method: literal(`${KeyringRpcMethod.DeleteAccount}`),\n params: object({\n id: UuidStruct,\n }),\n});\n\nexport type DeleteAccountRequest = Infer<typeof DeleteAccountRequestStruct>;\n\nexport const DeleteAccountResponseStruct = literal(null);\n\nexport type DeleteAccountResponse = Infer<typeof DeleteAccountResponseStruct>;\n\n// ----------------------------------------------------------------------------\n// Export account\n\nexport const ExportAccountRequestStruct = object({\n ...CommonHeader,\n method: literal(`${KeyringRpcMethod.ExportAccount}`),\n params: object({\n id: UuidStruct,\n options: exactOptional(ExportAccountOptionsStruct),\n }),\n});\n\nexport type ExportAccountRequest = Infer<typeof ExportAccountRequestStruct>;\n\nexport const ExportAccountResponseStruct = PrivateKeyExportedAccountStruct;\n\nexport type ExportAccountResponse = Infer<typeof ExportAccountResponseStruct>;\n\n// ----------------------------------------------------------------------------\n// Submit request\n\nexport const SubmitRequestRequestStruct = object({\n ...CommonHeader,\n method: literal(`${KeyringRpcMethod.SubmitRequest}`),\n params: KeyringRequestStruct,\n});\n\nexport type SubmitRequestRequest = Infer<typeof SubmitRequestRequestStruct>;\n\nexport const SubmitRequestResponseStruct = JsonStruct;\n\nexport type SubmitRequestResponse = Infer<typeof SubmitRequestResponseStruct>;\n\n// ----------------------------------------------------------------------------\n\n/**\n * Keyring RPC requests.\n */\nexport type KeyringRpcRequests =\n | GetAccountsRequest\n | GetAccountRequest\n | CreateAccountsRequest\n | DeleteAccountRequest\n | ExportAccountRequest\n | SubmitRequestRequest;\n\n/**\n * Extract the proper request type for a given `KeyringRpcMethod`.\n */\nexport type KeyringRpcRequest<RpcMethod extends KeyringRpcMethod> = Extract<\n KeyringRpcRequests,\n { method: `${RpcMethod}` }\n>;\n"]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResolveAccountAddressResponseStruct = exports.ResolveAccountAddressRequestStruct = exports.GetAccountBalancesResponseStruct = exports.GetAccountBalancesRequestStruct = exports.GetAccountAssetsResponseStruct = exports.GetAccountAssetsRequestStruct = exports.GetAccountTransactionsResponseStruct = exports.GetAccountTransactionsRequestStruct = exports.SetSelectedAccountsResponseStruct = exports.SetSelectedAccountsRequestStruct = exports.isKeyringSnapRpcMethod = exports.KeyringSnapRpcMethod = void 0;
|
|
4
|
+
const keyring_utils_1 = require("@metamask/keyring-utils");
|
|
5
|
+
const superstruct_1 = require("@metamask/superstruct");
|
|
6
|
+
const address_1 = require("../../api/address.cjs");
|
|
7
|
+
const balance_1 = require("../../api/balance.cjs");
|
|
8
|
+
const caip_1 = require("../../api/caip.cjs");
|
|
9
|
+
const pagination_1 = require("../../api/pagination.cjs");
|
|
10
|
+
const transaction_1 = require("../../api/transaction.cjs");
|
|
11
|
+
const keyring_rpc_1 = require("./keyring-rpc.cjs");
|
|
12
|
+
/**
|
|
13
|
+
* All keyring RPC methods available to a Snap - includes the base
|
|
14
|
+
* {@link KeyringRpcMethod} set plus snap-specific extensions.
|
|
15
|
+
*/
|
|
16
|
+
exports.KeyringSnapRpcMethod = {
|
|
17
|
+
...keyring_rpc_1.KeyringRpcMethod,
|
|
18
|
+
SetSelectedAccounts: 'keyring_setSelectedAccounts',
|
|
19
|
+
GetAccountTransactions: 'keyring_getAccountTransactions',
|
|
20
|
+
GetAccountAssets: 'keyring_getAccountAssets',
|
|
21
|
+
GetAccountBalances: 'keyring_getAccountBalances',
|
|
22
|
+
ResolveAccountAddress: 'keyring_resolveAccountAddress',
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Check if a method is a Snap keyring RPC method (v2).
|
|
26
|
+
*
|
|
27
|
+
* @param method - Method to check.
|
|
28
|
+
* @returns Whether the method is a Snap keyring RPC method (v2).
|
|
29
|
+
*/
|
|
30
|
+
function isKeyringSnapRpcMethod(method) {
|
|
31
|
+
return Object.values(exports.KeyringSnapRpcMethod).includes(method);
|
|
32
|
+
}
|
|
33
|
+
exports.isKeyringSnapRpcMethod = isKeyringSnapRpcMethod;
|
|
34
|
+
// ----------------------------------------------------------------------------
|
|
35
|
+
const CommonHeader = {
|
|
36
|
+
jsonrpc: (0, superstruct_1.literal)('2.0'),
|
|
37
|
+
id: (0, superstruct_1.union)([(0, superstruct_1.string)(), (0, superstruct_1.number)(), (0, superstruct_1.literal)(null)]),
|
|
38
|
+
};
|
|
39
|
+
// ----------------------------------------------------------------------------
|
|
40
|
+
// Set selected accounts
|
|
41
|
+
exports.SetSelectedAccountsRequestStruct = (0, superstruct_1.object)({
|
|
42
|
+
...CommonHeader,
|
|
43
|
+
method: (0, superstruct_1.literal)(`${exports.KeyringSnapRpcMethod.SetSelectedAccounts}`),
|
|
44
|
+
params: (0, superstruct_1.object)({
|
|
45
|
+
accounts: (0, superstruct_1.array)((0, superstruct_1.string)()),
|
|
46
|
+
}),
|
|
47
|
+
});
|
|
48
|
+
exports.SetSelectedAccountsResponseStruct = (0, superstruct_1.literal)(null);
|
|
49
|
+
// ----------------------------------------------------------------------------
|
|
50
|
+
// Get account transactions
|
|
51
|
+
exports.GetAccountTransactionsRequestStruct = (0, superstruct_1.object)({
|
|
52
|
+
...CommonHeader,
|
|
53
|
+
method: (0, superstruct_1.literal)(`${exports.KeyringSnapRpcMethod.GetAccountTransactions}`),
|
|
54
|
+
params: (0, superstruct_1.object)({
|
|
55
|
+
id: keyring_utils_1.UuidStruct,
|
|
56
|
+
pagination: pagination_1.PaginationStruct,
|
|
57
|
+
}),
|
|
58
|
+
});
|
|
59
|
+
exports.GetAccountTransactionsResponseStruct = transaction_1.TransactionsPageStruct;
|
|
60
|
+
// ----------------------------------------------------------------------------
|
|
61
|
+
// Get account assets
|
|
62
|
+
exports.GetAccountAssetsRequestStruct = (0, superstruct_1.object)({
|
|
63
|
+
...CommonHeader,
|
|
64
|
+
method: (0, superstruct_1.literal)(`${exports.KeyringSnapRpcMethod.GetAccountAssets}`),
|
|
65
|
+
params: (0, superstruct_1.object)({
|
|
66
|
+
id: keyring_utils_1.UuidStruct,
|
|
67
|
+
}),
|
|
68
|
+
});
|
|
69
|
+
exports.GetAccountAssetsResponseStruct = (0, superstruct_1.array)(caip_1.CaipAssetTypeOrIdStruct);
|
|
70
|
+
// ----------------------------------------------------------------------------
|
|
71
|
+
// Get account balances
|
|
72
|
+
exports.GetAccountBalancesRequestStruct = (0, superstruct_1.object)({
|
|
73
|
+
...CommonHeader,
|
|
74
|
+
method: (0, superstruct_1.literal)(`${exports.KeyringSnapRpcMethod.GetAccountBalances}`),
|
|
75
|
+
params: (0, superstruct_1.object)({
|
|
76
|
+
id: keyring_utils_1.UuidStruct,
|
|
77
|
+
assets: (0, superstruct_1.array)(caip_1.CaipAssetTypeStruct),
|
|
78
|
+
}),
|
|
79
|
+
});
|
|
80
|
+
exports.GetAccountBalancesResponseStruct = (0, superstruct_1.record)(caip_1.CaipAssetTypeStruct, balance_1.BalanceStruct);
|
|
81
|
+
// ----------------------------------------------------------------------------
|
|
82
|
+
// Resolve account address
|
|
83
|
+
exports.ResolveAccountAddressRequestStruct = (0, superstruct_1.object)({
|
|
84
|
+
...CommonHeader,
|
|
85
|
+
method: (0, superstruct_1.literal)(`${exports.KeyringSnapRpcMethod.ResolveAccountAddress}`),
|
|
86
|
+
params: (0, superstruct_1.object)({
|
|
87
|
+
scope: caip_1.CaipChainIdStruct,
|
|
88
|
+
request: keyring_utils_1.JsonRpcRequestStruct,
|
|
89
|
+
}),
|
|
90
|
+
});
|
|
91
|
+
exports.ResolveAccountAddressResponseStruct = (0, superstruct_1.nullable)(address_1.ResolvedAccountAddressStruct);
|
|
92
|
+
//# sourceMappingURL=keyring-snap-rpc.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyring-snap-rpc.cjs","sourceRoot":"","sources":["../../../src/v2/api/keyring-snap-rpc.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AccountId, JsonRpcRequest } from '@metamask/keyring-utils';\nimport { UuidStruct, JsonRpcRequestStruct } from '@metamask/keyring-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n array,\n literal,\n nullable,\n number,\n object,\n record,\n string,\n union,\n} from '@metamask/superstruct';\n\nimport { ResolvedAccountAddressStruct } from '../../api/address';\nimport type { ResolvedAccountAddress } from '../../api/address';\nimport { BalanceStruct } from '../../api/balance';\nimport type { Balance } from '../../api/balance';\nimport {\n CaipAssetTypeOrIdStruct,\n CaipAssetTypeStruct,\n CaipChainIdStruct,\n} from '../../api/caip';\nimport type {\n CaipAssetType,\n CaipAssetTypeOrId,\n CaipChainId,\n} from '../../api/caip';\nimport { PaginationStruct } from '../../api/pagination';\nimport type { Pagination } from '../../api/pagination';\nimport { TransactionsPageStruct } from '../../api/transaction';\nimport type { TransactionsPage } from '../../api/transaction';\nimport { KeyringRpcMethod } from './keyring-rpc';\nimport type { KeyringRpc, KeyringRpcRequests } from './keyring-rpc';\n\n/**\n * All keyring RPC methods available to a Snap - includes the base\n * {@link KeyringRpcMethod} set plus snap-specific extensions.\n */\nexport const KeyringSnapRpcMethod = {\n ...KeyringRpcMethod,\n SetSelectedAccounts: 'keyring_setSelectedAccounts',\n GetAccountTransactions: 'keyring_getAccountTransactions',\n GetAccountAssets: 'keyring_getAccountAssets',\n GetAccountBalances: 'keyring_getAccountBalances',\n ResolveAccountAddress: 'keyring_resolveAccountAddress',\n} as const;\n\n/**\n * All keyring RPC methods available to a Snap.\n */\nexport type KeyringSnapRpcMethod =\n (typeof KeyringSnapRpcMethod)[keyof typeof KeyringSnapRpcMethod];\n\n/**\n * Check if a method is a Snap keyring RPC method (v2).\n *\n * @param method - Method to check.\n * @returns Whether the method is a Snap keyring RPC method (v2).\n */\nexport function isKeyringSnapRpcMethod(\n method: string,\n): method is KeyringSnapRpcMethod {\n return Object.values(KeyringSnapRpcMethod).includes(\n method as KeyringSnapRpcMethod,\n );\n}\n\n// ----------------------------------------------------------------------------\n\nconst CommonHeader = {\n jsonrpc: literal('2.0'),\n id: union([string(), number(), literal(null)]),\n};\n\n// ----------------------------------------------------------------------------\n// Set selected accounts\n\nexport const SetSelectedAccountsRequestStruct = object({\n ...CommonHeader,\n method: literal(`${KeyringSnapRpcMethod.SetSelectedAccounts}`),\n params: object({\n accounts: array(string()),\n }),\n});\n\nexport type SetSelectedAccountsRequest = Infer<\n typeof SetSelectedAccountsRequestStruct\n>;\n\nexport const SetSelectedAccountsResponseStruct = literal(null);\n\nexport type SetSelectedAccountsResponse = Infer<\n typeof SetSelectedAccountsResponseStruct\n>;\n\n// ----------------------------------------------------------------------------\n// Get account transactions\n\nexport const GetAccountTransactionsRequestStruct = object({\n ...CommonHeader,\n method: literal(`${KeyringSnapRpcMethod.GetAccountTransactions}`),\n params: object({\n id: UuidStruct,\n pagination: PaginationStruct,\n }),\n});\n\nexport type GetAccountTransactionsRequest = Infer<\n typeof GetAccountTransactionsRequestStruct\n>;\n\nexport const GetAccountTransactionsResponseStruct = TransactionsPageStruct;\n\nexport type GetAccountTransactionsResponse = Infer<\n typeof GetAccountTransactionsResponseStruct\n>;\n\n// ----------------------------------------------------------------------------\n// Get account assets\n\nexport const GetAccountAssetsRequestStruct = object({\n ...CommonHeader,\n method: literal(`${KeyringSnapRpcMethod.GetAccountAssets}`),\n params: object({\n id: UuidStruct,\n }),\n});\n\nexport type GetAccountAssetsRequest = Infer<\n typeof GetAccountAssetsRequestStruct\n>;\n\nexport const GetAccountAssetsResponseStruct = array(CaipAssetTypeOrIdStruct);\n\nexport type GetAccountAssetsResponse = Infer<\n typeof GetAccountAssetsResponseStruct\n>;\n\n// ----------------------------------------------------------------------------\n// Get account balances\n\nexport const GetAccountBalancesRequestStruct = object({\n ...CommonHeader,\n method: literal(`${KeyringSnapRpcMethod.GetAccountBalances}`),\n params: object({\n id: UuidStruct,\n assets: array(CaipAssetTypeStruct),\n }),\n});\n\nexport type GetAccountBalancesRequest = Infer<\n typeof GetAccountBalancesRequestStruct\n>;\n\nexport const GetAccountBalancesResponseStruct = record(\n CaipAssetTypeStruct,\n BalanceStruct,\n);\n\nexport type GetAccountBalancesResponse = Infer<\n typeof GetAccountBalancesResponseStruct\n>;\n\n// ----------------------------------------------------------------------------\n// Resolve account address\n\nexport const ResolveAccountAddressRequestStruct = object({\n ...CommonHeader,\n method: literal(`${KeyringSnapRpcMethod.ResolveAccountAddress}`),\n params: object({\n scope: CaipChainIdStruct,\n request: JsonRpcRequestStruct,\n }),\n});\n\nexport type ResolveAccountAddressRequest = Infer<\n typeof ResolveAccountAddressRequestStruct\n>;\n\nexport const ResolveAccountAddressResponseStruct = nullable(\n ResolvedAccountAddressStruct,\n);\n\nexport type ResolveAccountAddressResponse = Infer<\n typeof ResolveAccountAddressResponseStruct\n>;\n\n// ----------------------------------------------------------------------------\n\n/**\n * All keyring RPC requests available to a Snap - includes base\n * {@link KeyringRpcRequests} plus snap-specific request types.\n */\nexport type KeyringSnapRpcRequests =\n | KeyringRpcRequests\n | SetSelectedAccountsRequest\n | GetAccountTransactionsRequest\n | GetAccountAssetsRequest\n | GetAccountBalancesRequest\n | ResolveAccountAddressRequest;\n\n/**\n * Extract the proper request type for a given {@link KeyringSnapRpcMethod}.\n */\nexport type KeyringSnapRpcRequest<RpcMethod extends KeyringSnapRpcMethod> =\n Extract<KeyringSnapRpcRequests, { method: `${RpcMethod}` }>;\n\n// ----------------------------------------------------------------------------\n\n/**\n * Snap keyring RPC interface - extends the base {@link KeyringRpc} with\n * optional snap-specific methods that a Snap may expose.\n */\nexport type KeyringSnapRpc = KeyringRpc & {\n /**\n * Notify the Snap of the currently selected accounts.\n * Maps to `keyring_setSelectedAccounts`.\n */\n setSelectedAccounts?: (accounts: AccountId[]) => Promise<void>;\n\n /**\n * Get transactions for an account with pagination.\n * Maps to `keyring_getAccountTransactions`.\n */\n getAccountTransactions?: (\n id: AccountId,\n pagination: Pagination,\n ) => Promise<TransactionsPage>;\n\n /**\n * Get the asset types supported by an account.\n * Maps to `keyring_getAccountAssets`.\n */\n getAccountAssets?: (id: AccountId) => Promise<CaipAssetTypeOrId[]>;\n\n /**\n * Get balances for an account for the requested asset types.\n * Maps to `keyring_getAccountBalances`.\n */\n getAccountBalances?: (\n id: AccountId,\n assets: CaipAssetType[],\n ) => Promise<Record<CaipAssetType, Balance>>;\n\n /**\n * Resolve the account address to use for routing a signing request.\n * Maps to `keyring_resolveAccountAddress`.\n */\n resolveAccountAddress?: (\n scope: CaipChainId,\n request: JsonRpcRequest,\n ) => Promise<ResolvedAccountAddress | null>;\n};\n"]}
|