{"version":3,"file":"getCallError-CJA1GhgC.mjs","names":["formatAbiItem","formatAbiItem"],"sources":["../../../node_modules/.pnpm/abitype@1.2.3_typescript@6.0.2_zod@4.3.6/node_modules/abitype/dist/esm/regex.js","../../../node_modules/.pnpm/abitype@1.2.3_typescript@6.0.2_zod@4.3.6/node_modules/abitype/dist/esm/human-readable/formatAbiParameter.js","../../../node_modules/.pnpm/abitype@1.2.3_typescript@6.0.2_zod@4.3.6/node_modules/abitype/dist/esm/human-readable/formatAbiParameters.js","../../../node_modules/.pnpm/abitype@1.2.3_typescript@6.0.2_zod@4.3.6/node_modules/abitype/dist/esm/human-readable/formatAbiItem.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/hash/hashSignature.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/hash/normalizeSignature.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/hash/toSignature.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/hash/toSignatureHash.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/hash/toEventSelector.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/hash/toFunctionSelector.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/abi/getAbiItem.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/constants/solidity.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/encoding/fromBytes.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/abi/decodeAbiParameters.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/abi/decodeErrorResult.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/abi/formatAbiItemWithArgs.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/errors/stateOverride.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/errors/utils.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/errors/contract.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/errors/request.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/errors/rpc.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/errors/getNodeError.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/formatters/extract.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/formatters/formatter.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/formatters/transactionRequest.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/transaction/assertRequest.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/errors/getCallError.js"],"sourcesContent":["// TODO: This looks cool. Need to check the performance of `new RegExp` versus defined inline though.\n// https://twitter.com/GabrielVergnaud/status/1622906834343366657\nexport function execTyped(regex, string) {\n    const match = regex.exec(string);\n    return match?.groups;\n}\n// `bytes<M>`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\n// `(u)int<M>`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex = /^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\nexport const isTupleRegex = /^\\(.+?\\).*?$/;\n//# sourceMappingURL=regex.js.map","import { execTyped } from '../regex.js';\n// https://regexr.com/7f7rv\nconst tupleRegex = /^tuple(?<array>(\\[(\\d*)\\])*)$/;\n/**\n * Formats {@link AbiParameter} to human-readable ABI parameter.\n *\n * @param abiParameter - ABI parameter\n * @returns Human-readable ABI parameter\n *\n * @example\n * const result = formatAbiParameter({ type: 'address', name: 'from' })\n * //    ^? const result: 'address from'\n */\nexport function formatAbiParameter(abiParameter) {\n    let type = abiParameter.type;\n    if (tupleRegex.test(abiParameter.type) && 'components' in abiParameter) {\n        type = '(';\n        const length = abiParameter.components.length;\n        for (let i = 0; i < length; i++) {\n            const component = abiParameter.components[i];\n            type += formatAbiParameter(component);\n            if (i < length - 1)\n                type += ', ';\n        }\n        const result = execTyped(tupleRegex, abiParameter.type);\n        type += `)${result?.array || ''}`;\n        return formatAbiParameter({\n            ...abiParameter,\n            type,\n        });\n    }\n    // Add `indexed` to type if in `abiParameter`\n    if ('indexed' in abiParameter && abiParameter.indexed)\n        type = `${type} indexed`;\n    // Return human-readable ABI parameter\n    if (abiParameter.name)\n        return `${type} ${abiParameter.name}`;\n    return type;\n}\n//# sourceMappingURL=formatAbiParameter.js.map","import { formatAbiParameter, } from './formatAbiParameter.js';\n/**\n * Formats {@link AbiParameter}s to human-readable ABI parameters.\n *\n * @param abiParameters - ABI parameters\n * @returns Human-readable ABI parameters\n *\n * @example\n * const result = formatAbiParameters([\n *   //  ^? const result: 'address from, uint256 tokenId'\n *   { type: 'address', name: 'from' },\n *   { type: 'uint256', name: 'tokenId' },\n * ])\n */\nexport function formatAbiParameters(abiParameters) {\n    let params = '';\n    const length = abiParameters.length;\n    for (let i = 0; i < length; i++) {\n        const abiParameter = abiParameters[i];\n        params += formatAbiParameter(abiParameter);\n        if (i !== length - 1)\n            params += ', ';\n    }\n    return params;\n}\n//# sourceMappingURL=formatAbiParameters.js.map","import { formatAbiParameters, } from './formatAbiParameters.js';\n/**\n * Formats ABI item (e.g. error, event, function) into human-readable ABI item\n *\n * @param abiItem - ABI item\n * @returns Human-readable ABI item\n */\nexport function formatAbiItem(abiItem) {\n    if (abiItem.type === 'function')\n        return `function ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability && abiItem.stateMutability !== 'nonpayable'\n            ? ` ${abiItem.stateMutability}`\n            : ''}${abiItem.outputs?.length\n            ? ` returns (${formatAbiParameters(abiItem.outputs)})`\n            : ''}`;\n    if (abiItem.type === 'event')\n        return `event ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n    if (abiItem.type === 'error')\n        return `error ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n    if (abiItem.type === 'constructor')\n        return `constructor(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;\n    if (abiItem.type === 'fallback')\n        return `fallback() external${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;\n    return 'receive() external payable';\n}\n//# sourceMappingURL=formatAbiItem.js.map","import { toBytes } from '../encoding/toBytes.js';\nimport { keccak256 } from './keccak256.js';\nconst hash = (value) => keccak256(toBytes(value));\nexport function hashSignature(sig) {\n    return hash(sig);\n}\n//# sourceMappingURL=hashSignature.js.map","import { BaseError } from '../../errors/base.js';\nexport function normalizeSignature(signature) {\n    let active = true;\n    let current = '';\n    let level = 0;\n    let result = '';\n    let valid = false;\n    for (let i = 0; i < signature.length; i++) {\n        const char = signature[i];\n        // If the character is a separator, we want to reactivate.\n        if (['(', ')', ','].includes(char))\n            active = true;\n        // If the character is a \"level\" token, we want to increment/decrement.\n        if (char === '(')\n            level++;\n        if (char === ')')\n            level--;\n        // If we aren't active, we don't want to mutate the result.\n        if (!active)\n            continue;\n        // If level === 0, we are at the definition level.\n        if (level === 0) {\n            if (char === ' ' && ['event', 'function', ''].includes(result))\n                result = '';\n            else {\n                result += char;\n                // If we are at the end of the definition, we must be finished.\n                if (char === ')') {\n                    valid = true;\n                    break;\n                }\n            }\n            continue;\n        }\n        // Ignore spaces\n        if (char === ' ') {\n            // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n            if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n                current = '';\n                active = false;\n            }\n            continue;\n        }\n        result += char;\n        current += char;\n    }\n    if (!valid)\n        throw new BaseError('Unable to normalize signature.');\n    return result;\n}\n//# sourceMappingURL=normalizeSignature.js.map","import { formatAbiItem } from 'abitype';\nimport { normalizeSignature, } from './normalizeSignature.js';\n/**\n * Returns the signature for a given function or event definition.\n *\n * @example\n * const signature = toSignature('function ownerOf(uint256 tokenId)')\n * // 'ownerOf(uint256)'\n *\n * @example\n * const signature_3 = toSignature({\n *   name: 'ownerOf',\n *   type: 'function',\n *   inputs: [{ name: 'tokenId', type: 'uint256' }],\n *   outputs: [],\n *   stateMutability: 'view',\n * })\n * // 'ownerOf(uint256)'\n */\nexport const toSignature = (def) => {\n    const def_ = (() => {\n        if (typeof def === 'string')\n            return def;\n        return formatAbiItem(def);\n    })();\n    return normalizeSignature(def_);\n};\n//# sourceMappingURL=toSignature.js.map","import { hashSignature } from './hashSignature.js';\nimport { toSignature } from './toSignature.js';\n/**\n * Returns the hash (of the function/event signature) for a given event or function definition.\n */\nexport function toSignatureHash(fn) {\n    return hashSignature(toSignature(fn));\n}\n//# sourceMappingURL=toSignatureHash.js.map","import { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the event selector for a given event definition.\n *\n * @example\n * const selector = toEventSelector('Transfer(address indexed from, address indexed to, uint256 amount)')\n * // 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n */\nexport const toEventSelector = toSignatureHash;\n//# sourceMappingURL=toEventSelector.js.map","import { slice } from '../data/slice.js';\nimport { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the function selector for a given function definition.\n *\n * @example\n * const selector = toFunctionSelector('function ownerOf(uint256 tokenId)')\n * // 0x6352211e\n */\nexport const toFunctionSelector = (fn) => slice(toSignatureHash(fn), 0, 4);\n//# sourceMappingURL=toFunctionSelector.js.map","import { AbiItemAmbiguityError, } from '../../errors/abi.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { toEventSelector } from '../hash/toEventSelector.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nexport function getAbiItem(parameters) {\n    const { abi, args = [], name } = parameters;\n    const isSelector = isHex(name, { strict: false });\n    const abiItems = abi.filter((abiItem) => {\n        if (isSelector) {\n            if (abiItem.type === 'function')\n                return toFunctionSelector(abiItem) === name;\n            if (abiItem.type === 'event')\n                return toEventSelector(abiItem) === name;\n            return false;\n        }\n        return 'name' in abiItem && abiItem.name === name;\n    });\n    if (abiItems.length === 0)\n        return undefined;\n    if (abiItems.length === 1)\n        return abiItems[0];\n    let matchedAbiItem;\n    for (const abiItem of abiItems) {\n        if (!('inputs' in abiItem))\n            continue;\n        if (!args || args.length === 0) {\n            if (!abiItem.inputs || abiItem.inputs.length === 0)\n                return abiItem;\n            continue;\n        }\n        if (!abiItem.inputs)\n            continue;\n        if (abiItem.inputs.length === 0)\n            continue;\n        if (abiItem.inputs.length !== args.length)\n            continue;\n        const matched = args.every((arg, index) => {\n            const abiParameter = 'inputs' in abiItem && abiItem.inputs[index];\n            if (!abiParameter)\n                return false;\n            return isArgOfType(arg, abiParameter);\n        });\n        if (matched) {\n            // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).\n            if (matchedAbiItem &&\n                'inputs' in matchedAbiItem &&\n                matchedAbiItem.inputs) {\n                const ambiguousTypes = getAmbiguousTypes(abiItem.inputs, matchedAbiItem.inputs, args);\n                if (ambiguousTypes)\n                    throw new AbiItemAmbiguityError({\n                        abiItem,\n                        type: ambiguousTypes[0],\n                    }, {\n                        abiItem: matchedAbiItem,\n                        type: ambiguousTypes[1],\n                    });\n            }\n            matchedAbiItem = abiItem;\n        }\n    }\n    if (matchedAbiItem)\n        return matchedAbiItem;\n    return abiItems[0];\n}\n/** @internal */\nexport function isArgOfType(arg, abiParameter) {\n    const argType = typeof arg;\n    const abiParameterType = abiParameter.type;\n    switch (abiParameterType) {\n        case 'address':\n            return isAddress(arg, { strict: false });\n        case 'bool':\n            return argType === 'boolean';\n        case 'function':\n            return argType === 'string';\n        case 'string':\n            return argType === 'string';\n        default: {\n            if (abiParameterType === 'tuple' && 'components' in abiParameter)\n                return Object.values(abiParameter.components).every((component, index) => {\n                    return (argType === 'object' &&\n                        isArgOfType(Object.values(arg)[index], component));\n                });\n            // `(u)int<M>`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n            // https://regexr.com/6v8hp\n            if (/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(abiParameterType))\n                return argType === 'number' || argType === 'bigint';\n            // `bytes<M>`: binary type of `M` bytes, `0 < M <= 32`\n            // https://regexr.com/6va55\n            if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n                return argType === 'string' || arg instanceof Uint8Array;\n            // fixed-length (`<type>[M]`) and dynamic (`<type>[]`) arrays\n            // https://regexr.com/6va6i\n            if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n                return (Array.isArray(arg) &&\n                    arg.every((x) => isArgOfType(x, {\n                        ...abiParameter,\n                        // Pop off `[]` or `[M]` from end of type\n                        type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n                    })));\n            }\n            return false;\n        }\n    }\n}\n/** @internal */\nexport function getAmbiguousTypes(sourceParameters, targetParameters, args) {\n    for (const parameterIndex in sourceParameters) {\n        const sourceParameter = sourceParameters[parameterIndex];\n        const targetParameter = targetParameters[parameterIndex];\n        if (sourceParameter.type === 'tuple' &&\n            targetParameter.type === 'tuple' &&\n            'components' in sourceParameter &&\n            'components' in targetParameter)\n            return getAmbiguousTypes(sourceParameter.components, targetParameter.components, args[parameterIndex]);\n        const types = [sourceParameter.type, targetParameter.type];\n        const ambiguous = (() => {\n            if (types.includes('address') && types.includes('bytes20'))\n                return true;\n            if (types.includes('address') && types.includes('string'))\n                return isAddress(args[parameterIndex], { strict: false });\n            if (types.includes('address') && types.includes('bytes'))\n                return isAddress(args[parameterIndex], { strict: false });\n            return false;\n        })();\n        if (ambiguous)\n            return types;\n    }\n    return;\n}\n//# sourceMappingURL=getAbiItem.js.map","// https://docs.soliditylang.org/en/v0.8.16/control-structures.html#panic-via-assert-and-error-via-require\nexport const panicReasons = {\n    1: 'An `assert` condition failed.',\n    17: 'Arithmetic operation resulted in underflow or overflow.',\n    18: 'Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).',\n    33: 'Attempted to convert to an invalid type.',\n    34: 'Attempted to access a storage byte array that is incorrectly encoded.',\n    49: 'Performed `.pop()` on an empty array',\n    50: 'Array index is out of bounds.',\n    65: 'Allocated too much memory or created an array which is too large.',\n    81: 'Attempted to call a zero-initialized variable of internal function type.',\n};\nexport const solidityError = {\n    inputs: [\n        {\n            name: 'message',\n            type: 'string',\n        },\n    ],\n    name: 'Error',\n    type: 'error',\n};\nexport const solidityPanic = {\n    inputs: [\n        {\n            name: 'reason',\n            type: 'uint256',\n        },\n    ],\n    name: 'Panic',\n    type: 'error',\n};\n//# sourceMappingURL=solidity.js.map","import { InvalidBytesBooleanError } from '../../errors/encoding.js';\nimport { trim } from '../data/trim.js';\nimport { assertSize, hexToBigInt, hexToNumber, } from './fromHex.js';\nimport { bytesToHex } from './toHex.js';\n/**\n * Decodes a byte array into a UTF-8 string, hex value, number, bigint or boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes\n * - Example: https://viem.sh/docs/utilities/fromBytes#usage\n *\n * @param bytes Byte array to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromBytes } from 'viem'\n * const data = fromBytes(new Uint8Array([1, 164]), 'number')\n * // 420\n *\n * @example\n * import { fromBytes } from 'viem'\n * const data = fromBytes(\n *   new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\n *   'string'\n * )\n * // 'Hello world'\n */\nexport function fromBytes(bytes, toOrOpts) {\n    const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n    const to = opts.to;\n    if (to === 'number')\n        return bytesToNumber(bytes, opts);\n    if (to === 'bigint')\n        return bytesToBigInt(bytes, opts);\n    if (to === 'boolean')\n        return bytesToBool(bytes, opts);\n    if (to === 'string')\n        return bytesToString(bytes, opts);\n    return bytesToHex(bytes, opts);\n}\n/**\n * Decodes a byte array into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestobigint\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { bytesToBigInt } from 'viem'\n * const data = bytesToBigInt(new Uint8Array([1, 164]))\n * // 420n\n */\nexport function bytesToBigInt(bytes, opts = {}) {\n    if (typeof opts.size !== 'undefined')\n        assertSize(bytes, { size: opts.size });\n    const hex = bytesToHex(bytes, opts);\n    return hexToBigInt(hex, opts);\n}\n/**\n * Decodes a byte array into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestobool\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { bytesToBool } from 'viem'\n * const data = bytesToBool(new Uint8Array([1]))\n * // true\n */\nexport function bytesToBool(bytes_, opts = {}) {\n    let bytes = bytes_;\n    if (typeof opts.size !== 'undefined') {\n        assertSize(bytes, { size: opts.size });\n        bytes = trim(bytes);\n    }\n    if (bytes.length > 1 || bytes[0] > 1)\n        throw new InvalidBytesBooleanError(bytes);\n    return Boolean(bytes[0]);\n}\n/**\n * Decodes a byte array into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestonumber\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { bytesToNumber } from 'viem'\n * const data = bytesToNumber(new Uint8Array([1, 164]))\n * // 420\n */\nexport function bytesToNumber(bytes, opts = {}) {\n    if (typeof opts.size !== 'undefined')\n        assertSize(bytes, { size: opts.size });\n    const hex = bytesToHex(bytes, opts);\n    return hexToNumber(hex, opts);\n}\n/**\n * Decodes a byte array into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestostring\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { bytesToString } from 'viem'\n * const data = bytesToString(new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // 'Hello world'\n */\nexport function bytesToString(bytes_, opts = {}) {\n    let bytes = bytes_;\n    if (typeof opts.size !== 'undefined') {\n        assertSize(bytes, { size: opts.size });\n        bytes = trim(bytes, { dir: 'right' });\n    }\n    return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromBytes.js.map","import { AbiDecodingDataSizeTooSmallError, AbiDecodingZeroDataError, InvalidAbiDecodingTypeError, } from '../../errors/abi.js';\nimport { checksumAddress, } from '../address/getAddress.js';\nimport { createCursor, } from '../cursor.js';\nimport { size } from '../data/size.js';\nimport { sliceBytes } from '../data/slice.js';\nimport { trim } from '../data/trim.js';\nimport { bytesToBigInt, bytesToBool, bytesToNumber, bytesToString, } from '../encoding/fromBytes.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { getArrayComponents } from './encodeAbiParameters.js';\nexport function decodeAbiParameters(params, data) {\n    const bytes = typeof data === 'string' ? hexToBytes(data) : data;\n    const cursor = createCursor(bytes);\n    if (size(bytes) === 0 && params.length > 0)\n        throw new AbiDecodingZeroDataError();\n    if (size(data) && size(data) < 32)\n        throw new AbiDecodingDataSizeTooSmallError({\n            data: typeof data === 'string' ? data : bytesToHex(data),\n            params: params,\n            size: size(data),\n        });\n    let consumed = 0;\n    const values = [];\n    for (let i = 0; i < params.length; ++i) {\n        const param = params[i];\n        cursor.setPosition(consumed);\n        const [data, consumed_] = decodeParameter(cursor, param, {\n            staticPosition: 0,\n        });\n        consumed += consumed_;\n        values.push(data);\n    }\n    return values;\n}\nfunction decodeParameter(cursor, param, { staticPosition }) {\n    const arrayComponents = getArrayComponents(param.type);\n    if (arrayComponents) {\n        const [length, type] = arrayComponents;\n        return decodeArray(cursor, { ...param, type }, { length, staticPosition });\n    }\n    if (param.type === 'tuple')\n        return decodeTuple(cursor, param, { staticPosition });\n    if (param.type === 'address')\n        return decodeAddress(cursor);\n    if (param.type === 'bool')\n        return decodeBool(cursor);\n    if (param.type.startsWith('bytes'))\n        return decodeBytes(cursor, param, { staticPosition });\n    if (param.type.startsWith('uint') || param.type.startsWith('int'))\n        return decodeNumber(cursor, param);\n    if (param.type === 'string')\n        return decodeString(cursor, { staticPosition });\n    throw new InvalidAbiDecodingTypeError(param.type, {\n        docsPath: '/docs/contract/decodeAbiParameters',\n    });\n}\n////////////////////////////////////////////////////////////////////\n// Type Decoders\nconst sizeOfLength = 32;\nconst sizeOfOffset = 32;\nfunction decodeAddress(cursor) {\n    const value = cursor.readBytes(32);\n    return [checksumAddress(bytesToHex(sliceBytes(value, -20))), 32];\n}\nfunction decodeArray(cursor, param, { length, staticPosition }) {\n    // If the length of the array is not known in advance (dynamic array),\n    // this means we will need to wonder off to the pointer and decode.\n    if (!length) {\n        // Dealing with a dynamic type, so get the offset of the array data.\n        const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n        // Start is the static position of current slot + offset.\n        const start = staticPosition + offset;\n        const startOfData = start + sizeOfLength;\n        // Get the length of the array from the offset.\n        cursor.setPosition(start);\n        const length = bytesToNumber(cursor.readBytes(sizeOfLength));\n        // Check if the array has any dynamic children.\n        const dynamicChild = hasDynamicChild(param);\n        let consumed = 0;\n        const value = [];\n        for (let i = 0; i < length; ++i) {\n            // If any of the children is dynamic, then all elements will be offset pointer, thus size of one slot (32 bytes).\n            // Otherwise, elements will be the size of their encoding (consumed bytes).\n            cursor.setPosition(startOfData + (dynamicChild ? i * 32 : consumed));\n            const [data, consumed_] = decodeParameter(cursor, param, {\n                staticPosition: startOfData,\n            });\n            consumed += consumed_;\n            value.push(data);\n        }\n        // As we have gone wondering, restore to the original position + next slot.\n        cursor.setPosition(staticPosition + 32);\n        return [value, 32];\n    }\n    // If the length of the array is known in advance,\n    // and the length of an element deeply nested in the array is not known,\n    // we need to decode the offset of the array data.\n    if (hasDynamicChild(param)) {\n        // Dealing with dynamic types, so get the offset of the array data.\n        const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n        // Start is the static position of current slot + offset.\n        const start = staticPosition + offset;\n        const value = [];\n        for (let i = 0; i < length; ++i) {\n            // Move cursor along to the next slot (next offset pointer).\n            cursor.setPosition(start + i * 32);\n            const [data] = decodeParameter(cursor, param, {\n                staticPosition: start,\n            });\n            value.push(data);\n        }\n        // As we have gone wondering, restore to the original position + next slot.\n        cursor.setPosition(staticPosition + 32);\n        return [value, 32];\n    }\n    // If the length of the array is known in advance and the array is deeply static,\n    // then we can just decode each element in sequence.\n    let consumed = 0;\n    const value = [];\n    for (let i = 0; i < length; ++i) {\n        const [data, consumed_] = decodeParameter(cursor, param, {\n            staticPosition: staticPosition + consumed,\n        });\n        consumed += consumed_;\n        value.push(data);\n    }\n    return [value, consumed];\n}\nfunction decodeBool(cursor) {\n    return [bytesToBool(cursor.readBytes(32), { size: 32 }), 32];\n}\nfunction decodeBytes(cursor, param, { staticPosition }) {\n    const [_, size] = param.type.split('bytes');\n    if (!size) {\n        // Dealing with dynamic types, so get the offset of the bytes data.\n        const offset = bytesToNumber(cursor.readBytes(32));\n        // Set position of the cursor to start of bytes data.\n        cursor.setPosition(staticPosition + offset);\n        const length = bytesToNumber(cursor.readBytes(32));\n        // If there is no length, we have zero data.\n        if (length === 0) {\n            // As we have gone wondering, restore to the original position + next slot.\n            cursor.setPosition(staticPosition + 32);\n            return ['0x', 32];\n        }\n        const data = cursor.readBytes(length);\n        // As we have gone wondering, restore to the original position + next slot.\n        cursor.setPosition(staticPosition + 32);\n        return [bytesToHex(data), 32];\n    }\n    const value = bytesToHex(cursor.readBytes(Number.parseInt(size, 10), 32));\n    return [value, 32];\n}\nfunction decodeNumber(cursor, param) {\n    const signed = param.type.startsWith('int');\n    const size = Number.parseInt(param.type.split('int')[1] || '256', 10);\n    const value = cursor.readBytes(32);\n    return [\n        size > 48\n            ? bytesToBigInt(value, { signed })\n            : bytesToNumber(value, { signed }),\n        32,\n    ];\n}\nfunction decodeTuple(cursor, param, { staticPosition }) {\n    // Tuples can have unnamed components (i.e. they are arrays), so we must\n    // determine whether the tuple is named or unnamed. In the case of a named\n    // tuple, the value will be an object where each property is the name of the\n    // component. In the case of an unnamed tuple, the value will be an array.\n    const hasUnnamedChild = param.components.length === 0 || param.components.some(({ name }) => !name);\n    // Initialize the value to an object or an array, depending on whether the\n    // tuple is named or unnamed.\n    const value = hasUnnamedChild ? [] : {};\n    let consumed = 0;\n    // If the tuple has a dynamic child, we must first decode the offset to the\n    // tuple data.\n    if (hasDynamicChild(param)) {\n        // Dealing with dynamic types, so get the offset of the tuple data.\n        const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n        // Start is the static position of referencing slot + offset.\n        const start = staticPosition + offset;\n        for (let i = 0; i < param.components.length; ++i) {\n            const component = param.components[i];\n            cursor.setPosition(start + consumed);\n            const [data, consumed_] = decodeParameter(cursor, component, {\n                staticPosition: start,\n            });\n            consumed += consumed_;\n            value[hasUnnamedChild ? i : component?.name] = data;\n        }\n        // As we have gone wondering, restore to the original position + next slot.\n        cursor.setPosition(staticPosition + 32);\n        return [value, 32];\n    }\n    // If the tuple has static children, we can just decode each component\n    // in sequence.\n    for (let i = 0; i < param.components.length; ++i) {\n        const component = param.components[i];\n        const [data, consumed_] = decodeParameter(cursor, component, {\n            staticPosition,\n        });\n        value[hasUnnamedChild ? i : component?.name] = data;\n        consumed += consumed_;\n    }\n    return [value, consumed];\n}\nfunction decodeString(cursor, { staticPosition }) {\n    // Get offset to start of string data.\n    const offset = bytesToNumber(cursor.readBytes(32));\n    // Start is the static position of current slot + offset.\n    const start = staticPosition + offset;\n    cursor.setPosition(start);\n    const length = bytesToNumber(cursor.readBytes(32));\n    // If there is no length, we have zero data (empty string).\n    if (length === 0) {\n        cursor.setPosition(staticPosition + 32);\n        return ['', 32];\n    }\n    const data = cursor.readBytes(length, 32);\n    const value = bytesToString(trim(data));\n    // As we have gone wondering, restore to the original position + next slot.\n    cursor.setPosition(staticPosition + 32);\n    return [value, 32];\n}\nfunction hasDynamicChild(param) {\n    const { type } = param;\n    if (type === 'string')\n        return true;\n    if (type === 'bytes')\n        return true;\n    if (type.endsWith('[]'))\n        return true;\n    if (type === 'tuple')\n        return param.components?.some(hasDynamicChild);\n    const arrayComponents = getArrayComponents(param.type);\n    if (arrayComponents &&\n        hasDynamicChild({ ...param, type: arrayComponents[1] }))\n        return true;\n    return false;\n}\n//# sourceMappingURL=decodeAbiParameters.js.map","import { solidityError, solidityPanic } from '../../constants/solidity.js';\nimport { AbiDecodingZeroDataError, AbiErrorSignatureNotFoundError, } 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 decodeErrorResult(parameters) {\n    const { abi, data, cause } = parameters;\n    const signature = slice(data, 0, 4);\n    if (signature === '0x')\n        throw new AbiDecodingZeroDataError({ cause });\n    const abi_ = [...(abi || []), solidityError, solidityPanic];\n    const abiItem = abi_.find((x) => x.type === 'error' && signature === toFunctionSelector(formatAbiItem(x)));\n    if (!abiItem)\n        throw new AbiErrorSignatureNotFoundError(signature, {\n            docsPath: '/docs/contract/decodeErrorResult',\n            cause,\n        });\n    return {\n        abiItem,\n        args: 'inputs' in abiItem && abiItem.inputs && abiItem.inputs.length > 0\n            ? decodeAbiParameters(abiItem.inputs, slice(data, 4))\n            : undefined,\n        errorName: abiItem.name,\n    };\n}\n//# sourceMappingURL=decodeErrorResult.js.map","import { stringify } from '../stringify.js';\nexport function formatAbiItemWithArgs({ abiItem, args, includeFunctionName = true, includeName = false, }) {\n    if (!('name' in abiItem))\n        return;\n    if (!('inputs' in abiItem))\n        return;\n    if (!abiItem.inputs)\n        return;\n    return `${includeFunctionName ? abiItem.name : ''}(${abiItem.inputs\n        .map((input, i) => `${includeName && input.name ? `${input.name}: ` : ''}${typeof args[i] === 'object' ? stringify(args[i]) : args[i]}`)\n        .join(', ')})`;\n}\n//# sourceMappingURL=formatAbiItemWithArgs.js.map","import { BaseError } from './base.js';\nexport class AccountStateConflictError extends BaseError {\n    constructor({ address }) {\n        super(`State for account \"${address}\" is set multiple times.`, {\n            name: 'AccountStateConflictError',\n        });\n    }\n}\nexport class StateAssignmentConflictError extends BaseError {\n    constructor() {\n        super('state and stateDiff are set on the same account.', {\n            name: 'StateAssignmentConflictError',\n        });\n    }\n}\n/** @internal */\nexport function prettyStateMapping(stateMapping) {\n    return stateMapping.reduce((pretty, { slot, value }) => {\n        return `${pretty}        ${slot}: ${value}\\n`;\n    }, '');\n}\nexport function prettyStateOverride(stateOverride) {\n    return stateOverride\n        .reduce((pretty, { address, ...state }) => {\n        let val = `${pretty}    ${address}:\\n`;\n        if (state.nonce)\n            val += `      nonce: ${state.nonce}\\n`;\n        if (state.balance)\n            val += `      balance: ${state.balance}\\n`;\n        if (state.code)\n            val += `      code: ${state.code}\\n`;\n        if (state.state) {\n            val += '      state:\\n';\n            val += prettyStateMapping(state.state);\n        }\n        if (state.stateDiff) {\n            val += '      stateDiff:\\n';\n            val += prettyStateMapping(state.stateDiff);\n        }\n        return val;\n    }, '  State Override:\\n')\n        .slice(0, -1);\n}\n//# sourceMappingURL=stateOverride.js.map","export const getContractAddress = (address) => address;\nexport const getUrl = (url) => url;\n//# sourceMappingURL=utils.js.map","import { parseAccount } from '../accounts/utils/parseAccount.js';\nimport { panicReasons } from '../constants/solidity.js';\nimport { decodeErrorResult, } from '../utils/abi/decodeErrorResult.js';\nimport { formatAbiItem } from '../utils/abi/formatAbiItem.js';\nimport { formatAbiItemWithArgs } from '../utils/abi/formatAbiItemWithArgs.js';\nimport { getAbiItem } from '../utils/abi/getAbiItem.js';\nimport { formatEther } from '../utils/unit/formatEther.js';\nimport { formatGwei } from '../utils/unit/formatGwei.js';\nimport { AbiErrorSignatureNotFoundError } from './abi.js';\nimport { BaseError } from './base.js';\nimport { prettyStateOverride } from './stateOverride.js';\nimport { prettyPrint } from './transaction.js';\nimport { getContractAddress } from './utils.js';\nexport class CallExecutionError extends BaseError {\n    constructor(cause, { account: account_, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, stateOverride, }) {\n        const account = account_ ? parseAccount(account_) : undefined;\n        let prettyArgs = prettyPrint({\n            from: account?.address,\n            to,\n            value: typeof value !== 'undefined' &&\n                `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n            data,\n            gas,\n            gasPrice: typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n            maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&\n                `${formatGwei(maxFeePerGas)} gwei`,\n            maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&\n                `${formatGwei(maxPriorityFeePerGas)} gwei`,\n            nonce,\n        });\n        if (stateOverride) {\n            prettyArgs += `\\n${prettyStateOverride(stateOverride)}`;\n        }\n        super(cause.shortMessage, {\n            cause,\n            docsPath,\n            metaMessages: [\n                ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n                'Raw Call Arguments:',\n                prettyArgs,\n            ].filter(Boolean),\n            name: 'CallExecutionError',\n        });\n        Object.defineProperty(this, \"cause\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.cause = cause;\n    }\n}\nexport class ContractFunctionExecutionError extends BaseError {\n    constructor(cause, { abi, args, contractAddress, docsPath, functionName, sender, }) {\n        const abiItem = getAbiItem({ abi, args, name: functionName });\n        const formattedArgs = abiItem\n            ? formatAbiItemWithArgs({\n                abiItem,\n                args,\n                includeFunctionName: false,\n                includeName: false,\n            })\n            : undefined;\n        const functionWithParams = abiItem\n            ? formatAbiItem(abiItem, { includeName: true })\n            : undefined;\n        const prettyArgs = prettyPrint({\n            address: contractAddress && getContractAddress(contractAddress),\n            function: functionWithParams,\n            args: formattedArgs &&\n                formattedArgs !== '()' &&\n                `${[...Array(functionName?.length ?? 0).keys()]\n                    .map(() => ' ')\n                    .join('')}${formattedArgs}`,\n            sender,\n        });\n        super(cause.shortMessage ||\n            `An unknown error occurred while executing the contract function \"${functionName}\".`, {\n            cause,\n            docsPath,\n            metaMessages: [\n                ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n                prettyArgs && 'Contract Call:',\n                prettyArgs,\n            ].filter(Boolean),\n            name: 'ContractFunctionExecutionError',\n        });\n        Object.defineProperty(this, \"abi\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"args\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"cause\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"contractAddress\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"formattedArgs\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"functionName\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"sender\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.abi = abi;\n        this.args = args;\n        this.cause = cause;\n        this.contractAddress = contractAddress;\n        this.functionName = functionName;\n        this.sender = sender;\n    }\n}\nexport class ContractFunctionRevertedError extends BaseError {\n    constructor({ abi, data, functionName, message, cause: error, }) {\n        let cause;\n        let decodedData;\n        let metaMessages;\n        let reason;\n        if (data && data !== '0x') {\n            try {\n                decodedData = decodeErrorResult({ abi, data, cause: error });\n                const { abiItem, errorName, args: errorArgs } = decodedData;\n                if (errorName === 'Error') {\n                    reason = errorArgs[0];\n                }\n                else if (errorName === 'Panic') {\n                    const [firstArg] = errorArgs;\n                    reason = panicReasons[firstArg];\n                }\n                else {\n                    const errorWithParams = abiItem\n                        ? formatAbiItem(abiItem, { includeName: true })\n                        : undefined;\n                    const formattedArgs = abiItem && errorArgs\n                        ? formatAbiItemWithArgs({\n                            abiItem,\n                            args: errorArgs,\n                            includeFunctionName: false,\n                            includeName: false,\n                        })\n                        : undefined;\n                    metaMessages = [\n                        errorWithParams ? `Error: ${errorWithParams}` : '',\n                        formattedArgs && formattedArgs !== '()'\n                            ? `       ${[...Array(errorName?.length ?? 0).keys()]\n                                .map(() => ' ')\n                                .join('')}${formattedArgs}`\n                            : '',\n                    ];\n                }\n            }\n            catch (err) {\n                cause = err;\n            }\n        }\n        else if (message)\n            reason = message;\n        let signature;\n        if (cause instanceof AbiErrorSignatureNotFoundError) {\n            signature = cause.signature;\n            metaMessages = [\n                `Unable to decode signature \"${signature}\" as it was not found on the provided ABI.`,\n                'Make sure you are using the correct ABI and that the error exists on it.',\n                `You can look up the decoded signature here: https://4byte.sourcify.dev/?q=${signature}.`,\n            ];\n        }\n        super((reason && reason !== 'execution reverted') || signature\n            ? [\n                `The contract function \"${functionName}\" reverted with the following ${signature ? 'signature' : 'reason'}:`,\n                reason || signature,\n            ].join('\\n')\n            : `The contract function \"${functionName}\" reverted.`, {\n            cause: cause ?? error,\n            metaMessages,\n            name: 'ContractFunctionRevertedError',\n        });\n        Object.defineProperty(this, \"data\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"raw\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"reason\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"signature\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.data = decodedData;\n        this.raw = data;\n        this.reason = reason;\n        this.signature = signature;\n    }\n}\nexport class ContractFunctionZeroDataError extends BaseError {\n    constructor({ functionName, cause, }) {\n        super(`The contract function \"${functionName}\" returned no data (\"0x\").`, {\n            metaMessages: [\n                'This could be due to any of the following:',\n                `  - The contract does not have the function \"${functionName}\",`,\n                '  - The parameters passed to the contract function may be invalid, or',\n                '  - The address is not a contract.',\n            ],\n            name: 'ContractFunctionZeroDataError',\n            cause,\n        });\n    }\n}\nexport class CounterfactualDeploymentFailedError extends BaseError {\n    constructor({ factory }) {\n        super(`Deployment for counterfactual contract call failed${factory ? ` for factory \"${factory}\".` : ''}`, {\n            metaMessages: [\n                'Please ensure:',\n                '- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).',\n                '- The `factoryData` is a valid encoded function call for contract deployment function on the factory.',\n            ],\n            name: 'CounterfactualDeploymentFailedError',\n        });\n    }\n}\nexport class RawContractError extends BaseError {\n    constructor({ data, message, }) {\n        super(message || '', { name: 'RawContractError' });\n        Object.defineProperty(this, \"code\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: 3\n        });\n        Object.defineProperty(this, \"data\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.data = data;\n    }\n}\n//# sourceMappingURL=contract.js.map","import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class HttpRequestError extends BaseError {\n    constructor({ body, cause, details, headers, status, url, }) {\n        super('HTTP request failed.', {\n            cause,\n            details,\n            metaMessages: [\n                status && `Status: ${status}`,\n                `URL: ${getUrl(url)}`,\n                body && `Request body: ${stringify(body)}`,\n            ].filter(Boolean),\n            name: 'HttpRequestError',\n        });\n        Object.defineProperty(this, \"body\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"headers\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"status\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"url\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.body = body;\n        this.headers = headers;\n        this.status = status;\n        this.url = url;\n    }\n}\nexport class WebSocketRequestError extends BaseError {\n    constructor({ body, cause, details, url, }) {\n        super('WebSocket request failed.', {\n            cause,\n            details,\n            metaMessages: [\n                `URL: ${getUrl(url)}`,\n                body && `Request body: ${stringify(body)}`,\n            ].filter(Boolean),\n            name: 'WebSocketRequestError',\n        });\n        Object.defineProperty(this, \"url\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.url = url;\n    }\n}\nexport class RpcRequestError extends BaseError {\n    constructor({ body, error, url, }) {\n        super('RPC Request failed.', {\n            cause: error,\n            details: error.message,\n            metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n            name: 'RpcRequestError',\n        });\n        Object.defineProperty(this, \"code\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"data\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"url\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.code = error.code;\n        this.data = error.data;\n        this.url = url;\n    }\n}\nexport class SocketClosedError extends BaseError {\n    constructor({ url, } = {}) {\n        super('The socket has been closed.', {\n            metaMessages: [url && `URL: ${getUrl(url)}`].filter(Boolean),\n            name: 'SocketClosedError',\n        });\n        Object.defineProperty(this, \"url\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.url = url;\n    }\n}\nexport class TimeoutError extends BaseError {\n    constructor({ body, url, }) {\n        super('The request took too long to respond.', {\n            details: 'The request timed out.',\n            metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n            name: 'TimeoutError',\n        });\n        Object.defineProperty(this, \"url\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.url = url;\n    }\n}\n//# sourceMappingURL=request.js.map","import { BaseError } from './base.js';\nimport { RpcRequestError } from './request.js';\nconst unknownErrorCode = -1;\nexport class RpcError extends BaseError {\n    constructor(cause, { code, docsPath, metaMessages, name, shortMessage, }) {\n        super(shortMessage, {\n            cause,\n            docsPath,\n            metaMessages: metaMessages || cause?.metaMessages,\n            name: name || 'RpcError',\n        });\n        Object.defineProperty(this, \"code\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.name = name || cause.name;\n        this.code = (cause instanceof RpcRequestError ? cause.code : (code ?? unknownErrorCode));\n    }\n}\nexport class ProviderRpcError extends RpcError {\n    constructor(cause, options) {\n        super(cause, options);\n        Object.defineProperty(this, \"data\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.data = options.data;\n    }\n}\nexport class ParseRpcError extends RpcError {\n    constructor(cause) {\n        super(cause, {\n            code: ParseRpcError.code,\n            name: 'ParseRpcError',\n            shortMessage: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n        });\n    }\n}\nObject.defineProperty(ParseRpcError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32700\n});\nexport class InvalidRequestRpcError extends RpcError {\n    constructor(cause) {\n        super(cause, {\n            code: InvalidRequestRpcError.code,\n            name: 'InvalidRequestRpcError',\n            shortMessage: 'JSON is not a valid request object.',\n        });\n    }\n}\nObject.defineProperty(InvalidRequestRpcError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32600\n});\nexport class MethodNotFoundRpcError extends RpcError {\n    constructor(cause, { method } = {}) {\n        super(cause, {\n            code: MethodNotFoundRpcError.code,\n            name: 'MethodNotFoundRpcError',\n            shortMessage: `The method${method ? ` \"${method}\"` : ''} does not exist / is not available.`,\n        });\n    }\n}\nObject.defineProperty(MethodNotFoundRpcError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32601\n});\nexport class InvalidParamsRpcError extends RpcError {\n    constructor(cause) {\n        super(cause, {\n            code: InvalidParamsRpcError.code,\n            name: 'InvalidParamsRpcError',\n            shortMessage: [\n                'Invalid parameters were provided to the RPC method.',\n                'Double check you have provided the correct parameters.',\n            ].join('\\n'),\n        });\n    }\n}\nObject.defineProperty(InvalidParamsRpcError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32602\n});\nexport class InternalRpcError extends RpcError {\n    constructor(cause) {\n        super(cause, {\n            code: InternalRpcError.code,\n            name: 'InternalRpcError',\n            shortMessage: 'An internal error was received.',\n        });\n    }\n}\nObject.defineProperty(InternalRpcError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32603\n});\nexport class InvalidInputRpcError extends RpcError {\n    constructor(cause) {\n        super(cause, {\n            code: InvalidInputRpcError.code,\n            name: 'InvalidInputRpcError',\n            shortMessage: [\n                'Missing or invalid parameters.',\n                'Double check you have provided the correct parameters.',\n            ].join('\\n'),\n        });\n    }\n}\nObject.defineProperty(InvalidInputRpcError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32000\n});\nexport class ResourceNotFoundRpcError extends RpcError {\n    constructor(cause) {\n        super(cause, {\n            code: ResourceNotFoundRpcError.code,\n            name: 'ResourceNotFoundRpcError',\n            shortMessage: 'Requested resource not found.',\n        });\n        Object.defineProperty(this, \"name\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: 'ResourceNotFoundRpcError'\n        });\n    }\n}\nObject.defineProperty(ResourceNotFoundRpcError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32001\n});\nexport class ResourceUnavailableRpcError extends RpcError {\n    constructor(cause) {\n        super(cause, {\n            code: ResourceUnavailableRpcError.code,\n            name: 'ResourceUnavailableRpcError',\n            shortMessage: 'Requested resource not available.',\n        });\n    }\n}\nObject.defineProperty(ResourceUnavailableRpcError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32002\n});\nexport class TransactionRejectedRpcError extends RpcError {\n    constructor(cause) {\n        super(cause, {\n            code: TransactionRejectedRpcError.code,\n            name: 'TransactionRejectedRpcError',\n            shortMessage: 'Transaction creation failed.',\n        });\n    }\n}\nObject.defineProperty(TransactionRejectedRpcError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32003\n});\nexport class MethodNotSupportedRpcError extends RpcError {\n    constructor(cause, { method } = {}) {\n        super(cause, {\n            code: MethodNotSupportedRpcError.code,\n            name: 'MethodNotSupportedRpcError',\n            shortMessage: `Method${method ? ` \"${method}\"` : ''} is not supported.`,\n        });\n    }\n}\nObject.defineProperty(MethodNotSupportedRpcError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32004\n});\nexport class LimitExceededRpcError extends RpcError {\n    constructor(cause) {\n        super(cause, {\n            code: LimitExceededRpcError.code,\n            name: 'LimitExceededRpcError',\n            shortMessage: 'Request exceeds defined limit.',\n        });\n    }\n}\nObject.defineProperty(LimitExceededRpcError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32005\n});\nexport class JsonRpcVersionUnsupportedError extends RpcError {\n    constructor(cause) {\n        super(cause, {\n            code: JsonRpcVersionUnsupportedError.code,\n            name: 'JsonRpcVersionUnsupportedError',\n            shortMessage: 'Version of JSON-RPC protocol is not supported.',\n        });\n    }\n}\nObject.defineProperty(JsonRpcVersionUnsupportedError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: -32006\n});\nexport class UserRejectedRequestError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: UserRejectedRequestError.code,\n            name: 'UserRejectedRequestError',\n            shortMessage: 'User rejected the request.',\n        });\n    }\n}\nObject.defineProperty(UserRejectedRequestError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 4001\n});\nexport class UnauthorizedProviderError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: UnauthorizedProviderError.code,\n            name: 'UnauthorizedProviderError',\n            shortMessage: 'The requested method and/or account has not been authorized by the user.',\n        });\n    }\n}\nObject.defineProperty(UnauthorizedProviderError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 4100\n});\nexport class UnsupportedProviderMethodError extends ProviderRpcError {\n    constructor(cause, { method } = {}) {\n        super(cause, {\n            code: UnsupportedProviderMethodError.code,\n            name: 'UnsupportedProviderMethodError',\n            shortMessage: `The Provider does not support the requested method${method ? ` \" ${method}\"` : ''}.`,\n        });\n    }\n}\nObject.defineProperty(UnsupportedProviderMethodError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 4200\n});\nexport class ProviderDisconnectedError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: ProviderDisconnectedError.code,\n            name: 'ProviderDisconnectedError',\n            shortMessage: 'The Provider is disconnected from all chains.',\n        });\n    }\n}\nObject.defineProperty(ProviderDisconnectedError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 4900\n});\nexport class ChainDisconnectedError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: ChainDisconnectedError.code,\n            name: 'ChainDisconnectedError',\n            shortMessage: 'The Provider is not connected to the requested chain.',\n        });\n    }\n}\nObject.defineProperty(ChainDisconnectedError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 4901\n});\nexport class SwitchChainError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: SwitchChainError.code,\n            name: 'SwitchChainError',\n            shortMessage: 'An error occurred when attempting to switch chain.',\n        });\n    }\n}\nObject.defineProperty(SwitchChainError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 4902\n});\nexport class UnsupportedNonOptionalCapabilityError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: UnsupportedNonOptionalCapabilityError.code,\n            name: 'UnsupportedNonOptionalCapabilityError',\n            shortMessage: 'This Wallet does not support a capability that was not marked as optional.',\n        });\n    }\n}\nObject.defineProperty(UnsupportedNonOptionalCapabilityError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 5700\n});\nexport class UnsupportedChainIdError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: UnsupportedChainIdError.code,\n            name: 'UnsupportedChainIdError',\n            shortMessage: 'This Wallet does not support the requested chain ID.',\n        });\n    }\n}\nObject.defineProperty(UnsupportedChainIdError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 5710\n});\nexport class DuplicateIdError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: DuplicateIdError.code,\n            name: 'DuplicateIdError',\n            shortMessage: 'There is already a bundle submitted with this ID.',\n        });\n    }\n}\nObject.defineProperty(DuplicateIdError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 5720\n});\nexport class UnknownBundleIdError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: UnknownBundleIdError.code,\n            name: 'UnknownBundleIdError',\n            shortMessage: 'This bundle id is unknown / has not been submitted',\n        });\n    }\n}\nObject.defineProperty(UnknownBundleIdError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 5730\n});\nexport class BundleTooLargeError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: BundleTooLargeError.code,\n            name: 'BundleTooLargeError',\n            shortMessage: 'The call bundle is too large for the Wallet to process.',\n        });\n    }\n}\nObject.defineProperty(BundleTooLargeError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 5740\n});\nexport class AtomicReadyWalletRejectedUpgradeError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: AtomicReadyWalletRejectedUpgradeError.code,\n            name: 'AtomicReadyWalletRejectedUpgradeError',\n            shortMessage: 'The Wallet can support atomicity after an upgrade, but the user rejected the upgrade.',\n        });\n    }\n}\nObject.defineProperty(AtomicReadyWalletRejectedUpgradeError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 5750\n});\nexport class AtomicityNotSupportedError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: AtomicityNotSupportedError.code,\n            name: 'AtomicityNotSupportedError',\n            shortMessage: 'The wallet does not support atomic execution but the request requires it.',\n        });\n    }\n}\nObject.defineProperty(AtomicityNotSupportedError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 5760\n});\nexport class WalletConnectSessionSettlementError extends ProviderRpcError {\n    constructor(cause) {\n        super(cause, {\n            code: WalletConnectSessionSettlementError.code,\n            name: 'WalletConnectSessionSettlementError',\n            shortMessage: 'WalletConnect session settlement failed.',\n        });\n    }\n}\nObject.defineProperty(WalletConnectSessionSettlementError, \"code\", {\n    enumerable: true,\n    configurable: true,\n    writable: true,\n    value: 7000\n});\nexport class UnknownRpcError extends RpcError {\n    constructor(cause) {\n        super(cause, {\n            name: 'UnknownRpcError',\n            shortMessage: 'An unknown RPC error occurred.',\n        });\n    }\n}\n//# sourceMappingURL=rpc.js.map","import { BaseError } from '../../errors/base.js';\nimport { ExecutionRevertedError, FeeCapTooHighError, FeeCapTooLowError, InsufficientFundsError, IntrinsicGasTooHighError, IntrinsicGasTooLowError, NonceMaxValueError, NonceTooHighError, NonceTooLowError, TipAboveFeeCapError, TransactionTypeNotSupportedError, UnknownNodeError, } from '../../errors/node.js';\nimport { RpcRequestError } from '../../errors/request.js';\nimport { InvalidInputRpcError, TransactionRejectedRpcError, } from '../../errors/rpc.js';\nexport function containsNodeError(err) {\n    return (err instanceof TransactionRejectedRpcError ||\n        err instanceof InvalidInputRpcError ||\n        (err instanceof RpcRequestError && err.code === ExecutionRevertedError.code));\n}\nexport function getNodeError(err, args) {\n    const message = (err.details || '').toLowerCase();\n    const executionRevertedError = err instanceof BaseError\n        ? err.walk((e) => e?.code ===\n            ExecutionRevertedError.code)\n        : err;\n    if (executionRevertedError instanceof BaseError)\n        return new ExecutionRevertedError({\n            cause: err,\n            message: executionRevertedError.details,\n        });\n    if (ExecutionRevertedError.nodeMessage.test(message))\n        return new ExecutionRevertedError({\n            cause: err,\n            message: err.details,\n        });\n    if (FeeCapTooHighError.nodeMessage.test(message))\n        return new FeeCapTooHighError({\n            cause: err,\n            maxFeePerGas: args?.maxFeePerGas,\n        });\n    if (FeeCapTooLowError.nodeMessage.test(message))\n        return new FeeCapTooLowError({\n            cause: err,\n            maxFeePerGas: args?.maxFeePerGas,\n        });\n    if (NonceTooHighError.nodeMessage.test(message))\n        return new NonceTooHighError({ cause: err, nonce: args?.nonce });\n    if (NonceTooLowError.nodeMessage.test(message))\n        return new NonceTooLowError({ cause: err, nonce: args?.nonce });\n    if (NonceMaxValueError.nodeMessage.test(message))\n        return new NonceMaxValueError({ cause: err, nonce: args?.nonce });\n    if (InsufficientFundsError.nodeMessage.test(message))\n        return new InsufficientFundsError({ cause: err });\n    if (IntrinsicGasTooHighError.nodeMessage.test(message))\n        return new IntrinsicGasTooHighError({ cause: err, gas: args?.gas });\n    if (IntrinsicGasTooLowError.nodeMessage.test(message))\n        return new IntrinsicGasTooLowError({ cause: err, gas: args?.gas });\n    if (TransactionTypeNotSupportedError.nodeMessage.test(message))\n        return new TransactionTypeNotSupportedError({ cause: err });\n    if (TipAboveFeeCapError.nodeMessage.test(message))\n        return new TipAboveFeeCapError({\n            cause: err,\n            maxFeePerGas: args?.maxFeePerGas,\n            maxPriorityFeePerGas: args?.maxPriorityFeePerGas,\n        });\n    return new UnknownNodeError({\n        cause: err,\n    });\n}\n//# sourceMappingURL=getNodeError.js.map","/**\n * @description Picks out the keys from `value` that exist in the formatter..\n */\nexport function extract(value_, { format }) {\n    if (!format)\n        return {};\n    const value = {};\n    function extract_(formatted) {\n        const keys = Object.keys(formatted);\n        for (const key of keys) {\n            if (key in value_)\n                value[key] = value_[key];\n            if (formatted[key] &&\n                typeof formatted[key] === 'object' &&\n                !Array.isArray(formatted[key]))\n                extract_(formatted[key]);\n        }\n    }\n    const formatted = format(value_ || {});\n    extract_(formatted);\n    return value;\n}\n//# sourceMappingURL=extract.js.map","export function defineFormatter(type, format) {\n    return ({ exclude, format: overrides, }) => {\n        return {\n            exclude,\n            format: (args, action) => {\n                const formatted = format(args, action);\n                if (exclude) {\n                    for (const key of exclude) {\n                        delete formatted[key];\n                    }\n                }\n                return {\n                    ...formatted,\n                    ...overrides(args, action),\n                };\n            },\n            type,\n        };\n    };\n}\n//# sourceMappingURL=formatter.js.map","import { bytesToHex, numberToHex } from '../encoding/toHex.js';\nimport { defineFormatter } from './formatter.js';\nexport const rpcTransactionType = {\n    legacy: '0x0',\n    eip2930: '0x1',\n    eip1559: '0x2',\n    eip4844: '0x3',\n    eip7702: '0x4',\n};\nexport function formatTransactionRequest(request, _) {\n    const rpcRequest = {};\n    if (typeof request.authorizationList !== 'undefined')\n        rpcRequest.authorizationList = formatAuthorizationList(request.authorizationList);\n    if (typeof request.accessList !== 'undefined')\n        rpcRequest.accessList = request.accessList;\n    if (typeof request.blobVersionedHashes !== 'undefined')\n        rpcRequest.blobVersionedHashes = request.blobVersionedHashes;\n    if (typeof request.blobs !== 'undefined') {\n        if (typeof request.blobs[0] !== 'string')\n            rpcRequest.blobs = request.blobs.map((x) => bytesToHex(x));\n        else\n            rpcRequest.blobs = request.blobs;\n    }\n    if (typeof request.data !== 'undefined')\n        rpcRequest.data = request.data;\n    if (request.account)\n        rpcRequest.from = request.account.address;\n    if (typeof request.from !== 'undefined')\n        rpcRequest.from = request.from;\n    if (typeof request.gas !== 'undefined')\n        rpcRequest.gas = numberToHex(request.gas);\n    if (typeof request.gasPrice !== 'undefined')\n        rpcRequest.gasPrice = numberToHex(request.gasPrice);\n    if (typeof request.maxFeePerBlobGas !== 'undefined')\n        rpcRequest.maxFeePerBlobGas = numberToHex(request.maxFeePerBlobGas);\n    if (typeof request.maxFeePerGas !== 'undefined')\n        rpcRequest.maxFeePerGas = numberToHex(request.maxFeePerGas);\n    if (typeof request.maxPriorityFeePerGas !== 'undefined')\n        rpcRequest.maxPriorityFeePerGas = numberToHex(request.maxPriorityFeePerGas);\n    if (typeof request.nonce !== 'undefined')\n        rpcRequest.nonce = numberToHex(request.nonce);\n    if (typeof request.to !== 'undefined')\n        rpcRequest.to = request.to;\n    if (typeof request.type !== 'undefined')\n        rpcRequest.type = rpcTransactionType[request.type];\n    if (typeof request.value !== 'undefined')\n        rpcRequest.value = numberToHex(request.value);\n    return rpcRequest;\n}\nexport const defineTransactionRequest = /*#__PURE__*/ defineFormatter('transactionRequest', formatTransactionRequest);\n//////////////////////////////////////////////////////////////////////////////\nfunction formatAuthorizationList(authorizationList) {\n    return authorizationList.map((authorization) => ({\n        address: authorization.address,\n        r: authorization.r\n            ? numberToHex(BigInt(authorization.r))\n            : authorization.r,\n        s: authorization.s\n            ? numberToHex(BigInt(authorization.s))\n            : authorization.s,\n        chainId: numberToHex(authorization.chainId),\n        nonce: numberToHex(authorization.nonce),\n        ...(typeof authorization.yParity !== 'undefined'\n            ? { yParity: numberToHex(authorization.yParity) }\n            : {}),\n        ...(typeof authorization.v !== 'undefined' &&\n            typeof authorization.yParity === 'undefined'\n            ? { v: numberToHex(authorization.v) }\n            : {}),\n    }));\n}\n//# sourceMappingURL=transactionRequest.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { maxUint256 } from '../../constants/number.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { FeeCapTooHighError, TipAboveFeeCapError, } from '../../errors/node.js';\nimport { isAddress } from '../address/isAddress.js';\nexport function assertRequest(args) {\n    const { account: account_, maxFeePerGas, maxPriorityFeePerGas, to } = args;\n    const account = account_ ? parseAccount(account_) : undefined;\n    if (account && !isAddress(account.address))\n        throw new InvalidAddressError({ address: account.address });\n    if (to && !isAddress(to))\n        throw new InvalidAddressError({ address: to });\n    if (maxFeePerGas && maxFeePerGas > maxUint256)\n        throw new FeeCapTooHighError({ maxFeePerGas });\n    if (maxPriorityFeePerGas &&\n        maxFeePerGas &&\n        maxPriorityFeePerGas > maxFeePerGas)\n        throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });\n}\n//# sourceMappingURL=assertRequest.js.map","import { CallExecutionError, } from '../../errors/contract.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getCallError(err, { docsPath, ...args }) {\n    const cause = (() => {\n        const cause = getNodeError(err, args);\n        if (cause instanceof UnknownNodeError)\n            return err;\n        return cause;\n    })();\n    return new CallExecutionError(cause, {\n        docsPath,\n        ...args,\n    });\n}\n//# sourceMappingURL=getCallError.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"mappings":"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"}