@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
26 lines • 1.14 kB
JavaScript
import { rpcErrors } from "@metamask/rpc-errors";
import { GetCapabilitiesStruct } from "../types.mjs";
import { validateAndNormalizeKeyholder, validateParams } from "../utils.mjs";
/**
* 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.
*/
export async function walletGetCapabilities(req, res, { getAccounts, getCapabilities, }) {
if (!getCapabilities) {
throw rpcErrors.methodNotSupported();
}
validateParams(req.params, GetCapabilitiesStruct);
const address = req.params[0];
const chainIds = req.params[1];
await validateAndNormalizeKeyholder(address, req, {
getAccounts,
});
const capabilities = await getCapabilities(address, chainIds, req);
res.result = capabilities;
}
//# sourceMappingURL=wallet_getCapabilities.mjs.map