@metamask/snaps-simulation
Version:
A simulation framework for MetaMask Snaps, enabling headless testing of Snaps in a controlled environment
29 lines • 1.6 kB
text/typescript
import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine";
import { JsonRpcEngine } from "@metamask/json-rpc-engine";
import type { RestrictedMethodParameters } from "@metamask/permission-controller";
import type { Json } from "@metamask/utils";
import type { PermittedMiddlewareHooks, RestrictedMiddlewareHooks } from "../simulation.mjs";
import type { Store } from "../store/index.mjs";
export type CreateJsonRpcEngineOptions = {
store: Store;
restrictedHooks: RestrictedMiddlewareHooks;
permittedHooks: PermittedMiddlewareHooks;
permissionMiddleware: JsonRpcMiddleware<RestrictedMethodParameters, Json>;
endpoint?: string;
};
/**
* Create a JSON-RPC engine for use in a simulated environment. This engine
* should be used to handle all JSON-RPC requests. It is set up to handle
* requests that would normally be handled internally by the MetaMask client, as
* well as Snap-specific requests.
*
* @param options - The options to use when creating the engine.
* @param options.store - The Redux store to use.
* @param options.restrictedHooks - Any hooks used by the middleware handlers.
* @param options.permittedHooks - Any hooks used by the middleware handlers.
* @param options.permissionMiddleware - The permission middleware to use.
* @param options.endpoint - The JSON-RPC endpoint to use for Ethereum requests.
* @returns A JSON-RPC engine.
*/
export declare function createJsonRpcEngine({ store, restrictedHooks, permittedHooks, permissionMiddleware, endpoint, }: CreateJsonRpcEngineOptions): JsonRpcEngine;
//# sourceMappingURL=engine.d.mts.map