@metamask/eip-5792-middleware
Version:
Implements the JSON-RPC methods for sending multiple calls from the user's wallet, and checking their status, as referenced in EIP-5792
30 lines • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.walletGetCapabilities = void 0;
const rpc_errors_1 = require("@metamask/rpc-errors");
const types_1 = require("../types.cjs");
const utils_1 = require("../utils.cjs");
/**
* The RPC method handler middleware for `wallet_getCapabilities`
*
* @param req - The JSON RPC request's end callback.
* @param res - The JSON RPC request's pending response object.
* @param hooks - The hooks object.
* @param hooks.getAccounts - Function that retrieves available accounts.
* @param hooks.getCapabilities - Function that retrieves the capabilities for atomic transactions on specified chains.
*/
async function walletGetCapabilities(req, res, { getAccounts, getCapabilities, }) {
if (!getCapabilities) {
throw rpc_errors_1.rpcErrors.methodNotSupported();
}
(0, utils_1.validateParams)(req.params, types_1.GetCapabilitiesStruct);
const address = req.params[0];
const chainIds = req.params[1];
await (0, utils_1.validateAndNormalizeKeyholder)(address, req, {
getAccounts,
});
const capabilities = await getCapabilities(address, chainIds, req);
res.result = capabilities;
}
exports.walletGetCapabilities = walletGetCapabilities;
//# sourceMappingURL=wallet_getCapabilities.cjs.map