@metamask/snaps-rpc-methods
Version:
MetaMask Snaps JSON-RPC method implementations
39 lines • 1.72 kB
text/typescript
import type { PermittedHandlerExport } from "@metamask/permission-controller";
import type { ProviderRequestParams, ProviderRequestResult } from "@metamask/snaps-sdk";
import { type InferMatching } from "@metamask/snaps-utils";
import { type Json } from "@metamask/utils";
type NetworkConfiguration = {
defaultRpcEndpointIndex: number;
rpcEndpoints: {
networkClientId: string;
}[];
};
export type ProviderRequestMethodHooks = {
hasPermission: (permissionName: string) => boolean;
getNetworkConfigurationByChainId: (chainId: string) => NetworkConfiguration | undefined;
getNetworkClientById: (id: string) => {
provider: {
request: (request: Json) => Promise<Json>;
};
};
};
export declare const providerRequestHandler: PermittedHandlerExport<ProviderRequestMethodHooks, ProviderRequestParameters, ProviderRequestResult>;
declare const ProviderRequestParametersStruct: import("@metamask/superstruct").Struct<{
request: {
method: string;
params?: Json[] | Record<string, Json> | undefined;
};
chainId: `${string}:${string}`;
}, {
chainId: import("@metamask/superstruct").Struct<`${string}:${string}`, null>;
request: import("@metamask/superstruct").Struct<{
method: string;
params?: Json[] | Record<string, Json> | undefined;
}, {
method: import("@metamask/superstruct").Struct<string, null>;
params: import("@metamask/superstruct").Struct<Json[] | Record<string, Json> | undefined, null>;
}>;
}>;
export type ProviderRequestParameters = InferMatching<typeof ProviderRequestParametersStruct, ProviderRequestParams>;
export {};
//# sourceMappingURL=experimentalProviderRequest.d.cts.map