{"version":3,"file":"protocol.mjs","sourceRoot":"","sources":["../../../src/types/handlers/protocol.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n  CaipChainId,\n  Json,\n  JsonRpcParams,\n  JsonRpcRequest,\n} from '@metamask/utils';\n\n/**\n * The `onProtocolRequest` handler, which is called when a Snap receives a\n * protocol request.\n *\n * Note that using this handler requires the `endowment:protocol` permission.\n *\n * @param args - The request arguments.\n * @param args.origin - The origin of the request. This can be the ID of another\n * Snap, or the URL of a website.\n * @param args.scope - The scope of the request.\n * @param args.request - The protocol request sent to the Snap. This includes\n * the method name and parameters.\n * @returns The response to the protocol request. This must be a\n * JSON-serializable value. In order to return an error, throw a `SnapError`\n * instead.\n */\nexport type OnProtocolRequestHandler<\n  Params extends JsonRpcParams = JsonRpcParams,\n> = (args: {\n  origin: string;\n  scope: CaipChainId;\n  request: JsonRpcRequest<Params>;\n}) => Promise<Json>;\n"]}