@metamask/keyring-api
Version:
MetaMask Keyring API
228 lines • 11.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RejectRequestResponseStruct = exports.RejectRequestRequestStruct = exports.ApproveRequestResponseStruct = exports.ApproveRequestRequestStruct = exports.SubmitRequestResponseStruct = exports.SubmitRequestRequestStruct = exports.GetRequestResponseStruct = exports.GetRequestRequestStruct = exports.ListRequestsResponseStruct = exports.ListRequestsRequestStruct = exports.ExportAccountResponseStruct = exports.ExportAccountRequestStruct = exports.DeleteAccountResponseStruct = exports.DeleteAccountRequestStruct = exports.UpdateAccountResponseStruct = exports.UpdateAccountRequestStruct = exports.FilterAccountChainsResponseStruct = exports.FilterAccountChainsStruct = exports.ResolveAccountAddressResponseStruct = exports.ResolveAccountAddressRequestStruct = exports.GetAccountBalancesResponseStruct = exports.GetAccountBalancesRequestStruct = exports.ListAccountAssetsResponseStruct = exports.ListAccountAssetsRequestStruct = exports.ListAccountTransactionsResponseStruct = exports.ListAccountTransactionsRequestStruct = exports.DiscoverAccountsResponseStruct = exports.DiscoverAccountsRequestStruct = exports.SetSelectedAccountsResponseStruct = exports.SetSelectedAccountsRequestStruct = exports.CreateAccountResponseStruct = exports.CreateAccountRequestStruct = exports.GetAccountResponseStruct = exports.GetAccountRequestStruct = exports.ListAccountsResponseStruct = exports.ListAccountsRequestStruct = exports.KeyringRpcMethod = void 0;
exports.isKeyringRpcMethod = isKeyringRpcMethod;
const keyring_utils_1 = require("@metamask/keyring-utils");
const superstruct_1 = require("@metamask/superstruct");
const utils_1 = require("@metamask/utils");
const api_1 = require("./api/index.cjs");
/**
* Keyring RPC methods used by the API.
*/
var KeyringRpcMethod;
(function (KeyringRpcMethod) {
KeyringRpcMethod["ListAccounts"] = "keyring_listAccounts";
KeyringRpcMethod["GetAccount"] = "keyring_getAccount";
KeyringRpcMethod["CreateAccount"] = "keyring_createAccount";
KeyringRpcMethod["DiscoverAccounts"] = "keyring_discoverAccounts";
KeyringRpcMethod["ListAccountAssets"] = "keyring_listAccountAssets";
KeyringRpcMethod["ListAccountTransactions"] = "keyring_listAccountTransactions";
KeyringRpcMethod["GetAccountBalances"] = "keyring_getAccountBalances";
KeyringRpcMethod["ResolveAccountAddress"] = "keyring_resolveAccountAddress";
KeyringRpcMethod["FilterAccountChains"] = "keyring_filterAccountChains";
KeyringRpcMethod["UpdateAccount"] = "keyring_updateAccount";
KeyringRpcMethod["DeleteAccount"] = "keyring_deleteAccount";
KeyringRpcMethod["ExportAccount"] = "keyring_exportAccount";
KeyringRpcMethod["ListRequests"] = "keyring_listRequests";
KeyringRpcMethod["GetRequest"] = "keyring_getRequest";
KeyringRpcMethod["SubmitRequest"] = "keyring_submitRequest";
KeyringRpcMethod["ApproveRequest"] = "keyring_approveRequest";
KeyringRpcMethod["RejectRequest"] = "keyring_rejectRequest";
KeyringRpcMethod["SetSelectedAccounts"] = "keyring_setSelectedAccounts";
})(KeyringRpcMethod || (exports.KeyringRpcMethod = KeyringRpcMethod = {}));
/**
* Check if a method is a keyring RPC method.
*
* @param method - Method to check.
* @returns Whether the method is a keyring RPC method.
*/
function isKeyringRpcMethod(method) {
return Object.values(KeyringRpcMethod).includes(method);
}
// ----------------------------------------------------------------------------
const CommonHeader = {
jsonrpc: (0, superstruct_1.literal)('2.0'),
id: (0, superstruct_1.union)([(0, superstruct_1.string)(), (0, superstruct_1.number)(), (0, superstruct_1.literal)(null)]),
};
// ----------------------------------------------------------------------------
// List accounts
exports.ListAccountsRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_listAccounts'),
});
exports.ListAccountsResponseStruct = (0, superstruct_1.array)(api_1.KeyringAccountStruct);
// ----------------------------------------------------------------------------
// Get account
exports.GetAccountRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_getAccount'),
params: (0, keyring_utils_1.object)({
id: keyring_utils_1.UuidStruct,
}),
});
exports.GetAccountResponseStruct = api_1.KeyringAccountStruct;
// ----------------------------------------------------------------------------
// Create account
exports.CreateAccountRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_createAccount'),
params: (0, keyring_utils_1.object)({
options: (0, superstruct_1.record)((0, superstruct_1.string)(), utils_1.JsonStruct),
}),
});
exports.CreateAccountResponseStruct = api_1.KeyringAccountStruct;
// ----------------------------------------------------------------------------
// Set selected accounts
exports.SetSelectedAccountsRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_setSelectedAccounts'),
params: (0, keyring_utils_1.object)({
accounts: (0, superstruct_1.array)((0, superstruct_1.string)()),
}),
});
exports.SetSelectedAccountsResponseStruct = (0, superstruct_1.literal)(null);
// ----------------------------------------------------------------------------
// Discover accounts
exports.DiscoverAccountsRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_discoverAccounts'),
params: (0, keyring_utils_1.object)({
scopes: (0, superstruct_1.array)(api_1.CaipChainIdStruct),
entropySource: (0, superstruct_1.string)(),
groupIndex: (0, superstruct_1.number)(),
}),
});
exports.DiscoverAccountsResponseStruct = (0, superstruct_1.array)(api_1.DiscoveredAccountStruct);
// ----------------------------------------------------------------------------
// List account transactions
exports.ListAccountTransactionsRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_listAccountTransactions'),
params: (0, keyring_utils_1.object)({
id: keyring_utils_1.UuidStruct,
pagination: api_1.PaginationStruct,
}),
});
exports.ListAccountTransactionsResponseStruct = api_1.TransactionsPageStruct;
// ----------------------------------------------------------------------------
// List account assets
exports.ListAccountAssetsRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_listAccountAssets'),
params: (0, keyring_utils_1.object)({
id: keyring_utils_1.UuidStruct,
}),
});
exports.ListAccountAssetsResponseStruct = (0, superstruct_1.array)(api_1.CaipAssetTypeOrIdStruct);
// ----------------------------------------------------------------------------
// Get account balances
exports.GetAccountBalancesRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)(`${KeyringRpcMethod.GetAccountBalances}`),
params: (0, keyring_utils_1.object)({
id: keyring_utils_1.UuidStruct,
assets: (0, superstruct_1.array)(api_1.CaipAssetTypeStruct),
}),
});
exports.GetAccountBalancesResponseStruct = (0, superstruct_1.record)(api_1.CaipAssetTypeStruct, api_1.BalanceStruct);
// ----------------------------------------------------------------------------
// Resolve account address
exports.ResolveAccountAddressRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_resolveAccountAddress'),
params: (0, keyring_utils_1.object)({
scope: api_1.CaipChainIdStruct,
request: keyring_utils_1.JsonRpcRequestStruct,
}),
});
exports.ResolveAccountAddressResponseStruct = (0, superstruct_1.nullable)((0, keyring_utils_1.object)({
address: api_1.CaipAccountIdStruct,
}));
// ----------------------------------------------------------------------------
// Filter account chains
exports.FilterAccountChainsStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_filterAccountChains'),
params: (0, keyring_utils_1.object)({
id: keyring_utils_1.UuidStruct,
chains: (0, superstruct_1.array)((0, superstruct_1.string)()),
}),
});
exports.FilterAccountChainsResponseStruct = (0, superstruct_1.array)((0, superstruct_1.string)());
// ----------------------------------------------------------------------------
// Update account
exports.UpdateAccountRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_updateAccount'),
params: (0, keyring_utils_1.object)({
account: api_1.KeyringAccountStruct,
}),
});
exports.UpdateAccountResponseStruct = (0, superstruct_1.literal)(null);
// ----------------------------------------------------------------------------
// Delete account
exports.DeleteAccountRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_deleteAccount'),
params: (0, keyring_utils_1.object)({
id: keyring_utils_1.UuidStruct,
}),
});
exports.DeleteAccountResponseStruct = (0, superstruct_1.literal)(null);
// ----------------------------------------------------------------------------
// Export account
exports.ExportAccountRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_exportAccount'),
params: (0, keyring_utils_1.object)({
id: keyring_utils_1.UuidStruct,
}),
});
exports.ExportAccountResponseStruct = api_1.KeyringAccountDataStruct;
// ----------------------------------------------------------------------------
// List requests
exports.ListRequestsRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_listRequests'),
});
exports.ListRequestsResponseStruct = (0, superstruct_1.array)(api_1.KeyringRequestStruct);
// ----------------------------------------------------------------------------
// Get request
exports.GetRequestRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_getRequest'),
params: (0, keyring_utils_1.object)({
id: keyring_utils_1.UuidStruct,
}),
});
exports.GetRequestResponseStruct = api_1.KeyringRequestStruct;
// ----------------------------------------------------------------------------
// Submit request
exports.SubmitRequestRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_submitRequest'),
params: api_1.KeyringRequestStruct,
});
exports.SubmitRequestResponseStruct = api_1.KeyringResponseStruct;
// ----------------------------------------------------------------------------
// Approve request
exports.ApproveRequestRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_approveRequest'),
params: (0, keyring_utils_1.object)({
id: keyring_utils_1.UuidStruct,
data: (0, superstruct_1.record)((0, superstruct_1.string)(), utils_1.JsonStruct),
}),
});
exports.ApproveRequestResponseStruct = (0, superstruct_1.literal)(null);
// ----------------------------------------------------------------------------
// Reject request
exports.RejectRequestRequestStruct = (0, keyring_utils_1.object)({
...CommonHeader,
method: (0, superstruct_1.literal)('keyring_rejectRequest'),
params: (0, keyring_utils_1.object)({
id: keyring_utils_1.UuidStruct,
}),
});
exports.RejectRequestResponseStruct = (0, superstruct_1.literal)(null);
//# sourceMappingURL=rpc.cjs.map