{"version":3,"file":"ccip-Con0QVQ2.cjs","sources":["../node_modules/viem/_esm/utils/abi/decodeFunctionData.js","../node_modules/viem/_esm/errors/ccip.js","../node_modules/viem/_esm/utils/abi/encodeErrorResult.js","../node_modules/viem/_esm/utils/abi/encodeFunctionResult.js","../node_modules/viem/_esm/utils/ens/localBatchGatewayRequest.js","../node_modules/viem/_esm/utils/ccip.js"],"sourcesContent":["import { AbiFunctionSignatureNotFoundError } from '../../errors/abi.js';\nimport { slice } from '../data/slice.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nexport function decodeFunctionData(parameters) {\n    const { abi, data } = parameters;\n    const signature = slice(data, 0, 4);\n    const description = abi.find((x) => x.type === 'function' &&\n        signature === toFunctionSelector(formatAbiItem(x)));\n    if (!description)\n        throw new AbiFunctionSignatureNotFoundError(signature, {\n            docsPath: '/docs/contract/decodeFunctionData',\n        });\n    return {\n        functionName: description.name,\n        args: ('inputs' in description &&\n            description.inputs &&\n            description.inputs.length > 0\n            ? decodeAbiParameters(description.inputs, slice(data, 4))\n            : undefined),\n    };\n}\n//# sourceMappingURL=decodeFunctionData.js.map","import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class OffchainLookupError extends BaseError {\n    constructor({ callbackSelector, cause, data, extraData, sender, urls, }) {\n        super(cause.shortMessage ||\n            'An error occurred while fetching for an offchain result.', {\n            cause,\n            metaMessages: [\n                ...(cause.metaMessages || []),\n                cause.metaMessages?.length ? '' : [],\n                'Offchain Gateway Call:',\n                urls && [\n                    '  Gateway URL(s):',\n                    ...urls.map((url) => `    ${getUrl(url)}`),\n                ],\n                `  Sender: ${sender}`,\n                `  Data: ${data}`,\n                `  Callback selector: ${callbackSelector}`,\n                `  Extra data: ${extraData}`,\n            ].flat(),\n            name: 'OffchainLookupError',\n        });\n    }\n}\nexport class OffchainLookupResponseMalformedError extends BaseError {\n    constructor({ result, url }) {\n        super('Offchain gateway response is malformed. Response data must be a hex value.', {\n            metaMessages: [\n                `Gateway URL: ${getUrl(url)}`,\n                `Response: ${stringify(result)}`,\n            ],\n            name: 'OffchainLookupResponseMalformedError',\n        });\n    }\n}\nexport class OffchainLookupSenderMismatchError extends BaseError {\n    constructor({ sender, to }) {\n        super('Reverted sender address does not match target contract address (`to`).', {\n            metaMessages: [\n                `Contract address: ${to}`,\n                `OffchainLookup sender address: ${sender}`,\n            ],\n            name: 'OffchainLookupSenderMismatchError',\n        });\n    }\n}\n//# sourceMappingURL=ccip.js.map","import { AbiErrorInputsNotFoundError, AbiErrorNotFoundError, } from '../../errors/abi.js';\nimport { concatHex } from '../data/concat.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nimport { getAbiItem } from './getAbiItem.js';\nconst docsPath = '/docs/contract/encodeErrorResult';\nexport function encodeErrorResult(parameters) {\n    const { abi, errorName, args } = parameters;\n    let abiItem = abi[0];\n    if (errorName) {\n        const item = getAbiItem({ abi, args, name: errorName });\n        if (!item)\n            throw new AbiErrorNotFoundError(errorName, { docsPath });\n        abiItem = item;\n    }\n    if (abiItem.type !== 'error')\n        throw new AbiErrorNotFoundError(undefined, { docsPath });\n    const definition = formatAbiItem(abiItem);\n    const signature = toFunctionSelector(definition);\n    let data = '0x';\n    if (args && args.length > 0) {\n        if (!abiItem.inputs)\n            throw new AbiErrorInputsNotFoundError(abiItem.name, { docsPath });\n        data = encodeAbiParameters(abiItem.inputs, args);\n    }\n    return concatHex([signature, data]);\n}\n//# sourceMappingURL=encodeErrorResult.js.map","import { AbiFunctionNotFoundError, AbiFunctionOutputsNotFoundError, InvalidArrayError, } from '../../errors/abi.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nimport { getAbiItem } from './getAbiItem.js';\nconst docsPath = '/docs/contract/encodeFunctionResult';\nexport function encodeFunctionResult(parameters) {\n    const { abi, functionName, result } = parameters;\n    let abiItem = abi[0];\n    if (functionName) {\n        const item = getAbiItem({ abi, name: functionName });\n        if (!item)\n            throw new AbiFunctionNotFoundError(functionName, { docsPath });\n        abiItem = item;\n    }\n    if (abiItem.type !== 'function')\n        throw new AbiFunctionNotFoundError(undefined, { docsPath });\n    if (!abiItem.outputs)\n        throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath });\n    const values = (() => {\n        if (abiItem.outputs.length === 0)\n            return [];\n        if (abiItem.outputs.length === 1)\n            return [result];\n        if (Array.isArray(result))\n            return result;\n        throw new InvalidArrayError(result);\n    })();\n    return encodeAbiParameters(abiItem.outputs, values);\n}\n//# sourceMappingURL=encodeFunctionResult.js.map","import { batchGatewayAbi } from '../../constants/abis.js';\nimport { solidityError } from '../../constants/solidity.js';\nimport { decodeFunctionData } from '../abi/decodeFunctionData.js';\nimport { encodeErrorResult } from '../abi/encodeErrorResult.js';\nimport { encodeFunctionResult } from '../abi/encodeFunctionResult.js';\nexport const localBatchGatewayUrl = 'x-batch-gateway:true';\nexport async function localBatchGatewayRequest(parameters) {\n    const { data, ccipRequest } = parameters;\n    const { args: [queries], } = decodeFunctionData({ abi: batchGatewayAbi, data });\n    const failures = [];\n    const responses = [];\n    await Promise.all(queries.map(async (query, i) => {\n        try {\n            responses[i] = query.urls.includes(localBatchGatewayUrl)\n                ? await localBatchGatewayRequest({ data: query.data, ccipRequest })\n                : await ccipRequest(query);\n            failures[i] = false;\n        }\n        catch (err) {\n            failures[i] = true;\n            responses[i] = encodeError(err);\n        }\n    }));\n    return encodeFunctionResult({\n        abi: batchGatewayAbi,\n        functionName: 'query',\n        result: [failures, responses],\n    });\n}\nfunction encodeError(error) {\n    if (error.name === 'HttpRequestError' && error.status)\n        return encodeErrorResult({\n            abi: batchGatewayAbi,\n            errorName: 'HttpError',\n            args: [error.status, error.shortMessage],\n        });\n    return encodeErrorResult({\n        abi: [solidityError],\n        errorName: 'Error',\n        args: ['shortMessage' in error ? error.shortMessage : error.message],\n    });\n}\n//# sourceMappingURL=localBatchGatewayRequest.js.map","import { call } from '../actions/public/call.js';\nimport { OffchainLookupError, OffchainLookupResponseMalformedError, OffchainLookupSenderMismatchError, } from '../errors/ccip.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { decodeErrorResult } from './abi/decodeErrorResult.js';\nimport { encodeAbiParameters } from './abi/encodeAbiParameters.js';\nimport { isAddressEqual } from './address/isAddressEqual.js';\nimport { concat } from './data/concat.js';\nimport { isHex } from './data/isHex.js';\nimport { localBatchGatewayRequest, localBatchGatewayUrl, } from './ens/localBatchGatewayRequest.js';\nimport { stringify } from './stringify.js';\nexport const offchainLookupSignature = '0x556f1830';\nexport const offchainLookupAbiItem = {\n    name: 'OffchainLookup',\n    type: 'error',\n    inputs: [\n        {\n            name: 'sender',\n            type: 'address',\n        },\n        {\n            name: 'urls',\n            type: 'string[]',\n        },\n        {\n            name: 'callData',\n            type: 'bytes',\n        },\n        {\n            name: 'callbackFunction',\n            type: 'bytes4',\n        },\n        {\n            name: 'extraData',\n            type: 'bytes',\n        },\n    ],\n};\nexport async function offchainLookup(client, { blockNumber, blockTag, data, to, }) {\n    const { args } = decodeErrorResult({\n        data,\n        abi: [offchainLookupAbiItem],\n    });\n    const [sender, urls, callData, callbackSelector, extraData] = args;\n    const { ccipRead } = client;\n    const ccipRequest_ = ccipRead && typeof ccipRead?.request === 'function'\n        ? ccipRead.request\n        : ccipRequest;\n    try {\n        if (!isAddressEqual(to, sender))\n            throw new OffchainLookupSenderMismatchError({ sender, to });\n        const result = urls.includes(localBatchGatewayUrl)\n            ? await localBatchGatewayRequest({\n                data: callData,\n                ccipRequest: ccipRequest_,\n            })\n            : await ccipRequest_({ data: callData, sender, urls });\n        const { data: data_ } = await call(client, {\n            blockNumber,\n            blockTag,\n            data: concat([\n                callbackSelector,\n                encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [result, extraData]),\n            ]),\n            to,\n        });\n        return data_;\n    }\n    catch (err) {\n        throw new OffchainLookupError({\n            callbackSelector,\n            cause: err,\n            data,\n            extraData,\n            sender,\n            urls,\n        });\n    }\n}\nexport async function ccipRequest({ data, sender, urls, }) {\n    let error = new Error('An unknown error occurred.');\n    for (let i = 0; i < urls.length; i++) {\n        const url = urls[i];\n        const method = url.includes('{data}') ? 'GET' : 'POST';\n        const body = method === 'POST' ? { data, sender } : undefined;\n        const headers = method === 'POST' ? { 'Content-Type': 'application/json' } : {};\n        try {\n            const response = await fetch(url.replace('{sender}', sender.toLowerCase()).replace('{data}', data), {\n                body: JSON.stringify(body),\n                headers,\n                method,\n            });\n            let result;\n            if (response.headers.get('Content-Type')?.startsWith('application/json')) {\n                result = (await response.json()).data;\n            }\n            else {\n                result = (await response.text());\n            }\n            if (!response.ok) {\n                error = new HttpRequestError({\n                    body,\n                    details: result?.error\n                        ? stringify(result.error)\n                        : response.statusText,\n                    headers: response.headers,\n                    status: response.status,\n                    url,\n                });\n                continue;\n            }\n            if (!isHex(result)) {\n                error = new OffchainLookupResponseMalformedError({\n                    result,\n                    url,\n                });\n                continue;\n            }\n            return result;\n        }\n        catch (err) {\n            error = new HttpRequestError({\n                body,\n                details: err.message,\n                url,\n            });\n        }\n    }\n    throw error;\n}\n//# sourceMappingURL=ccip.js.map"],"names":["decodeFunctionData","parameters","abi","data","signature","slice","description","x","toFunctionSelector","formatAbiItem","AbiFunctionSignatureNotFoundError","decodeAbiParameters","OffchainLookupError","BaseError","callbackSelector","cause","extraData","sender","urls","_a","url","getUrl","OffchainLookupResponseMalformedError","result","stringify","OffchainLookupSenderMismatchError","to","docsPath","encodeErrorResult","errorName","args","abiItem","item","getAbiItem","AbiErrorNotFoundError","definition","AbiErrorInputsNotFoundError","encodeAbiParameters","concatHex","encodeFunctionResult","functionName","AbiFunctionNotFoundError","AbiFunctionOutputsNotFoundError","values","InvalidArrayError","localBatchGatewayUrl","localBatchGatewayRequest","ccipRequest","queries","batchGatewayAbi","failures","responses","query","err","encodeError","error","solidityError","offchainLookupSignature","offchainLookupAbiItem","offchainLookup","client","blockNumber","blockTag","decodeErrorResult","callData","ccipRead","ccipRequest_","isAddressEqual","data_","call","concat","i","method","body","headers","response","HttpRequestError","isHex"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}