{"version":3,"sources":["../../../node_modules/.pnpm/abitype@1.2.3_typescript@5.9.3_zod@4.3.6/node_modules/abitype/src/regex.ts","../../../node_modules/.pnpm/abitype@1.2.3_typescript@5.9.3_zod@4.3.6/node_modules/abitype/src/human-readable/formatAbiParameter.ts","../../../node_modules/.pnpm/abitype@1.2.3_typescript@5.9.3_zod@4.3.6/node_modules/abitype/src/human-readable/formatAbiParameters.ts","../../../node_modules/.pnpm/abitype@1.2.3_typescript@5.9.3_zod@4.3.6/node_modules/abitype/src/human-readable/formatAbiItem.ts","../../../node_modules/.pnpm/abitype@1.2.3_typescript@5.9.3_zod@4.3.6/node_modules/abitype/src/exports/index.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/abi/formatAbiItem.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/data/isHex.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/data/size.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/errors/version.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/errors/base.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/errors/abi.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/errors/data.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/data/pad.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/errors/encoding.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/data/trim.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/encoding/fromHex.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/encoding/toHex.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/encoding/toBytes.ts","../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/_u64.ts","../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/utils.ts","../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/sha3.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/hash/keccak256.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/hash/hashSignature.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/hash/normalizeSignature.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/hash/toSignature.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/hash/toSignatureHash.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/hash/toEventSelector.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/errors/address.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/lru.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/address/getAddress.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/address/isAddress.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/data/concat.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/data/slice.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/regex.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/abi/encodeAbiParameters.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/hash/toFunctionSelector.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/abi/getAbiItem.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/errors/cursor.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/cursor.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/encoding/fromBytes.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/abi/decodeAbiParameters.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/constants/unit.ts","../src/index.ts","../src/generated/wagmi.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/unit/parseEther.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/errors/unit.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/utils/unit/parseUnits.ts","../../../node_modules/.pnpm/viem@2.53.1_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.3.6/node_modules/viem/index.ts","../src/types.ts","../src/typedData.ts","../src/encoding.ts","../src/generated/1155.ts","../src/generated/sparks.ts"],"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<type>(regex: RegExp, string: string) {\n  const match = regex.exec(string)\n  return match?.groups as type | undefined\n}\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\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 =\n  /^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)?$/\n\nexport const isTupleRegex = /^\\(.+?\\).*?$/\n","import type { AbiEventParameter, AbiParameter } from '../abi.js'\nimport { execTyped } from '../regex.js'\nimport type { IsNarrowable, Join } from '../types.js'\nimport type { AssertName } from './types/signatures.js'\n\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 * type Result = FormatAbiParameter<{ type: 'address'; name: 'from'; }>\n * //   ^? type Result = 'address from'\n */\nexport type FormatAbiParameter<\n  abiParameter extends AbiParameter | AbiEventParameter,\n> = abiParameter extends {\n  name?: infer name extends string\n  type: `tuple${infer array}`\n  components: infer components extends readonly AbiParameter[]\n  indexed?: infer indexed extends boolean\n}\n  ? FormatAbiParameter<\n      {\n        type: `(${Join<\n          {\n            [key in keyof components]: FormatAbiParameter<\n              {\n                type: components[key]['type']\n              } & (IsNarrowable<components[key]['name'], string> extends true\n                ? { name: components[key]['name'] }\n                : unknown) &\n                (components[key] extends { components: readonly AbiParameter[] }\n                  ? { components: components[key]['components'] }\n                  : unknown)\n            >\n          },\n          ', '\n        >})${array}`\n      } & (IsNarrowable<name, string> extends true ? { name: name } : unknown) &\n        (IsNarrowable<indexed, boolean> extends true\n          ? { indexed: indexed }\n          : unknown)\n    >\n  : `${abiParameter['type']}${abiParameter extends { indexed: true }\n      ? ' indexed'\n      : ''}${abiParameter['name'] extends infer name extends string\n      ? name extends ''\n        ? ''\n        : ` ${AssertName<name>}`\n      : ''}`\n\n// https://regexr.com/7f7rv\nconst tupleRegex = /^tuple(?<array>(\\[(\\d*)\\])*)$/\n\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<\n  const abiParameter extends AbiParameter | AbiEventParameter,\n>(abiParameter: abiParameter): FormatAbiParameter<abiParameter> {\n  type Result = FormatAbiParameter<abiParameter>\n\n  let type = abiParameter.type\n  if (tupleRegex.test(abiParameter.type) && 'components' in abiParameter) {\n    type = '('\n    const length = abiParameter.components.length as number\n    for (let i = 0; i < length; i++) {\n      const component = abiParameter.components[i]!\n      type += formatAbiParameter(component)\n      if (i < length - 1) type += ', '\n    }\n    const result = execTyped<{ array?: string }>(tupleRegex, abiParameter.type)\n    type += `)${result?.array || ''}`\n    return formatAbiParameter({\n      ...abiParameter,\n      type,\n    }) as Result\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) return `${type} ${abiParameter.name}` as Result\n  return type as Result\n}\n","import type { AbiEventParameter, AbiParameter } from '../abi.js'\nimport type { Join } from '../types.js'\nimport {\n  type FormatAbiParameter,\n  formatAbiParameter,\n} from './formatAbiParameter.js'\n\n/**\n * Formats {@link AbiParameter}s to human-readable ABI parameter.\n *\n * @param abiParameters - ABI parameters\n * @returns Human-readable ABI parameters\n *\n * @example\n * type Result = FormatAbiParameters<[\n *   // ^? type Result = 'address from, uint256 tokenId'\n *   { type: 'address'; name: 'from'; },\n *   { type: 'uint256'; name: 'tokenId'; },\n * ]>\n */\nexport type FormatAbiParameters<\n  abiParameters extends readonly [\n    AbiParameter | AbiEventParameter,\n    ...(readonly (AbiParameter | AbiEventParameter)[]),\n  ],\n> = Join<\n  {\n    [key in keyof abiParameters]: FormatAbiParameter<abiParameters[key]>\n  },\n  ', '\n>\n\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<\n  const abiParameters extends readonly [\n    AbiParameter | AbiEventParameter,\n    ...(readonly (AbiParameter | AbiEventParameter)[]),\n  ],\n>(abiParameters: abiParameters): 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) params += ', '\n  }\n  return params as FormatAbiParameters<abiParameters>\n}\n","import type {\n  Abi,\n  AbiConstructor,\n  AbiError,\n  AbiEvent,\n  AbiEventParameter,\n  AbiFallback,\n  AbiFunction,\n  AbiParameter,\n  AbiReceive,\n  AbiStateMutability,\n} from '../abi.js'\nimport {\n  type FormatAbiParameters as FormatAbiParameters_,\n  formatAbiParameters,\n} from './formatAbiParameters.js'\nimport type { AssertName } from './types/signatures.js'\n\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 type FormatAbiItem<abiItem extends Abi[number]> =\n  Abi[number] extends abiItem\n    ? string\n    :\n        | (abiItem extends AbiFunction\n            ? AbiFunction extends abiItem\n              ? string\n              : `function ${AssertName<abiItem['name']>}(${FormatAbiParameters<\n                  abiItem['inputs']\n                >})${abiItem['stateMutability'] extends Exclude<\n                  AbiStateMutability,\n                  'nonpayable'\n                >\n                  ? ` ${abiItem['stateMutability']}`\n                  : ''}${abiItem['outputs']['length'] extends 0\n                  ? ''\n                  : ` returns (${FormatAbiParameters<abiItem['outputs']>})`}`\n            : never)\n        | (abiItem extends AbiEvent\n            ? AbiEvent extends abiItem\n              ? string\n              : `event ${AssertName<abiItem['name']>}(${FormatAbiParameters<\n                  abiItem['inputs']\n                >})`\n            : never)\n        | (abiItem extends AbiError\n            ? AbiError extends abiItem\n              ? string\n              : `error ${AssertName<abiItem['name']>}(${FormatAbiParameters<\n                  abiItem['inputs']\n                >})`\n            : never)\n        | (abiItem extends AbiConstructor\n            ? AbiConstructor extends abiItem\n              ? string\n              : `constructor(${FormatAbiParameters<\n                  abiItem['inputs']\n                >})${abiItem['stateMutability'] extends 'payable'\n                  ? ' payable'\n                  : ''}`\n            : never)\n        | (abiItem extends AbiFallback\n            ? AbiFallback extends abiItem\n              ? string\n              : `fallback() external${abiItem['stateMutability'] extends 'payable'\n                  ? ' payable'\n                  : ''}`\n            : never)\n        | (abiItem extends AbiReceive\n            ? AbiReceive extends abiItem\n              ? string\n              : 'receive() external payable'\n            : never)\n\ntype FormatAbiParameters<\n  abiParameters extends readonly (AbiParameter | AbiEventParameter)[],\n> = abiParameters['length'] extends 0\n  ? ''\n  : FormatAbiParameters_<\n      abiParameters extends readonly [\n        AbiParameter | AbiEventParameter,\n        ...(readonly (AbiParameter | AbiEventParameter)[]),\n      ]\n        ? abiParameters\n        : never\n    >\n\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<const abiItem extends Abi[number]>(\n  abiItem: abiItem,\n): FormatAbiItem<abiItem> {\n  type Result = FormatAbiItem<abiItem>\n  type Params = readonly [\n    AbiParameter | AbiEventParameter,\n    ...(readonly (AbiParameter | AbiEventParameter)[]),\n  ]\n\n  if (abiItem.type === 'function')\n    return `function ${abiItem.name}(${formatAbiParameters(\n      abiItem.inputs as Params,\n    )})${\n      abiItem.stateMutability && abiItem.stateMutability !== 'nonpayable'\n        ? ` ${abiItem.stateMutability}`\n        : ''\n    }${\n      abiItem.outputs?.length\n        ? ` returns (${formatAbiParameters(abiItem.outputs as Params)})`\n        : ''\n    }`\n  if (abiItem.type === 'event')\n    return `event ${abiItem.name}(${formatAbiParameters(\n      abiItem.inputs as Params,\n    )})`\n  if (abiItem.type === 'error')\n    return `error ${abiItem.name}(${formatAbiParameters(\n      abiItem.inputs as Params,\n    )})`\n  if (abiItem.type === 'constructor')\n    return `constructor(${formatAbiParameters(abiItem.inputs as Params)})${\n      abiItem.stateMutability === 'payable' ? ' payable' : ''\n    }`\n  if (abiItem.type === 'fallback')\n    return `fallback() external${\n      abiItem.stateMutability === 'payable' ? ' payable' : ''\n    }` as Result\n  return 'receive() external payable' as Result\n}\n","export type {\n  Abi,\n  AbiConstructor,\n  AbiError,\n  AbiEvent,\n  AbiEventParameter,\n  AbiFallback,\n  AbiFunction,\n  AbiInternalType,\n  AbiItemType,\n  AbiParameter,\n  AbiParameterKind,\n  AbiReceive,\n  AbiStateMutability,\n  AbiType,\n  Address,\n  SolidityAddress,\n  SolidityArray,\n  SolidityArrayWithoutTuple,\n  SolidityArrayWithTuple,\n  SolidityBool,\n  SolidityBytes,\n  SolidityFixedArrayRange,\n  SolidityFixedArraySizeLookup,\n  SolidityFunction,\n  SolidityInt,\n  SolidityString,\n  SolidityTuple,\n  TypedData,\n  TypedDataDomain,\n  TypedDataParameter,\n  TypedDataType,\n} from '../abi.js'\n\n// biome-ignore lint/performance/noBarrelFile: <explanation>\nexport { BaseError } from '../errors.js'\n\nexport type { Narrow } from '../narrow.js'\nexport { narrow } from '../narrow.js'\n\nexport type {\n  Register,\n  DefaultRegister,\n  ResolvedRegister,\n} from '../register.js'\n\nexport type {\n  AbiParameterToPrimitiveType,\n  AbiParametersToPrimitiveTypes,\n  AbiTypeToPrimitiveType,\n  ExtractAbiError,\n  ExtractAbiErrorNames,\n  ExtractAbiErrors,\n  ExtractAbiEvent,\n  ExtractAbiEventNames,\n  ExtractAbiEvents,\n  ExtractAbiFunction,\n  ExtractAbiFunctionNames,\n  ExtractAbiFunctions,\n  IsAbi,\n  IsTypedData,\n  TypedDataToPrimitiveTypes,\n} from '../utils.js'\n\n////////////////////////////////////////////////////////////////////////////////////////////////////\n// Human-Readable\n\nexport {\n  formatAbi,\n  type FormatAbi,\n} from '../human-readable/formatAbi.js'\n\nexport {\n  formatAbiItem,\n  type FormatAbiItem,\n} from '../human-readable/formatAbiItem.js'\n\nexport {\n  formatAbiParameter,\n  type FormatAbiParameter,\n} from '../human-readable/formatAbiParameter.js'\n\nexport {\n  formatAbiParameters,\n  type FormatAbiParameters,\n} from '../human-readable/formatAbiParameters.js'\n\nexport { parseAbi, type ParseAbi } from '../human-readable/parseAbi.js'\n\nexport {\n  parseAbiItem,\n  type ParseAbiItem,\n} from '../human-readable/parseAbiItem.js'\n\nexport {\n  parseAbiParameter,\n  type ParseAbiParameter,\n} from '../human-readable/parseAbiParameter.js'\n\nexport {\n  parseAbiParameters,\n  type ParseAbiParameters,\n} from '../human-readable/parseAbiParameters.js'\n\nexport {\n  UnknownTypeError,\n  InvalidAbiItemError,\n  UnknownSolidityTypeError,\n} from '../human-readable/errors/abiItem.js'\n\nexport {\n  InvalidAbiTypeParameterError,\n  InvalidFunctionModifierError,\n  InvalidModifierError,\n  SolidityProtectedKeywordError,\n  InvalidParameterError,\n  InvalidAbiParametersError,\n  InvalidAbiParameterError,\n} from '../human-readable/errors/abiParameter.js'\n\nexport {\n  InvalidStructSignatureError,\n  InvalidSignatureError,\n  UnknownSignatureError,\n} from '../human-readable/errors/signature.js'\n\nexport { InvalidParenthesisError } from '../human-readable/errors/splitParameters.js'\n\nexport { CircularReferenceError } from '../human-readable/errors/struct.js'\n","import type { AbiParameter } from 'abitype'\n\nimport {\n  InvalidDefinitionTypeError,\n  type InvalidDefinitionTypeErrorType,\n} from '../../errors/abi.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { AbiItem } from '../../types/contract.js'\n\nexport type FormatAbiItemErrorType =\n  | FormatAbiParamsErrorType\n  | InvalidDefinitionTypeErrorType\n  | ErrorType\n\nexport function formatAbiItem(\n  abiItem: AbiItem,\n  { includeName = false }: { includeName?: boolean | undefined } = {},\n) {\n  if (\n    abiItem.type !== 'function' &&\n    abiItem.type !== 'event' &&\n    abiItem.type !== 'error'\n  )\n    throw new InvalidDefinitionTypeError(abiItem.type)\n\n  return `${abiItem.name}(${formatAbiParams(abiItem.inputs, { includeName })})`\n}\n\nexport type FormatAbiParamsErrorType = ErrorType\n\nexport function formatAbiParams(\n  params: readonly AbiParameter[] | undefined,\n  { includeName = false }: { includeName?: boolean | undefined } = {},\n): string {\n  if (!params) return ''\n  return params\n    .map((param) => formatAbiParam(param, { includeName }))\n    .join(includeName ? ', ' : ',')\n}\n\nexport type FormatAbiParamErrorType = ErrorType\n\nfunction formatAbiParam(\n  param: AbiParameter,\n  { includeName }: { includeName: boolean },\n): string {\n  if (param.type.startsWith('tuple')) {\n    return `(${formatAbiParams(\n      (param as unknown as { components: AbiParameter[] }).components,\n      { includeName },\n    )})${param.type.slice('tuple'.length)}`\n  }\n  return param.type + (includeName && param.name ? ` ${param.name}` : '')\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\n\nexport type IsHexErrorType = ErrorType\n\nexport function isHex(\n  value: unknown,\n  { strict = true }: { strict?: boolean | undefined } = {},\n): value is Hex {\n  if (!value) return false\n  if (typeof value !== 'string') return false\n  return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x')\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\nimport { type IsHexErrorType, isHex } from './isHex.js'\n\nexport type SizeErrorType = IsHexErrorType | ErrorType\n\n/**\n * @description Retrieves the size of the value (in bytes).\n *\n * @param value The value (hex or byte array) to retrieve the size of.\n * @returns The size of the value (in bytes).\n */\nexport function size(value: Hex | ByteArray) {\n  if (isHex(value, { strict: false })) return Math.ceil((value.length - 2) / 2)\n  return value.length\n}\n","export const version = '2.53.1'\n","import { version } from './version.js'\n\ntype ErrorConfig = {\n  getDocsUrl?: ((args: BaseErrorParameters) => string | undefined) | undefined\n  version?: string | undefined\n}\n\nlet errorConfig: ErrorConfig = {\n  getDocsUrl: ({\n    docsBaseUrl,\n    docsPath = '',\n    docsSlug,\n  }: BaseErrorParameters) =>\n    docsPath\n      ? `${docsBaseUrl ?? 'https://viem.sh'}${docsPath}${\n          docsSlug ? `#${docsSlug}` : ''\n        }`\n      : undefined,\n  version: `viem@${version}`,\n}\n\nexport function setErrorConfig(config: ErrorConfig) {\n  errorConfig = config\n}\n\ntype BaseErrorParameters = {\n  cause?: BaseError | Error | undefined\n  details?: string | undefined\n  docsBaseUrl?: string | undefined\n  docsPath?: string | undefined\n  docsSlug?: string | undefined\n  metaMessages?: string[] | undefined\n  name?: string | undefined\n}\n\nexport type BaseErrorType = BaseError & { name: 'BaseError' }\nexport class BaseError extends Error {\n  details: string\n  docsPath?: string | undefined\n  metaMessages?: string[] | undefined\n  shortMessage: string\n  version: string\n\n  override name = 'BaseError'\n\n  constructor(shortMessage: string, args: BaseErrorParameters = {}) {\n    const details = (() => {\n      if (args.cause instanceof BaseError) return args.cause.details\n      if (args.cause?.message) return args.cause.message\n      return args.details!\n    })()\n    const docsPath = (() => {\n      if (args.cause instanceof BaseError)\n        return args.cause.docsPath || args.docsPath\n      return args.docsPath\n    })()\n    const docsUrl = errorConfig.getDocsUrl?.({ ...args, docsPath })\n\n    const message = [\n      shortMessage || 'An error occurred.',\n      '',\n      ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n      ...(docsUrl ? [`Docs: ${docsUrl}`] : []),\n      ...(details ? [`Details: ${details}`] : []),\n      ...(errorConfig.version ? [`Version: ${errorConfig.version}`] : []),\n    ].join('\\n')\n\n    super(message, args.cause ? { cause: args.cause } : undefined)\n\n    this.details = details\n    this.docsPath = docsPath\n    this.metaMessages = args.metaMessages\n    this.name = args.name ?? this.name\n    this.shortMessage = shortMessage\n    this.version = version\n  }\n\n  walk(): Error\n  walk(fn: (err: unknown) => boolean): Error | null\n  walk(fn?: any): any {\n    return walk(this, fn)\n  }\n}\n\nfunction walk(\n  err: unknown,\n  fn?: ((err: unknown) => boolean) | undefined,\n): unknown {\n  if (fn?.(err)) return err\n  if (\n    err &&\n    typeof err === 'object' &&\n    'cause' in err &&\n    err.cause !== undefined\n  )\n    return walk(err.cause, fn)\n  return fn ? null : err\n}\n","import type { Abi, AbiEvent, AbiParameter } from 'abitype'\n\nimport type { Hex } from '../types/misc.js'\nimport { formatAbiItem, formatAbiParams } from '../utils/abi/formatAbiItem.js'\nimport { size } from '../utils/data/size.js'\n\nimport { BaseError } from './base.js'\n\nexport type AbiConstructorNotFoundErrorType = AbiConstructorNotFoundError & {\n  name: 'AbiConstructorNotFoundError'\n}\nexport class AbiConstructorNotFoundError extends BaseError {\n  constructor({ docsPath }: { docsPath: string }) {\n    super(\n      [\n        'A constructor was not found on the ABI.',\n        'Make sure you are using the correct ABI and that the constructor exists on it.',\n      ].join('\\n'),\n      {\n        docsPath,\n        name: 'AbiConstructorNotFoundError',\n      },\n    )\n  }\n}\n\nexport type AbiConstructorParamsNotFoundErrorType =\n  AbiConstructorParamsNotFoundError & {\n    name: 'AbiConstructorParamsNotFoundError'\n  }\n\nexport class AbiConstructorParamsNotFoundError extends BaseError {\n  constructor({ docsPath }: { docsPath: string }) {\n    super(\n      [\n        'Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.',\n        'Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.',\n      ].join('\\n'),\n      {\n        docsPath,\n        name: 'AbiConstructorParamsNotFoundError',\n      },\n    )\n  }\n}\n\nexport type AbiDecodingDataSizeInvalidErrorType =\n  AbiDecodingDataSizeInvalidError & {\n    name: 'AbiDecodingDataSizeInvalidError'\n  }\nexport class AbiDecodingDataSizeInvalidError extends BaseError {\n  constructor({ data, size }: { data: Hex; size: number }) {\n    super(\n      [\n        `Data size of ${size} bytes is invalid.`,\n        'Size must be in increments of 32 bytes (size % 32 === 0).',\n      ].join('\\n'),\n      {\n        metaMessages: [`Data: ${data} (${size} bytes)`],\n        name: 'AbiDecodingDataSizeInvalidError',\n      },\n    )\n  }\n}\n\nexport type AbiDecodingDataSizeTooSmallErrorType =\n  AbiDecodingDataSizeTooSmallError & {\n    name: 'AbiDecodingDataSizeTooSmallError'\n  }\nexport class AbiDecodingDataSizeTooSmallError extends BaseError {\n  data: Hex\n  params: readonly AbiParameter[]\n  size: number\n\n  constructor({\n    data,\n    params,\n    size,\n  }: { data: Hex; params: readonly AbiParameter[]; size: number }) {\n    super(\n      [`Data size of ${size} bytes is too small for given parameters.`].join(\n        '\\n',\n      ),\n      {\n        metaMessages: [\n          `Params: (${formatAbiParams(params, { includeName: true })})`,\n          `Data:   ${data} (${size} bytes)`,\n        ],\n        name: 'AbiDecodingDataSizeTooSmallError',\n      },\n    )\n\n    this.data = data\n    this.params = params\n    this.size = size\n  }\n}\n\nexport type AbiDecodingZeroDataErrorType = AbiDecodingZeroDataError & {\n  name: 'AbiDecodingZeroDataError'\n}\nexport class AbiDecodingZeroDataError extends BaseError {\n  constructor({ cause }: { cause?: BaseError | Error | undefined } = {}) {\n    super('Cannot decode zero data (\"0x\") with ABI parameters.', {\n      name: 'AbiDecodingZeroDataError',\n      cause,\n    })\n  }\n}\n\nexport type AbiEncodingArrayLengthMismatchErrorType =\n  AbiEncodingArrayLengthMismatchError & {\n    name: 'AbiEncodingArrayLengthMismatchError'\n  }\nexport class AbiEncodingArrayLengthMismatchError extends BaseError {\n  constructor({\n    expectedLength,\n    givenLength,\n    type,\n  }: { expectedLength: number; givenLength: number; type: string }) {\n    super(\n      [\n        `ABI encoding array length mismatch for type ${type}.`,\n        `Expected length: ${expectedLength}`,\n        `Given length: ${givenLength}`,\n      ].join('\\n'),\n      { name: 'AbiEncodingArrayLengthMismatchError' },\n    )\n  }\n}\n\nexport type AbiEncodingBytesSizeMismatchErrorType =\n  AbiEncodingBytesSizeMismatchError & {\n    name: 'AbiEncodingBytesSizeMismatchError'\n  }\nexport class AbiEncodingBytesSizeMismatchError extends BaseError {\n  constructor({ expectedSize, value }: { expectedSize: number; value: Hex }) {\n    super(\n      `Size of bytes \"${value}\" (bytes${size(\n        value,\n      )}) does not match expected size (bytes${expectedSize}).`,\n      { name: 'AbiEncodingBytesSizeMismatchError' },\n    )\n  }\n}\n\nexport type AbiEncodingLengthMismatchErrorType =\n  AbiEncodingLengthMismatchError & {\n    name: 'AbiEncodingLengthMismatchError'\n  }\nexport class AbiEncodingLengthMismatchError extends BaseError {\n  constructor({\n    expectedLength,\n    givenLength,\n  }: { expectedLength: number; givenLength: number }) {\n    super(\n      [\n        'ABI encoding params/values length mismatch.',\n        `Expected length (params): ${expectedLength}`,\n        `Given length (values): ${givenLength}`,\n      ].join('\\n'),\n      { name: 'AbiEncodingLengthMismatchError' },\n    )\n  }\n}\n\nexport type AbiErrorInputsNotFoundErrorType = AbiErrorInputsNotFoundError & {\n  name: 'AbiErrorInputsNotFoundError'\n}\nexport class AbiErrorInputsNotFoundError extends BaseError {\n  constructor(errorName: string, { docsPath }: { docsPath: string }) {\n    super(\n      [\n        `Arguments (\\`args\\`) were provided to \"${errorName}\", but \"${errorName}\" on the ABI does not contain any parameters (\\`inputs\\`).`,\n        'Cannot encode error result without knowing what the parameter types are.',\n        'Make sure you are using the correct ABI and that the inputs exist on it.',\n      ].join('\\n'),\n      {\n        docsPath,\n        name: 'AbiErrorInputsNotFoundError',\n      },\n    )\n  }\n}\n\nexport type AbiErrorNotFoundErrorType = AbiErrorNotFoundError & {\n  name: 'AbiErrorNotFoundError'\n}\nexport class AbiErrorNotFoundError extends BaseError {\n  constructor(\n    errorName?: string | undefined,\n    { docsPath }: { docsPath?: string | undefined } = {},\n  ) {\n    super(\n      [\n        `Error ${errorName ? `\"${errorName}\" ` : ''}not found on ABI.`,\n        'Make sure you are using the correct ABI and that the error exists on it.',\n      ].join('\\n'),\n      {\n        docsPath,\n        name: 'AbiErrorNotFoundError',\n      },\n    )\n  }\n}\n\nexport type AbiErrorSignatureNotFoundErrorType =\n  AbiErrorSignatureNotFoundError & {\n    name: 'AbiErrorSignatureNotFoundError'\n  }\nexport class AbiErrorSignatureNotFoundError extends BaseError {\n  signature: Hex\n\n  constructor(\n    signature: Hex,\n    {\n      docsPath,\n      cause,\n    }: { docsPath: string; cause?: BaseError | Error | undefined },\n  ) {\n    super(\n      [\n        `Encoded error signature \"${signature}\" not found on 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      ].join('\\n'),\n      {\n        docsPath,\n        name: 'AbiErrorSignatureNotFoundError',\n        cause,\n      },\n    )\n    this.signature = signature\n  }\n}\n\nexport type AbiEventSignatureEmptyTopicsErrorType =\n  AbiEventSignatureEmptyTopicsError & {\n    name: 'AbiEventSignatureEmptyTopicsError'\n  }\nexport class AbiEventSignatureEmptyTopicsError extends BaseError {\n  constructor({ docsPath }: { docsPath: string }) {\n    super('Cannot extract event signature from empty topics.', {\n      docsPath,\n      name: 'AbiEventSignatureEmptyTopicsError',\n    })\n  }\n}\n\nexport type AbiEventSignatureNotFoundErrorType =\n  AbiEventSignatureNotFoundError & {\n    name: 'AbiEventSignatureNotFoundError'\n  }\nexport class AbiEventSignatureNotFoundError extends BaseError {\n  constructor(signature: Hex, { docsPath }: { docsPath: string }) {\n    super(\n      [\n        `Encoded event signature \"${signature}\" not found on ABI.`,\n        'Make sure you are using the correct ABI and that the event exists on it.',\n        `You can look up the signature here: https://4byte.sourcify.dev/?q=${signature}.`,\n      ].join('\\n'),\n      {\n        docsPath,\n        name: 'AbiEventSignatureNotFoundError',\n      },\n    )\n  }\n}\n\nexport type AbiEventNotFoundErrorType = AbiEventNotFoundError & {\n  name: 'AbiEventNotFoundError'\n}\nexport class AbiEventNotFoundError extends BaseError {\n  constructor(\n    eventName?: string | undefined,\n    { docsPath }: { docsPath?: string | undefined } = {},\n  ) {\n    super(\n      [\n        `Event ${eventName ? `\"${eventName}\" ` : ''}not found on ABI.`,\n        'Make sure you are using the correct ABI and that the event exists on it.',\n      ].join('\\n'),\n      {\n        docsPath,\n        name: 'AbiEventNotFoundError',\n      },\n    )\n  }\n}\n\nexport type AbiFunctionNotFoundErrorType = AbiFunctionNotFoundError & {\n  name: 'AbiFunctionNotFoundError'\n}\nexport class AbiFunctionNotFoundError extends BaseError {\n  constructor(\n    functionName?: string | undefined,\n    { docsPath }: { docsPath?: string | undefined } = {},\n  ) {\n    super(\n      [\n        `Function ${functionName ? `\"${functionName}\" ` : ''}not found on ABI.`,\n        'Make sure you are using the correct ABI and that the function exists on it.',\n      ].join('\\n'),\n      {\n        docsPath,\n        name: 'AbiFunctionNotFoundError',\n      },\n    )\n  }\n}\n\nexport type AbiFunctionOutputsNotFoundErrorType =\n  AbiFunctionOutputsNotFoundError & {\n    name: 'AbiFunctionOutputsNotFoundError'\n  }\nexport class AbiFunctionOutputsNotFoundError extends BaseError {\n  constructor(functionName: string, { docsPath }: { docsPath: string }) {\n    super(\n      [\n        `Function \"${functionName}\" does not contain any \\`outputs\\` on ABI.`,\n        'Cannot decode function result without knowing what the parameter types are.',\n        'Make sure you are using the correct ABI and that the function exists on it.',\n      ].join('\\n'),\n      {\n        docsPath,\n        name: 'AbiFunctionOutputsNotFoundError',\n      },\n    )\n  }\n}\n\nexport type AbiFunctionSignatureNotFoundErrorType =\n  AbiFunctionSignatureNotFoundError & {\n    name: 'AbiFunctionSignatureNotFoundError'\n  }\nexport class AbiFunctionSignatureNotFoundError extends BaseError {\n  constructor(signature: Hex, { docsPath }: { docsPath: string }) {\n    super(\n      [\n        `Encoded function signature \"${signature}\" not found on ABI.`,\n        'Make sure you are using the correct ABI and that the function exists on it.',\n        `You can look up the signature here: https://4byte.sourcify.dev/?q=${signature}.`,\n      ].join('\\n'),\n      {\n        docsPath,\n        name: 'AbiFunctionSignatureNotFoundError',\n      },\n    )\n  }\n}\n\nexport type AbiItemAmbiguityErrorType = AbiItemAmbiguityError & {\n  name: 'AbiItemAmbiguityError'\n}\nexport class AbiItemAmbiguityError extends BaseError {\n  constructor(\n    x: { abiItem: Abi[number]; type: string },\n    y: { abiItem: Abi[number]; type: string },\n  ) {\n    super('Found ambiguous types in overloaded ABI items.', {\n      metaMessages: [\n        `\\`${x.type}\\` in \\`${formatAbiItem(x.abiItem)}\\`, and`,\n        `\\`${y.type}\\` in \\`${formatAbiItem(y.abiItem)}\\``,\n        '',\n        'These types encode differently and cannot be distinguished at runtime.',\n        'Remove one of the ambiguous items in the ABI.',\n      ],\n      name: 'AbiItemAmbiguityError',\n    })\n  }\n}\n\nexport type BytesSizeMismatchErrorType = BytesSizeMismatchError & {\n  name: 'BytesSizeMismatchError'\n}\nexport class BytesSizeMismatchError extends BaseError {\n  constructor({\n    expectedSize,\n    givenSize,\n  }: { expectedSize: number; givenSize: number }) {\n    super(`Expected bytes${expectedSize}, got bytes${givenSize}.`, {\n      name: 'BytesSizeMismatchError',\n    })\n  }\n}\n\nexport type DecodeLogDataMismatchErrorType = DecodeLogDataMismatch & {\n  name: 'DecodeLogDataMismatch'\n}\nexport class DecodeLogDataMismatch extends BaseError {\n  abiItem: AbiEvent\n  data: Hex\n  params: readonly AbiParameter[]\n  size: number\n\n  constructor({\n    abiItem,\n    data,\n    params,\n    size,\n  }: {\n    abiItem: AbiEvent\n    data: Hex\n    params: readonly AbiParameter[]\n    size: number\n  }) {\n    super(\n      [\n        `Data size of ${size} bytes is too small for non-indexed event parameters.`,\n      ].join('\\n'),\n      {\n        metaMessages: [\n          `Params: (${formatAbiParams(params, { includeName: true })})`,\n          `Data:   ${data} (${size} bytes)`,\n        ],\n        name: 'DecodeLogDataMismatch',\n      },\n    )\n\n    this.abiItem = abiItem\n    this.data = data\n    this.params = params\n    this.size = size\n  }\n}\n\nexport type DecodeLogTopicsMismatchErrorType = DecodeLogTopicsMismatch & {\n  name: 'DecodeLogTopicsMismatch'\n}\nexport class DecodeLogTopicsMismatch extends BaseError {\n  abiItem: AbiEvent\n\n  constructor({\n    abiItem,\n    param,\n  }: {\n    abiItem: AbiEvent\n    param: AbiParameter & { indexed: boolean }\n  }) {\n    super(\n      [\n        `Expected a topic for indexed event parameter${\n          param.name ? ` \"${param.name}\"` : ''\n        } on event \"${formatAbiItem(abiItem, { includeName: true })}\".`,\n      ].join('\\n'),\n      { name: 'DecodeLogTopicsMismatch' },\n    )\n\n    this.abiItem = abiItem\n  }\n}\n\nexport type InvalidAbiEncodingTypeErrorType = InvalidAbiEncodingTypeError & {\n  name: 'InvalidAbiEncodingTypeError'\n}\nexport class InvalidAbiEncodingTypeError extends BaseError {\n  constructor(type: string, { docsPath }: { docsPath: string }) {\n    super(\n      [\n        `Type \"${type}\" is not a valid encoding type.`,\n        'Please provide a valid ABI type.',\n      ].join('\\n'),\n      { docsPath, name: 'InvalidAbiEncodingType' },\n    )\n  }\n}\n\nexport type InvalidAbiDecodingTypeErrorType = InvalidAbiDecodingTypeError & {\n  name: 'InvalidAbiDecodingTypeError'\n}\nexport class InvalidAbiDecodingTypeError extends BaseError {\n  constructor(type: string, { docsPath }: { docsPath: string }) {\n    super(\n      [\n        `Type \"${type}\" is not a valid decoding type.`,\n        'Please provide a valid ABI type.',\n      ].join('\\n'),\n      { docsPath, name: 'InvalidAbiDecodingType' },\n    )\n  }\n}\n\nexport type InvalidArrayErrorType = InvalidArrayError & {\n  name: 'InvalidArrayError'\n}\nexport class InvalidArrayError extends BaseError {\n  constructor(value: unknown) {\n    super([`Value \"${value}\" is not a valid array.`].join('\\n'), {\n      name: 'InvalidArrayError',\n    })\n  }\n}\n\nexport type InvalidDefinitionTypeErrorType = InvalidDefinitionTypeError & {\n  name: 'InvalidDefinitionTypeError'\n}\nexport class InvalidDefinitionTypeError extends BaseError {\n  constructor(type: string) {\n    super(\n      [\n        `\"${type}\" is not a valid definition type.`,\n        'Valid types: \"function\", \"event\", \"error\"',\n      ].join('\\n'),\n      { name: 'InvalidDefinitionTypeError' },\n    )\n  }\n}\n\nexport type UnsupportedPackedAbiTypeErrorType = UnsupportedPackedAbiType & {\n  name: 'UnsupportedPackedAbiType'\n}\nexport class UnsupportedPackedAbiType extends BaseError {\n  constructor(type: unknown) {\n    super(`Type \"${type}\" is not supported for packed encoding.`, {\n      name: 'UnsupportedPackedAbiType',\n    })\n  }\n}\n","import { BaseError } from './base.js'\n\nexport type SliceOffsetOutOfBoundsErrorType = SliceOffsetOutOfBoundsError & {\n  name: 'SliceOffsetOutOfBoundsError'\n}\nexport class SliceOffsetOutOfBoundsError extends BaseError {\n  constructor({\n    offset,\n    position,\n    size,\n  }: { offset: number; position: 'start' | 'end'; size: number }) {\n    super(\n      `Slice ${\n        position === 'start' ? 'starting' : 'ending'\n      } at offset \"${offset}\" is out-of-bounds (size: ${size}).`,\n      { name: 'SliceOffsetOutOfBoundsError' },\n    )\n  }\n}\n\nexport type SizeExceedsPaddingSizeErrorType = SizeExceedsPaddingSizeError & {\n  name: 'SizeExceedsPaddingSizeError'\n}\nexport class SizeExceedsPaddingSizeError extends BaseError {\n  constructor({\n    size,\n    targetSize,\n    type,\n  }: {\n    size: number\n    targetSize: number\n    type: 'hex' | 'bytes'\n  }) {\n    super(\n      `${type.charAt(0).toUpperCase()}${type\n        .slice(1)\n        .toLowerCase()} size (${size}) exceeds padding size (${targetSize}).`,\n      { name: 'SizeExceedsPaddingSizeError' },\n    )\n  }\n}\n\nexport type InvalidBytesLengthErrorType = InvalidBytesLengthError & {\n  name: 'InvalidBytesLengthError'\n}\nexport class InvalidBytesLengthError extends BaseError {\n  constructor({\n    size,\n    targetSize,\n    type,\n  }: {\n    size: number\n    targetSize: number\n    type: 'hex' | 'bytes'\n  }) {\n    super(\n      `${type.charAt(0).toUpperCase()}${type\n        .slice(1)\n        .toLowerCase()} is expected to be ${targetSize} ${type} long, but is ${size} ${type} long.`,\n      { name: 'InvalidBytesLengthError' },\n    )\n  }\n}\n","import {\n  SizeExceedsPaddingSizeError,\n  type SizeExceedsPaddingSizeErrorType,\n} from '../../errors/data.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\ntype PadOptions = {\n  dir?: 'left' | 'right' | undefined\n  size?: number | null | undefined\n}\nexport type PadReturnType<value extends ByteArray | Hex> = value extends Hex\n  ? Hex\n  : ByteArray\n\nexport type PadErrorType = PadHexErrorType | PadBytesErrorType | ErrorType\n\nexport function pad<value extends ByteArray | Hex>(\n  hexOrBytes: value,\n  { dir, size = 32 }: PadOptions = {},\n): PadReturnType<value> {\n  if (typeof hexOrBytes === 'string')\n    return padHex(hexOrBytes, { dir, size }) as PadReturnType<value>\n  return padBytes(hexOrBytes, { dir, size }) as PadReturnType<value>\n}\n\nexport type PadHexErrorType = SizeExceedsPaddingSizeErrorType | ErrorType\n\nexport function padHex(hex_: Hex, { dir, size = 32 }: PadOptions = {}) {\n  if (size === null) return hex_\n  const hex = hex_.replace('0x', '')\n  if (hex.length > size * 2)\n    throw new SizeExceedsPaddingSizeError({\n      size: Math.ceil(hex.length / 2),\n      targetSize: size,\n      type: 'hex',\n    })\n\n  return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](\n    size * 2,\n    '0',\n  )}` as Hex\n}\n\nexport type PadBytesErrorType = SizeExceedsPaddingSizeErrorType | ErrorType\n\nexport function padBytes(\n  bytes: ByteArray,\n  { dir, size = 32 }: PadOptions = {},\n) {\n  if (size === null) return bytes\n  if (bytes.length > size)\n    throw new SizeExceedsPaddingSizeError({\n      size: bytes.length,\n      targetSize: size,\n      type: 'bytes',\n    })\n  const paddedBytes = new Uint8Array(size)\n  for (let i = 0; i < size; i++) {\n    const padEnd = dir === 'right'\n    paddedBytes[padEnd ? i : size - i - 1] =\n      bytes[padEnd ? i : bytes.length - i - 1]\n  }\n  return paddedBytes\n}\n","import type { ByteArray, Hex } from '../types/misc.js'\n\nimport { BaseError } from './base.js'\n\nexport type IntegerOutOfRangeErrorType = IntegerOutOfRangeError & {\n  name: 'IntegerOutOfRangeError'\n}\nexport class IntegerOutOfRangeError extends BaseError {\n  constructor({\n    max,\n    min,\n    signed,\n    size,\n    value,\n  }: {\n    max?: string | undefined\n    min: string\n    signed?: boolean | undefined\n    size?: number | undefined\n    value: string\n  }) {\n    super(\n      `Number \"${value}\" is not in safe ${\n        size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''\n      }integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`,\n      { name: 'IntegerOutOfRangeError' },\n    )\n  }\n}\n\nexport type InvalidBytesBooleanErrorType = InvalidBytesBooleanError & {\n  name: 'InvalidBytesBooleanError'\n}\nexport class InvalidBytesBooleanError extends BaseError {\n  constructor(bytes: ByteArray) {\n    super(\n      `Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,\n      {\n        name: 'InvalidBytesBooleanError',\n      },\n    )\n  }\n}\n\nexport type InvalidHexBooleanErrorType = InvalidHexBooleanError & {\n  name: 'InvalidHexBooleanError'\n}\nexport class InvalidHexBooleanError extends BaseError {\n  constructor(hex: Hex) {\n    super(\n      `Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`,\n      { name: 'InvalidHexBooleanError' },\n    )\n  }\n}\n\nexport type InvalidHexValueErrorType = InvalidHexValueError & {\n  name: 'InvalidHexValueError'\n}\nexport class InvalidHexValueError extends BaseError {\n  constructor(value: Hex) {\n    super(\n      `Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`,\n      { name: 'InvalidHexValueError' },\n    )\n  }\n}\n\nexport type SizeOverflowErrorType = SizeOverflowError & {\n  name: 'SizeOverflowError'\n}\nexport class SizeOverflowError extends BaseError {\n  constructor({ givenSize, maxSize }: { givenSize: number; maxSize: number }) {\n    super(\n      `Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`,\n      { name: 'SizeOverflowError' },\n    )\n  }\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\ntype TrimOptions = {\n  dir?: 'left' | 'right' | undefined\n}\nexport type TrimReturnType<value extends ByteArray | Hex> = value extends Hex\n  ? Hex\n  : ByteArray\n\nexport type TrimErrorType = ErrorType\n\nexport function trim<value extends ByteArray | Hex>(\n  hexOrBytes: value,\n  { dir = 'left' }: TrimOptions = {},\n): TrimReturnType<value> {\n  let data: any =\n    typeof hexOrBytes === 'string' ? hexOrBytes.replace('0x', '') : hexOrBytes\n\n  let sliceLength = 0\n  for (let i = 0; i < data.length - 1; i++) {\n    if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n      sliceLength++\n    else break\n  }\n  data =\n    dir === 'left'\n      ? data.slice(sliceLength)\n      : data.slice(0, data.length - sliceLength)\n\n  if (typeof hexOrBytes === 'string') {\n    if (data.length === 1 && dir === 'right') data = `${data}0`\n    return `0x${\n      data.length % 2 === 1 ? `0${data}` : data\n    }` as TrimReturnType<value>\n  }\n  return data as TrimReturnType<value>\n}\n","import {\n  IntegerOutOfRangeError,\n  type IntegerOutOfRangeErrorType,\n  InvalidHexBooleanError,\n  type InvalidHexBooleanErrorType,\n  SizeOverflowError,\n  type SizeOverflowErrorType,\n} from '../../errors/encoding.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type SizeErrorType, size as size_ } from '../data/size.js'\nimport { type TrimErrorType, trim } from '../data/trim.js'\n\nimport { type HexToBytesErrorType, hexToBytes } from './toBytes.js'\n\nexport type AssertSizeErrorType =\n  | SizeOverflowErrorType\n  | SizeErrorType\n  | ErrorType\n\nexport function assertSize(\n  hexOrBytes: Hex | ByteArray,\n  { size }: { size: number },\n): void {\n  if (size_(hexOrBytes) > size)\n    throw new SizeOverflowError({\n      givenSize: size_(hexOrBytes),\n      maxSize: size,\n    })\n}\n\nexport type FromHexParameters<\n  to extends 'string' | 'bigint' | 'number' | 'bytes' | 'boolean',\n> =\n  | to\n  | {\n      /** Size (in bytes) of the hex value. */\n      size?: number | undefined\n      /** Type to convert to. */\n      to: to\n    }\n\nexport type FromHexReturnType<to> = to extends 'string'\n  ? string\n  : to extends 'bigint'\n    ? bigint\n    : to extends 'number'\n      ? number\n      : to extends 'bytes'\n        ? ByteArray\n        : to extends 'boolean'\n          ? boolean\n          : never\n\nexport type FromHexErrorType =\n  | HexToNumberErrorType\n  | HexToBigIntErrorType\n  | HexToBoolErrorType\n  | HexToStringErrorType\n  | HexToBytesErrorType\n  | ErrorType\n\n/**\n * Decodes a hex string into a string, number, bigint, boolean, or byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex\n * - Example: https://viem.sh/docs/utilities/fromHex#usage\n *\n * @param hex Hex string to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x1a4', 'number')\n * // 420\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')\n * // 'Hello world'\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n *   size: 32,\n *   to: 'string'\n * })\n * // 'Hello world'\n */\nexport function fromHex<\n  to extends 'string' | 'bigint' | 'number' | 'bytes' | 'boolean',\n>(hex: Hex, toOrOpts: FromHexParameters<to>): FromHexReturnType<to> {\n  const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts\n  const to = opts.to\n\n  if (to === 'number') return hexToNumber(hex, opts) as FromHexReturnType<to>\n  if (to === 'bigint') return hexToBigInt(hex, opts) as FromHexReturnType<to>\n  if (to === 'string') return hexToString(hex, opts) as FromHexReturnType<to>\n  if (to === 'boolean') return hexToBool(hex, opts) as FromHexReturnType<to>\n  return hexToBytes(hex, opts) as FromHexReturnType<to>\n}\n\nexport type HexToBigIntOpts = {\n  /** Whether or not the number of a signed representation. */\n  signed?: boolean | undefined\n  /** Size (in bytes) of the hex value. */\n  size?: number | undefined\n}\n\nexport type HexToBigIntErrorType = AssertSizeErrorType | ErrorType\n\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobigint\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x1a4', { signed: true })\n * // 420n\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420n\n */\nexport function hexToBigInt(hex: Hex, opts: HexToBigIntOpts = {}): bigint {\n  const { signed } = opts\n\n  if (opts.size) assertSize(hex, { size: opts.size })\n\n  const value = BigInt(hex)\n  if (!signed) return value\n\n  const size = (hex.length - 2) / 2\n  const max = (1n << (BigInt(size) * 8n - 1n)) - 1n\n  if (value <= max) return value\n\n  return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n\n}\n\nexport type HexToBoolOpts = {\n  /** Size (in bytes) of the hex value. */\n  size?: number | undefined\n}\n\nexport type HexToBoolErrorType =\n  | AssertSizeErrorType\n  | InvalidHexBooleanErrorType\n  | TrimErrorType\n  | ErrorType\n\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobool\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x01')\n * // true\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // true\n */\nexport function hexToBool(hex_: Hex, opts: HexToBoolOpts = {}): boolean {\n  let hex = hex_\n  if (opts.size) {\n    assertSize(hex, { size: opts.size })\n    hex = trim(hex)\n  }\n  if (trim(hex) === '0x00') return false\n  if (trim(hex) === '0x01') return true\n  throw new InvalidHexBooleanError(hex)\n}\n\nexport type HexToNumberOpts = HexToBigIntOpts\n\nexport type HexToNumberErrorType =\n  | HexToBigIntErrorType\n  | IntegerOutOfRangeErrorType\n  | ErrorType\n\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextonumber\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x1a4')\n * // 420\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex: Hex, opts: HexToNumberOpts = {}): number {\n  const value = hexToBigInt(hex, opts)\n  const number = Number(value)\n  if (!Number.isSafeInteger(number))\n    throw new IntegerOutOfRangeError({\n      max: `${Number.MAX_SAFE_INTEGER}`,\n      min: `${Number.MIN_SAFE_INTEGER}`,\n      signed: opts.signed,\n      size: opts.size,\n      value: `${value}n`,\n    })\n  return number\n}\n\nexport type HexToStringOpts = {\n  /** Size (in bytes) of the hex value. */\n  size?: number | undefined\n}\n\nexport type HexToStringErrorType =\n  | AssertSizeErrorType\n  | HexToBytesErrorType\n  | TrimErrorType\n  | ErrorType\n\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextostring\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c6421')\n * // 'Hello world!'\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n *  size: 32,\n * })\n * // 'Hello world'\n */\nexport function hexToString(hex: Hex, opts: HexToStringOpts = {}): string {\n  let bytes = hexToBytes(hex)\n  if (opts.size) {\n    assertSize(bytes, { size: opts.size })\n    bytes = trim(bytes, { dir: 'right' })\n  }\n  return new TextDecoder().decode(bytes)\n}\n","import {\n  IntegerOutOfRangeError,\n  type IntegerOutOfRangeErrorType,\n} from '../../errors/encoding.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type PadErrorType, pad } from '../data/pad.js'\n\nimport { type AssertSizeErrorType, assertSize } from './fromHex.js'\n\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) =>\n  i.toString(16).padStart(2, '0'),\n)\n\nexport type ToHexParameters = {\n  /** The size (in bytes) of the output hex value. */\n  size?: number | undefined\n}\n\nexport type ToHexErrorType =\n  | BoolToHexErrorType\n  | BytesToHexErrorType\n  | NumberToHexErrorType\n  | StringToHexErrorType\n  | ErrorType\n\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex\n * - Example: https://viem.sh/docs/utilities/toHex#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world')\n * // '0x48656c6c6f20776f726c6421'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex(420)\n * // '0x1a4'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world', { size: 32 })\n * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'\n */\nexport function toHex(\n  value: string | number | bigint | boolean | ByteArray,\n  opts: ToHexParameters = {},\n): Hex {\n  if (typeof value === 'number' || typeof value === 'bigint')\n    return numberToHex(value, opts)\n  if (typeof value === 'string') {\n    return stringToHex(value, opts)\n  }\n  if (typeof value === 'boolean') return boolToHex(value, opts)\n  return bytesToHex(value, opts)\n}\n\nexport type BoolToHexOpts = {\n  /** The size (in bytes) of the output hex value. */\n  size?: number | undefined\n}\n\nexport type BoolToHexErrorType = AssertSizeErrorType | PadErrorType | ErrorType\n\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#booltohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true)\n * // '0x1'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(false)\n * // '0x0'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true, { size: 32 })\n * // '0x0000000000000000000000000000000000000000000000000000000000000001'\n */\nexport function boolToHex(value: boolean, opts: BoolToHexOpts = {}): Hex {\n  const hex: Hex = `0x${Number(value)}`\n  if (typeof opts.size === 'number') {\n    assertSize(hex, { size: opts.size })\n    return pad(hex, { size: opts.size })\n  }\n  return hex\n}\n\nexport type BytesToHexOpts = {\n  /** The size (in bytes) of the output hex value. */\n  size?: number | undefined\n}\n\nexport type BytesToHexErrorType = AssertSizeErrorType | PadErrorType | ErrorType\n\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#bytestohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function bytesToHex(value: ByteArray, opts: BytesToHexOpts = {}): Hex {\n  let string = ''\n  for (let i = 0; i < value.length; i++) {\n    string += hexes[value[i]]\n  }\n  const hex = `0x${string}` as const\n\n  if (typeof opts.size === 'number') {\n    assertSize(hex, { size: opts.size })\n    return pad(hex, { dir: 'right', size: opts.size })\n  }\n  return hex\n}\n\nexport type NumberToHexOpts =\n  | {\n      /** Whether or not the number of a signed representation. */\n      signed?: boolean | undefined\n      /** The size (in bytes) of the output hex value. */\n      size: number\n    }\n  | {\n      signed?: undefined\n      /** The size (in bytes) of the output hex value. */\n      size?: number | undefined\n    }\n\nexport type NumberToHexErrorType =\n  | IntegerOutOfRangeErrorType\n  | PadErrorType\n  | ErrorType\n\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#numbertohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420)\n * // '0x1a4'\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420, { size: 32 })\n * // '0x00000000000000000000000000000000000000000000000000000000000001a4'\n */\nexport function numberToHex(\n  value_: number | bigint,\n  opts: NumberToHexOpts = {},\n): Hex {\n  const { signed, size } = opts\n\n  const value = BigInt(value_)\n\n  let maxValue: bigint | number | undefined\n  if (size) {\n    if (signed) maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n\n    else maxValue = 2n ** (BigInt(size) * 8n) - 1n\n  } else if (typeof value_ === 'number') {\n    maxValue = BigInt(Number.MAX_SAFE_INTEGER)\n  }\n\n  const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0\n\n  if ((maxValue && value > maxValue) || value < minValue) {\n    const suffix = typeof value_ === 'bigint' ? 'n' : ''\n    throw new IntegerOutOfRangeError({\n      max: maxValue ? `${maxValue}${suffix}` : undefined,\n      min: `${minValue}${suffix}`,\n      signed,\n      size,\n      value: `${value_}${suffix}`,\n    })\n  }\n\n  const hex = `0x${(\n    signed && value < 0 ? (1n << BigInt(size * 8)) + BigInt(value) : value\n  ).toString(16)}` as Hex\n  if (size) return pad(hex, { size }) as Hex\n  return hex\n}\n\nexport type StringToHexOpts = {\n  /** The size (in bytes) of the output hex value. */\n  size?: number | undefined\n}\n\nexport type StringToHexErrorType = BytesToHexErrorType | ErrorType\n\nconst encoder = /*#__PURE__*/ new TextEncoder()\n\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#stringtohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function stringToHex(value_: string, opts: StringToHexOpts = {}): Hex {\n  const value = encoder.encode(value_)\n  return bytesToHex(value, opts)\n}\n","import { BaseError } from '../../errors/base.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type IsHexErrorType, isHex } from '../data/isHex.js'\nimport { type PadErrorType, pad } from '../data/pad.js'\n\nimport { type AssertSizeErrorType, assertSize } from './fromHex.js'\nimport {\n  type NumberToHexErrorType,\n  type NumberToHexOpts,\n  numberToHex,\n} from './toHex.js'\n\nconst encoder = /*#__PURE__*/ new TextEncoder()\n\nexport type ToBytesParameters = {\n  /** Size of the output bytes. */\n  size?: number | undefined\n}\n\nexport type ToBytesErrorType =\n  | NumberToBytesErrorType\n  | BoolToBytesErrorType\n  | HexToBytesErrorType\n  | StringToBytesErrorType\n  | IsHexErrorType\n  | ErrorType\n\n/**\n * Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes\n * - Example: https://viem.sh/docs/utilities/toBytes#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes('Hello world')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function toBytes(\n  value: string | bigint | number | boolean | Hex,\n  opts: ToBytesParameters = {},\n): ByteArray {\n  if (typeof value === 'number' || typeof value === 'bigint')\n    return numberToBytes(value, opts)\n  if (typeof value === 'boolean') return boolToBytes(value, opts)\n  if (isHex(value)) return hexToBytes(value, opts)\n  return stringToBytes(value, opts)\n}\n\nexport type BoolToBytesOpts = {\n  /** Size of the output bytes. */\n  size?: number | undefined\n}\n\nexport type BoolToBytesErrorType =\n  | AssertSizeErrorType\n  | PadErrorType\n  | ErrorType\n\n/**\n * Encodes a boolean into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#booltobytes\n *\n * @param value Boolean value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true)\n * // Uint8Array([1])\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true, { size: 32 })\n * // Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n */\nexport function boolToBytes(value: boolean, opts: BoolToBytesOpts = {}) {\n  const bytes = new Uint8Array(1)\n  bytes[0] = Number(value)\n  if (typeof opts.size === 'number') {\n    assertSize(bytes, { size: opts.size })\n    return pad(bytes, { size: opts.size })\n  }\n  return bytes\n}\n\n// We use very optimized technique to convert hex string to byte array\nconst charCodeMap = {\n  zero: 48,\n  nine: 57,\n  A: 65,\n  F: 70,\n  a: 97,\n  f: 102,\n} as const\n\nfunction charCodeToBase16(char: number) {\n  if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n    return char - charCodeMap.zero\n  if (char >= charCodeMap.A && char <= charCodeMap.F)\n    return char - (charCodeMap.A - 10)\n  if (char >= charCodeMap.a && char <= charCodeMap.f)\n    return char - (charCodeMap.a - 10)\n  return undefined\n}\n\nexport type HexToBytesOpts = {\n  /** Size of the output bytes. */\n  size?: number | undefined\n}\n\nexport type HexToBytesErrorType = AssertSizeErrorType | PadErrorType | ErrorType\n\n/**\n * Encodes a hex string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#hextobytes\n *\n * @param hex Hex string to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function hexToBytes(hex_: Hex, opts: HexToBytesOpts = {}): ByteArray {\n  let hex = hex_\n  if (opts.size) {\n    assertSize(hex, { size: opts.size })\n    hex = pad(hex, { dir: 'right', size: opts.size })\n  }\n\n  let hexString = hex.slice(2) as string\n  if (hexString.length % 2) hexString = `0${hexString}`\n\n  const length = hexString.length / 2\n  const bytes = new Uint8Array(length)\n  for (let index = 0, j = 0; index < length; index++) {\n    const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++))\n    const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++))\n    if (nibbleLeft === undefined || nibbleRight === undefined) {\n      throw new BaseError(\n        `Invalid byte sequence (\"${hexString[j - 2]}${\n          hexString[j - 1]\n        }\" in \"${hexString}\").`,\n      )\n    }\n    bytes[index] = nibbleLeft * 16 + nibbleRight\n  }\n  return bytes\n}\n\nexport type NumberToBytesErrorType =\n  | NumberToHexErrorType\n  | HexToBytesErrorType\n  | ErrorType\n\n/**\n * Encodes a number into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#numbertobytes\n *\n * @param value Number to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function numberToBytes(\n  value: bigint | number,\n  opts?: NumberToHexOpts | undefined,\n) {\n  const hex = numberToHex(value, opts)\n  return hexToBytes(hex)\n}\n\nexport type StringToBytesOpts = {\n  /** Size of the output bytes. */\n  size?: number | undefined\n}\n\nexport type StringToBytesErrorType =\n  | AssertSizeErrorType\n  | PadErrorType\n  | ErrorType\n\n/**\n * Encodes a UTF-8 string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#stringtobytes\n *\n * @param value String to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function stringToBytes(\n  value: string,\n  opts: StringToBytesOpts = {},\n): ByteArray {\n  const bytes = encoder.encode(value)\n  if (typeof opts.size === 'number') {\n    assertSize(bytes, { size: opts.size })\n    return pad(bytes, { dir: 'right', size: opts.size })\n  }\n  return bytes\n}\n","/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n\nfunction fromBig(\n  n: bigint,\n  le = false\n): {\n  h: number;\n  l: number;\n} {\n  if (le) return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n  return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\n\nfunction split(lst: bigint[], le = false): Uint32Array[] {\n  const len = lst.length;\n  let Ah = new Uint32Array(len);\n  let Al = new Uint32Array(len);\n  for (let i = 0; i < len; i++) {\n    const { h, l } = fromBig(lst[i], le);\n    [Ah[i], Al[i]] = [h, l];\n  }\n  return [Ah, Al];\n}\n\nconst toBig = (h: number, l: number): bigint => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h: number, _l: number, s: number): number => h >>> s;\nconst shrSL = (h: number, l: number, s: number): number => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h: number, l: number, s: number): number => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h: number, l: number, s: number): number => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h: number, l: number, s: number): number => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h: number, l: number, s: number): number => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h: number, l: number): number => l;\nconst rotr32L = (h: number, _l: number): number => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h: number, l: number, s: number): number => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h: number, l: number, s: number): number => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h: number, l: number, s: number): number => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h: number, l: number, s: number): number => (h << (s - 32)) | (l >>> (64 - s));\n\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(\n  Ah: number,\n  Al: number,\n  Bh: number,\n  Bl: number\n): {\n  h: number;\n  l: number;\n} {\n  const l = (Al >>> 0) + (Bl >>> 0);\n  return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al: number, Bl: number, Cl: number): number => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low: number, Ah: number, Bh: number, Ch: number): number =>\n  (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al: number, Bl: number, Cl: number, Dl: number): number =>\n  (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number): number =>\n  (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al: number, Bl: number, Cl: number, Dl: number, El: number): number =>\n  (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number): number =>\n  (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n\n// prettier-ignore\nexport {\n  add, add3H, add3L, add4H, add4L, add5H, add5L, fromBig, rotlBH, rotlBL, rotlSH, rotlSL, rotr32H, rotr32L, rotrBH, rotrBL, rotrSH, rotrSL, shrSH, shrSL, split, toBig\n};\n// prettier-ignore\nconst u64: { fromBig: typeof fromBig; split: typeof split; toBig: (h: number, l: number) => bigint; shrSH: (h: number, _l: number, s: number) => number; shrSL: (h: number, l: number, s: number) => number; rotrSH: (h: number, l: number, s: number) => number; rotrSL: (h: number, l: number, s: number) => number; rotrBH: (h: number, l: number, s: number) => number; rotrBL: (h: number, l: number, s: number) => number; rotr32H: (_h: number, l: number) => number; rotr32L: (h: number, _l: number) => number; rotlSH: (h: number, l: number, s: number) => number; rotlSL: (h: number, l: number, s: number) => number; rotlBH: (h: number, l: number, s: number) => number; rotlBL: (h: number, l: number, s: number) => number; add: typeof add; add3L: (Al: number, Bl: number, Cl: number) => number; add3H: (low: number, Ah: number, Bh: number, Ch: number) => number; add4L: (Al: number, Bl: number, Cl: number, Dl: number) => number; add4H: (low: number, Ah: number, Bh: number, Ch: number, Dh: number) => number; add5H: (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number) => number; add5L: (Al: number, Bl: number, Cl: number, Dl: number, El: number) => number; } = {\n  fromBig, split, toBig,\n  shrSH, shrSL,\n  rotrSH, rotrSL, rotrBH, rotrBL,\n  rotr32H, rotr32L,\n  rotlSH, rotlSL, rotlBH, rotlBL,\n  add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n","/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nexport function isBytes(a: unknown): a is Uint8Array {\n  return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n\n/** Asserts something is positive integer. */\nexport function anumber(n: number): void {\n  if (!Number.isSafeInteger(n) || n < 0) throw new Error('positive integer expected, got ' + n);\n}\n\n/** Asserts something is Uint8Array. */\nexport function abytes(b: Uint8Array | undefined, ...lengths: number[]): void {\n  if (!isBytes(b)) throw new Error('Uint8Array expected');\n  if (lengths.length > 0 && !lengths.includes(b.length))\n    throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n\n/** Asserts something is hash */\nexport function ahash(h: IHash): void {\n  if (typeof h !== 'function' || typeof h.create !== 'function')\n    throw new Error('Hash should be wrapped by utils.createHasher');\n  anumber(h.outputLen);\n  anumber(h.blockLen);\n}\n\n/** Asserts a hash instance has not been destroyed / finished */\nexport function aexists(instance: any, checkFinished = true): void {\n  if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n  if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\n\n/** Asserts output is properly-sized byte array */\nexport function aoutput(out: any, instance: any): void {\n  abytes(out);\n  const min = instance.outputLen;\n  if (out.length < min) {\n    throw new Error('digestInto() expects output buffer of length at least ' + min);\n  }\n}\n\n/** Generic type encompassing 8/16/32-byte arrays - but not 64-byte. */\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n  Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n/** Cast u8 / u16 / u32 to u8. */\nexport function u8(arr: TypedArray): Uint8Array {\n  return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n\n/** Cast u8 / u16 / u32 to u32. */\nexport function u32(arr: TypedArray): Uint32Array {\n  return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nexport function clean(...arrays: TypedArray[]): void {\n  for (let i = 0; i < arrays.length; i++) {\n    arrays[i].fill(0);\n  }\n}\n\n/** Create DataView of an array for easy byte-level manipulation. */\nexport function createView(arr: TypedArray): DataView {\n  return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word: number, shift: number): number {\n  return (word << (32 - shift)) | (word >>> shift);\n}\n\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word: number, shift: number): number {\n  return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE: boolean = /* @__PURE__ */ (() =>\n  new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n\n/** The byte swap operation for uint32 */\nexport function byteSwap(word: number): number {\n  return (\n    ((word << 24) & 0xff000000) |\n    ((word << 8) & 0xff0000) |\n    ((word >>> 8) & 0xff00) |\n    ((word >>> 24) & 0xff)\n  );\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const swap8IfBE: (n: number) => number = isLE\n  ? (n: number) => n\n  : (n: number) => byteSwap(n);\n\n/** @deprecated */\nexport const byteSwapIfBE: typeof swap8IfBE = swap8IfBE;\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr: Uint32Array): Uint32Array {\n  for (let i = 0; i < arr.length; i++) {\n    arr[i] = byteSwap(arr[i]);\n  }\n  return arr;\n}\n\nexport const swap32IfBE: (u: Uint32Array) => Uint32Array = isLE\n  ? (u: Uint32Array) => u\n  : byteSwap32;\n\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin: boolean = /* @__PURE__ */ (() =>\n  // @ts-ignore\n  typeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n  i.toString(16).padStart(2, '0')\n);\n\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n  abytes(bytes);\n  // @ts-ignore\n  if (hasHexBuiltin) return bytes.toHex();\n  // pre-caching improves the speed 6x\n  let hex = '';\n  for (let i = 0; i < bytes.length; i++) {\n    hex += hexes[bytes[i]];\n  }\n  return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 } as const;\nfunction asciiToBase16(ch: number): number | undefined {\n  if (ch >= asciis._0 && ch <= asciis._9) return ch - asciis._0; // '2' => 50-48\n  if (ch >= asciis.A && ch <= asciis.F) return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n  if (ch >= asciis.a && ch <= asciis.f) return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n  return;\n}\n\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n  if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n  // @ts-ignore\n  if (hasHexBuiltin) return Uint8Array.fromHex(hex);\n  const hl = hex.length;\n  const al = hl / 2;\n  if (hl % 2) throw new Error('hex string expected, got unpadded hex of length ' + hl);\n  const array = new Uint8Array(al);\n  for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n    const n1 = asciiToBase16(hex.charCodeAt(hi));\n    const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n    if (n1 === undefined || n2 === undefined) {\n      const char = hex[hi] + hex[hi + 1];\n      throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n    }\n    array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n  }\n  return array;\n}\n\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nexport const nextTick = async (): Promise<void> => {};\n\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nexport async function asyncLoop(\n  iters: number,\n  tick: number,\n  cb: (i: number) => void\n): Promise<void> {\n  let ts = Date.now();\n  for (let i = 0; i < iters; i++) {\n    cb(i);\n    // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n    const diff = Date.now() - ts;\n    if (diff >= 0 && diff < tick) continue;\n    await nextTick();\n    ts += diff;\n  }\n}\n\n// Global symbols, but ts doesn't see them: https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\ndeclare const TextDecoder: any;\n\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n  if (typeof str !== 'string') throw new Error('string expected');\n  return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes: Uint8Array): string {\n  return new TextDecoder().decode(bytes);\n}\n\n/** Accepted input of hash functions. Strings are converted to byte arrays. */\nexport type Input = string | Uint8Array;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n  if (typeof data === 'string') data = utf8ToBytes(data);\n  abytes(data);\n  return data;\n}\n\n/** KDFs can accept string or Uint8Array for user convenience. */\nexport type KDFInput = string | Uint8Array;\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nexport function kdfInputToBytes(data: KDFInput): Uint8Array {\n  if (typeof data === 'string') data = utf8ToBytes(data);\n  abytes(data);\n  return data;\n}\n\n/** Copies several Uint8Arrays into one. */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n  let sum = 0;\n  for (let i = 0; i < arrays.length; i++) {\n    const a = arrays[i];\n    abytes(a);\n    sum += a.length;\n  }\n  const res = new Uint8Array(sum);\n  for (let i = 0, pad = 0; i < arrays.length; i++) {\n    const a = arrays[i];\n    res.set(a, pad);\n    pad += a.length;\n  }\n  return res;\n}\n\ntype EmptyObj = {};\nexport function checkOpts<T1 extends EmptyObj, T2 extends EmptyObj>(\n  defaults: T1,\n  opts?: T2\n): T1 & T2 {\n  if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n    throw new Error('options should be object or undefined');\n  const merged = Object.assign(defaults, opts);\n  return merged as T1 & T2;\n}\n\n/** Hash interface. */\nexport type IHash = {\n  (data: Uint8Array): Uint8Array;\n  blockLen: number;\n  outputLen: number;\n  create: any;\n};\n\n/** For runtime check if class implements interface */\nexport abstract class Hash<T extends Hash<T>> {\n  abstract blockLen: number; // Bytes per block\n  abstract outputLen: number; // Bytes in output\n  abstract update(buf: Input): this;\n  // Writes digest into buf\n  abstract digestInto(buf: Uint8Array): void;\n  abstract digest(): Uint8Array;\n  /**\n   * Resets internal state. Makes Hash instance unusable.\n   * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n   * by user, they will need to manually call `destroy()` when zeroing is necessary.\n   */\n  abstract destroy(): void;\n  /**\n   * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n   * when no options are passed.\n   * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n   * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n   * There are no guarantees for clean-up because it's impossible in JS.\n   */\n  abstract _cloneInto(to?: T): T;\n  // Safe version that clones internal state\n  abstract clone(): T;\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF<T extends Hash<T>> = Hash<T> & {\n  xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n  xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\n/** Hash function */\nexport type CHash = ReturnType<typeof createHasher>;\n/** Hash function with output */\nexport type CHashO = ReturnType<typeof createOptHasher>;\n/** XOF with output */\nexport type CHashXO = ReturnType<typeof createXOFer>;\n\n/** Wraps hash function, creating an interface on top of it */\nexport function createHasher<T extends Hash<T>>(\n  hashCons: () => Hash<T>\n): {\n  (msg: Input): Uint8Array;\n  outputLen: number;\n  blockLen: number;\n  create(): Hash<T>;\n} {\n  const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n  const tmp = hashCons();\n  hashC.outputLen = tmp.outputLen;\n  hashC.blockLen = tmp.blockLen;\n  hashC.create = () => hashCons();\n  return hashC;\n}\n\nexport function createOptHasher<H extends Hash<H>, T extends Object>(\n  hashCons: (opts?: T) => Hash<H>\n): {\n  (msg: Input, opts?: T): Uint8Array;\n  outputLen: number;\n  blockLen: number;\n  create(opts?: T): Hash<H>;\n} {\n  const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n  const tmp = hashCons({} as T);\n  hashC.outputLen = tmp.outputLen;\n  hashC.blockLen = tmp.blockLen;\n  hashC.create = (opts?: T) => hashCons(opts);\n  return hashC;\n}\n\nexport function createXOFer<H extends HashXOF<H>, T extends Object>(\n  hashCons: (opts?: T) => HashXOF<H>\n): {\n  (msg: Input, opts?: T): Uint8Array;\n  outputLen: number;\n  blockLen: number;\n  create(opts?: T): HashXOF<H>;\n} {\n  const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n  const tmp = hashCons({} as T);\n  hashC.outputLen = tmp.outputLen;\n  hashC.blockLen = tmp.blockLen;\n  hashC.create = (opts?: T) => hashCons(opts);\n  return hashC;\n}\nexport const wrapConstructor: typeof createHasher = createHasher;\nexport const wrapConstructorWithOpts: typeof createOptHasher = createOptHasher;\nexport const wrapXOFConstructorWithOpts: typeof createXOFer = createXOFer;\n\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n  if (crypto && typeof crypto.getRandomValues === 'function') {\n    return crypto.getRandomValues(new Uint8Array(bytesLength));\n  }\n  // Legacy Node.js compatibility\n  if (crypto && typeof crypto.randomBytes === 'function') {\n    return Uint8Array.from(crypto.randomBytes(bytesLength));\n  }\n  throw new Error('crypto.getRandomValues must be defined');\n}\n","/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.ts';\n// prettier-ignore\nimport {\n  abytes, aexists, anumber, aoutput,\n  clean, createHasher, createXOFer, Hash,\n  swap32IfBE,\n  toBytes, u32,\n  type CHash, type CHashXO, type HashXOF, type Input\n} from './utils.ts';\n\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI: number[] = [];\nconst SHA3_ROTL: number[] = [];\nconst _SHA3_IOTA: bigint[] = [];\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n  // Pi\n  [x, y] = [y, (2 * x + 3 * y) % 5];\n  SHA3_PI.push(2 * (5 * y + x));\n  // Rotational\n  SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n  // Iota\n  let t = _0n;\n  for (let j = 0; j < 7; j++) {\n    R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n    if (R & _2n) t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n  }\n  _SHA3_IOTA.push(t);\n}\nconst IOTAS = split(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\n\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h: number, l: number, s: number) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h: number, l: number, s: number) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nexport function keccakP(s: Uint32Array, rounds: number = 24): void {\n  const B = new Uint32Array(5 * 2);\n  // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n  for (let round = 24 - rounds; round < 24; round++) {\n    // Theta θ\n    for (let x = 0; x < 10; x++) B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n    for (let x = 0; x < 10; x += 2) {\n      const idx1 = (x + 8) % 10;\n      const idx0 = (x + 2) % 10;\n      const B0 = B[idx0];\n      const B1 = B[idx0 + 1];\n      const Th = rotlH(B0, B1, 1) ^ B[idx1];\n      const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n      for (let y = 0; y < 50; y += 10) {\n        s[x + y] ^= Th;\n        s[x + y + 1] ^= Tl;\n      }\n    }\n    // Rho (ρ) and Pi (π)\n    let curH = s[2];\n    let curL = s[3];\n    for (let t = 0; t < 24; t++) {\n      const shift = SHA3_ROTL[t];\n      const Th = rotlH(curH, curL, shift);\n      const Tl = rotlL(curH, curL, shift);\n      const PI = SHA3_PI[t];\n      curH = s[PI];\n      curL = s[PI + 1];\n      s[PI] = Th;\n      s[PI + 1] = Tl;\n    }\n    // Chi (χ)\n    for (let y = 0; y < 50; y += 10) {\n      for (let x = 0; x < 10; x++) B[x] = s[y + x];\n      for (let x = 0; x < 10; x++) s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n    }\n    // Iota (ι)\n    s[0] ^= SHA3_IOTA_H[round];\n    s[1] ^= SHA3_IOTA_L[round];\n  }\n  clean(B);\n}\n\n/** Keccak sponge function. */\nexport class Keccak extends Hash<Keccak> implements HashXOF<Keccak> {\n  protected state: Uint8Array;\n  protected pos = 0;\n  protected posOut = 0;\n  protected finished = false;\n  protected state32: Uint32Array;\n  protected destroyed = false;\n\n  public blockLen: number;\n  public suffix: number;\n  public outputLen: number;\n  protected enableXOF = false;\n  protected rounds: number;\n\n  // NOTE: we accept arguments in bytes instead of bits here.\n  constructor(\n    blockLen: number,\n    suffix: number,\n    outputLen: number,\n    enableXOF = false,\n    rounds: number = 24\n  ) {\n    super();\n    this.blockLen = blockLen;\n    this.suffix = suffix;\n    this.outputLen = outputLen;\n    this.enableXOF = enableXOF;\n    this.rounds = rounds;\n    // Can be passed from user as dkLen\n    anumber(outputLen);\n    // 1600 = 5x5 matrix of 64bit.  1600 bits === 200 bytes\n    // 0 < blockLen < 200\n    if (!(0 < blockLen && blockLen < 200))\n      throw new Error('only keccak-f1600 function is supported');\n    this.state = new Uint8Array(200);\n    this.state32 = u32(this.state);\n  }\n  clone(): Keccak {\n    return this._cloneInto();\n  }\n  protected keccak(): void {\n    swap32IfBE(this.state32);\n    keccakP(this.state32, this.rounds);\n    swap32IfBE(this.state32);\n    this.posOut = 0;\n    this.pos = 0;\n  }\n  update(data: Input): this {\n    aexists(this);\n    data = toBytes(data);\n    abytes(data);\n    const { blockLen, state } = this;\n    const len = data.length;\n    for (let pos = 0; pos < len; ) {\n      const take = Math.min(blockLen - this.pos, len - pos);\n      for (let i = 0; i < take; i++) state[this.pos++] ^= data[pos++];\n      if (this.pos === blockLen) this.keccak();\n    }\n    return this;\n  }\n  protected finish(): void {\n    if (this.finished) return;\n    this.finished = true;\n    const { state, suffix, pos, blockLen } = this;\n    // Do the padding\n    state[pos] ^= suffix;\n    if ((suffix & 0x80) !== 0 && pos === blockLen - 1) this.keccak();\n    state[blockLen - 1] ^= 0x80;\n    this.keccak();\n  }\n  protected writeInto(out: Uint8Array): Uint8Array {\n    aexists(this, false);\n    abytes(out);\n    this.finish();\n    const bufferOut = this.state;\n    const { blockLen } = this;\n    for (let pos = 0, len = out.length; pos < len; ) {\n      if (this.posOut >= blockLen) this.keccak();\n      const take = Math.min(blockLen - this.posOut, len - pos);\n      out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n      this.posOut += take;\n      pos += take;\n    }\n    return out;\n  }\n  xofInto(out: Uint8Array): Uint8Array {\n    // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n    if (!this.enableXOF) throw new Error('XOF is not possible for this instance');\n    return this.writeInto(out);\n  }\n  xof(bytes: number): Uint8Array {\n    anumber(bytes);\n    return this.xofInto(new Uint8Array(bytes));\n  }\n  digestInto(out: Uint8Array): Uint8Array {\n    aoutput(out, this);\n    if (this.finished) throw new Error('digest() was already called');\n    this.writeInto(out);\n    this.destroy();\n    return out;\n  }\n  digest(): Uint8Array {\n    return this.digestInto(new Uint8Array(this.outputLen));\n  }\n  destroy(): void {\n    this.destroyed = true;\n    clean(this.state);\n  }\n  _cloneInto(to?: Keccak): Keccak {\n    const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n    to ||= new Keccak(blockLen, suffix, outputLen, enableXOF, rounds);\n    to.state32.set(this.state32);\n    to.pos = this.pos;\n    to.posOut = this.posOut;\n    to.finished = this.finished;\n    to.rounds = rounds;\n    // Suffix can change in cSHAKE\n    to.suffix = suffix;\n    to.outputLen = outputLen;\n    to.enableXOF = enableXOF;\n    to.destroyed = this.destroyed;\n    return to;\n  }\n}\n\nconst gen = (suffix: number, blockLen: number, outputLen: number) =>\n  createHasher(() => new Keccak(blockLen, suffix, outputLen));\n\n/** SHA3-224 hash function. */\nexport const sha3_224: CHash = /* @__PURE__ */ (() => gen(0x06, 144, 224 / 8))();\n/** SHA3-256 hash function. Different from keccak-256. */\nexport const sha3_256: CHash = /* @__PURE__ */ (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-384 hash function. */\nexport const sha3_384: CHash = /* @__PURE__ */ (() => gen(0x06, 104, 384 / 8))();\n/** SHA3-512 hash function. */\nexport const sha3_512: CHash = /* @__PURE__ */ (() => gen(0x06, 72, 512 / 8))();\n\n/** keccak-224 hash function. */\nexport const keccak_224: CHash = /* @__PURE__ */ (() => gen(0x01, 144, 224 / 8))();\n/** keccak-256 hash function. Different from SHA3-256. */\nexport const keccak_256: CHash = /* @__PURE__ */ (() => gen(0x01, 136, 256 / 8))();\n/** keccak-384 hash function. */\nexport const keccak_384: CHash = /* @__PURE__ */ (() => gen(0x01, 104, 384 / 8))();\n/** keccak-512 hash function. */\nexport const keccak_512: CHash = /* @__PURE__ */ (() => gen(0x01, 72, 512 / 8))();\n\nexport type ShakeOpts = { dkLen?: number };\n\nconst genShake = (suffix: number, blockLen: number, outputLen: number) =>\n  createXOFer<HashXOF<Keccak>, ShakeOpts>(\n    (opts: ShakeOpts = {}) =>\n      new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true)\n  );\n\n/** SHAKE128 XOF with 128-bit security. */\nexport const shake128: CHashXO = /* @__PURE__ */ (() => genShake(0x1f, 168, 128 / 8))();\n/** SHAKE256 XOF with 256-bit security. */\nexport const shake256: CHashXO = /* @__PURE__ */ (() => genShake(0x1f, 136, 256 / 8))();\n","import { keccak_256 } from '@noble/hashes/sha3'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type IsHexErrorType, isHex } from '../data/isHex.js'\nimport { type ToBytesErrorType, toBytes } from '../encoding/toBytes.js'\nimport { type ToHexErrorType, toHex } from '../encoding/toHex.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type Keccak256Hash<to extends To> =\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type Keccak256ErrorType =\n  | IsHexErrorType\n  | ToBytesErrorType\n  | ToHexErrorType\n  | ErrorType\n\nexport function keccak256<to extends To = 'hex'>(\n  value: Hex | ByteArray,\n  to_?: to | undefined,\n): Keccak256Hash<to> {\n  const to = to_ || 'hex'\n  const bytes = keccak_256(\n    isHex(value, { strict: false }) ? toBytes(value) : value,\n  )\n  if (to === 'bytes') return bytes as Keccak256Hash<to>\n  return toHex(bytes) as Keccak256Hash<to>\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport { type ToBytesErrorType, toBytes } from '../encoding/toBytes.js'\nimport { type Keccak256ErrorType, keccak256 } from './keccak256.js'\n\nconst hash = (value: string) => keccak256(toBytes(value))\n\nexport type HashSignatureErrorType =\n  | Keccak256ErrorType\n  | ToBytesErrorType\n  | ErrorType\n\nexport function hashSignature(sig: string) {\n  return hash(sig)\n}\n","import { BaseError } from '../../errors/base.js'\nimport type { ErrorType } from '../../errors/utils.js'\n\ntype NormalizeSignatureParameters = string\ntype NormalizeSignatureReturnType = string\nexport type NormalizeSignatureErrorType = ErrorType\n\nexport function normalizeSignature(\n  signature: NormalizeSignatureParameters,\n): NormalizeSignatureReturnType {\n  let active = true\n  let current = ''\n  let level = 0\n  let result = ''\n  let valid = false\n\n  for (let i = 0; i < signature.length; i++) {\n    const char = signature[i]\n\n    // If the character is a separator, we want to reactivate.\n    if (['(', ')', ','].includes(char)) active = true\n\n    // If the character is a \"level\" token, we want to increment/decrement.\n    if (char === '(') level++\n    if (char === ')') level--\n\n    // If we aren't active, we don't want to mutate the result.\n    if (!active) continue\n\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\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\n      continue\n    }\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\n    result += char\n    current += char\n  }\n\n  if (!valid) throw new BaseError('Unable to normalize signature.')\n\n  return result\n}\n","import { type AbiEvent, type AbiFunction, formatAbiItem } from 'abitype'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport {\n  type NormalizeSignatureErrorType,\n  normalizeSignature,\n} from './normalizeSignature.js'\n\nexport type ToSignatureErrorType = NormalizeSignatureErrorType | ErrorType\n\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: string | AbiFunction | AbiEvent) => {\n  const def_ = (() => {\n    if (typeof def === 'string') return def\n    return formatAbiItem(def)\n  })()\n  return normalizeSignature(def_)\n}\n","import type { AbiEvent, AbiFunction } from 'abitype'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport { type HashSignatureErrorType, hashSignature } from './hashSignature.js'\nimport { type ToSignatureErrorType, toSignature } from './toSignature.js'\n\nexport type ToSignatureHashErrorType =\n  | HashSignatureErrorType\n  | ToSignatureErrorType\n  | ErrorType\n\n/**\n * Returns the hash (of the function/event signature) for a given event or function definition.\n */\nexport function toSignatureHash(fn: string | AbiFunction | AbiEvent) {\n  return hashSignature(toSignature(fn))\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport {\n  type ToSignatureHashErrorType,\n  toSignatureHash,\n} from './toSignatureHash.js'\n\nexport type ToEventSelectorErrorType = ToSignatureHashErrorType | ErrorType\n\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","import { BaseError } from './base.js'\n\nexport type InvalidAddressErrorType = InvalidAddressError & {\n  name: 'InvalidAddressError'\n}\nexport class InvalidAddressError extends BaseError {\n  constructor({ address }: { address: string }) {\n    super(`Address \"${address}\" is invalid.`, {\n      metaMessages: [\n        '- Address must be a hex value of 20 bytes (40 hex characters).',\n        '- Address must match its checksum counterpart.',\n      ],\n      name: 'InvalidAddressError',\n    })\n  }\n}\n","/**\n * Map with a LRU (Least recently used) policy.\n *\n * @link https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap<value = unknown> extends Map<string, value> {\n  maxSize: number\n\n  constructor(size: number) {\n    super()\n    this.maxSize = size\n  }\n\n  override get(key: string) {\n    const value = super.get(key)\n\n    if (super.has(key)) {\n      super.delete(key)\n      super.set(key, value as value)\n    }\n\n    return value\n  }\n\n  override set(key: string, value: value) {\n    if (super.has(key)) super.delete(key)\n    super.set(key, value)\n    if (this.maxSize && this.size > this.maxSize) {\n      const firstKey = super.keys().next().value\n      if (firstKey !== undefined) super.delete(firstKey)\n    }\n    return this\n  }\n}\n","import type { Address } from 'abitype'\n\nimport { InvalidAddressError } from '../../errors/address.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport {\n  type StringToBytesErrorType,\n  stringToBytes,\n} from '../encoding/toBytes.js'\nimport { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'\nimport { LruMap } from '../lru.js'\nimport { type IsAddressErrorType, isAddress } from './isAddress.js'\n\nconst checksumAddressCache = /*#__PURE__*/ new LruMap<Address>(8192)\n\nexport type ChecksumAddressErrorType =\n  | Keccak256ErrorType\n  | StringToBytesErrorType\n  | ErrorType\n\nexport function checksumAddress(\n  address_: Address,\n  /**\n   * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n   * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n   * that relies on EIP-55 checksum encoding (checksum without chainId).\n   *\n   * It is highly recommended to not use this feature unless you\n   * know what you are doing.\n   *\n   * See more: https://github.com/ethereum/EIPs/issues/1121\n   */\n  chainId?: number | undefined,\n): Address {\n  if (checksumAddressCache.has(`${address_}.${chainId}`))\n    return checksumAddressCache.get(`${address_}.${chainId}`)!\n\n  const hexAddress = chainId\n    ? `${chainId}${address_.toLowerCase()}`\n    : address_.substring(2).toLowerCase()\n  const hash = keccak256(stringToBytes(hexAddress), 'bytes')\n\n  const address = (\n    chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress\n  ).split('')\n  for (let i = 0; i < 40; i += 2) {\n    if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n      address[i] = address[i].toUpperCase()\n    }\n    if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n      address[i + 1] = address[i + 1].toUpperCase()\n    }\n  }\n\n  const result = `0x${address.join('')}` as const\n  checksumAddressCache.set(`${address_}.${chainId}`, result)\n  return result\n}\n\nexport type GetAddressErrorType =\n  | ChecksumAddressErrorType\n  | IsAddressErrorType\n  | ErrorType\n\nexport function getAddress(\n  address: string,\n  /**\n   * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n   * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n   * that relies on EIP-55 checksum encoding (checksum without chainId).\n   *\n   * It is highly recommended to not use this feature unless you\n   * know what you are doing.\n   *\n   * See more: https://github.com/ethereum/EIPs/issues/1121\n   */\n  chainId?: number,\n): Address {\n  if (!isAddress(address, { strict: false }))\n    throw new InvalidAddressError({ address })\n  return checksumAddress(address, chainId)\n}\n","import type { Address } from 'abitype'\nimport type { ErrorType } from '../../errors/utils.js'\nimport { LruMap } from '../lru.js'\nimport { checksumAddress } from './getAddress.js'\n\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/\n\n/** @internal */\nexport const isAddressCache = /*#__PURE__*/ new LruMap<boolean>(8192)\n\nexport type IsAddressOptions = {\n  /**\n   * Enables strict mode. Whether or not to compare the address against its checksum.\n   *\n   * @default true\n   */\n  strict?: boolean | undefined\n}\n\nexport type IsAddressErrorType = ErrorType\n\nexport function isAddress(\n  address: string,\n  options?: IsAddressOptions | undefined,\n): address is Address {\n  const { strict = true } = options ?? {}\n  const cacheKey = `${address}.${strict}`\n\n  if (isAddressCache.has(cacheKey)) return isAddressCache.get(cacheKey)!\n\n  const result = (() => {\n    if (!addressRegex.test(address)) return false\n    if (address.toLowerCase() === address) return true\n    if (strict) return checksumAddress(address as Address) === address\n    return true\n  })()\n  isAddressCache.set(cacheKey, result)\n  return result\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\nexport type ConcatReturnType<value extends Hex | ByteArray> = value extends Hex\n  ? Hex\n  : ByteArray\n\nexport type ConcatErrorType =\n  | ConcatBytesErrorType\n  | ConcatHexErrorType\n  | ErrorType\n\nexport function concat<value extends Hex | ByteArray>(\n  values: readonly value[],\n): ConcatReturnType<value> {\n  if (typeof values[0] === 'string')\n    return concatHex(values as readonly Hex[]) as ConcatReturnType<value>\n  return concatBytes(values as readonly ByteArray[]) as ConcatReturnType<value>\n}\n\nexport type ConcatBytesErrorType = ErrorType\n\nexport function concatBytes(values: readonly ByteArray[]): ByteArray {\n  let length = 0\n  for (const arr of values) {\n    length += arr.length\n  }\n  const result = new Uint8Array(length)\n  let offset = 0\n  for (const arr of values) {\n    result.set(arr, offset)\n    offset += arr.length\n  }\n  return result\n}\n\nexport type ConcatHexErrorType = ErrorType\n\nexport function concatHex(values: readonly Hex[]): Hex {\n  return `0x${(values as Hex[]).reduce(\n    (acc, x) => acc + x.replace('0x', ''),\n    '',\n  )}`\n}\n","import {\n  SliceOffsetOutOfBoundsError,\n  type SliceOffsetOutOfBoundsErrorType,\n} from '../../errors/data.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\nimport { type IsHexErrorType, isHex } from './isHex.js'\nimport { type SizeErrorType, size } from './size.js'\n\nexport type SliceReturnType<value extends ByteArray | Hex> = value extends Hex\n  ? Hex\n  : ByteArray\n\nexport type SliceErrorType =\n  | IsHexErrorType\n  | SliceBytesErrorType\n  | SliceHexErrorType\n  | ErrorType\n\n/**\n * @description Returns a section of the hex or byte array given a start/end bytes offset.\n *\n * @param value The hex or byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function slice<value extends ByteArray | Hex>(\n  value: value,\n  start?: number | undefined,\n  end?: number | undefined,\n  { strict }: { strict?: boolean | undefined } = {},\n): SliceReturnType<value> {\n  if (isHex(value, { strict: false }))\n    return sliceHex(value as Hex, start, end, {\n      strict,\n    }) as SliceReturnType<value>\n  return sliceBytes(value as ByteArray, start, end, {\n    strict,\n  }) as SliceReturnType<value>\n}\n\nexport type AssertStartOffsetErrorType =\n  | SliceOffsetOutOfBoundsErrorType\n  | SizeErrorType\n  | ErrorType\n\nfunction assertStartOffset(value: Hex | ByteArray, start?: number | undefined) {\n  if (typeof start === 'number' && start > 0 && start > size(value) - 1)\n    throw new SliceOffsetOutOfBoundsError({\n      offset: start,\n      position: 'start',\n      size: size(value),\n    })\n}\n\nexport type AssertEndOffsetErrorType =\n  | SliceOffsetOutOfBoundsErrorType\n  | SizeErrorType\n  | ErrorType\n\nfunction assertEndOffset(\n  value: Hex | ByteArray,\n  start?: number | undefined,\n  end?: number | undefined,\n) {\n  if (\n    typeof start === 'number' &&\n    typeof end === 'number' &&\n    size(value) !== end - start\n  ) {\n    throw new SliceOffsetOutOfBoundsError({\n      offset: end,\n      position: 'end',\n      size: size(value),\n    })\n  }\n}\n\nexport type SliceBytesErrorType =\n  | AssertStartOffsetErrorType\n  | AssertEndOffsetErrorType\n  | ErrorType\n\n/**\n * @description Returns a section of the byte array given a start/end bytes offset.\n *\n * @param value The byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceBytes(\n  value_: ByteArray,\n  start?: number | undefined,\n  end?: number | undefined,\n  { strict }: { strict?: boolean | undefined } = {},\n): ByteArray {\n  assertStartOffset(value_, start)\n  const value = value_.slice(start, end)\n  if (strict) assertEndOffset(value, start, end)\n  return value\n}\n\nexport type SliceHexErrorType =\n  | AssertStartOffsetErrorType\n  | AssertEndOffsetErrorType\n  | ErrorType\n\n/**\n * @description Returns a section of the hex value given a start/end bytes offset.\n *\n * @param value The hex value to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceHex(\n  value_: Hex,\n  start?: number | undefined,\n  end?: number | undefined,\n  { strict }: { strict?: boolean | undefined } = {},\n): Hex {\n  assertStartOffset(value_, start)\n  const value = `0x${value_\n    .replace('0x', '')\n    .slice((start ?? 0) * 2, (end ?? value_.length) * 2)}` as const\n  if (strict) assertEndOffset(value, start, end)\n  return value\n}\n","export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/\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\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 =\n  /^(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)?$/\n","import type {\n  AbiParameter,\n  AbiParameterKind,\n  AbiParametersToPrimitiveTypes,\n  AbiParameterToPrimitiveType,\n} from 'abitype'\n\nimport {\n  AbiEncodingArrayLengthMismatchError,\n  type AbiEncodingArrayLengthMismatchErrorType,\n  AbiEncodingBytesSizeMismatchError,\n  type AbiEncodingBytesSizeMismatchErrorType,\n  AbiEncodingLengthMismatchError,\n  type AbiEncodingLengthMismatchErrorType,\n  InvalidAbiEncodingTypeError,\n  type InvalidAbiEncodingTypeErrorType,\n  InvalidArrayError,\n  type InvalidArrayErrorType,\n} from '../../errors/abi.js'\nimport {\n  InvalidAddressError,\n  type InvalidAddressErrorType,\n} from '../../errors/address.js'\nimport { BaseError } from '../../errors/base.js'\nimport { IntegerOutOfRangeError } from '../../errors/encoding.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport { type IsAddressErrorType, isAddress } from '../address/isAddress.js'\nimport { type ConcatErrorType, concat } from '../data/concat.js'\nimport { type PadHexErrorType, padHex } from '../data/pad.js'\nimport { type SizeErrorType, size } from '../data/size.js'\nimport { type SliceErrorType, slice } from '../data/slice.js'\nimport {\n  type BoolToHexErrorType,\n  boolToHex,\n  type NumberToHexErrorType,\n  numberToHex,\n  type StringToHexErrorType,\n  stringToHex,\n} from '../encoding/toHex.js'\nimport { integerRegex } from '../regex.js'\n\nexport type EncodeAbiParametersReturnType = Hex\n\nexport type EncodeAbiParametersErrorType =\n  | AbiEncodingLengthMismatchErrorType\n  | PrepareParamsErrorType\n  | EncodeParamsErrorType\n  | ErrorType\n\n/**\n * @description Encodes a list of primitive values into an ABI-encoded hex value.\n *\n * - Docs: https://viem.sh/docs/abi/encodeAbiParameters#encodeabiparameters\n *\n *   Generates ABI encoded data using the [ABI specification](https://docs.soliditylang.org/en/latest/abi-spec), given a set of ABI parameters (inputs/outputs) and their corresponding values.\n *\n * @param params - a set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.\n * @param values - a set of values (values) that correspond to the given params.\n * @example\n * ```typescript\n * import { encodeAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n *   [\n *     { name: 'x', type: 'string' },\n *     { name: 'y', type: 'uint' },\n *     { name: 'z', type: 'bool' }\n *   ],\n *   ['wagmi', 420n, true]\n * )\n * ```\n *\n * You can also pass in Human Readable parameters with the parseAbiParameters utility.\n *\n * @example\n * ```typescript\n * import { encodeAbiParameters, parseAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n *   parseAbiParameters('string x, uint y, bool z'),\n *   ['wagmi', 420n, true]\n * )\n * ```\n */\nexport function encodeAbiParameters<\n  const params extends readonly AbiParameter[] | readonly unknown[],\n>(\n  params: params,\n  values: params extends readonly AbiParameter[]\n    ? AbiParametersToPrimitiveTypes<params, AbiParameterKind, true>\n    : never,\n): EncodeAbiParametersReturnType {\n  if (params.length !== values.length)\n    throw new AbiEncodingLengthMismatchError({\n      expectedLength: params.length as number,\n      givenLength: values.length as any,\n    })\n  // Prepare the parameters to determine dynamic types to encode.\n  const preparedParams = prepareParams({\n    params: params as readonly AbiParameter[],\n    values: values as any,\n  })\n  const data = encodeParams(preparedParams)\n  if (data.length === 0) return '0x'\n  return data\n}\n\n/////////////////////////////////////////////////////////////////\n\ntype PreparedParam = { dynamic: boolean; encoded: Hex }\n\ntype TupleAbiParameter = AbiParameter & { components: readonly AbiParameter[] }\ntype Tuple = AbiParameterToPrimitiveType<TupleAbiParameter>\n\ntype PrepareParamsErrorType = PrepareParamErrorType | ErrorType\n\nfunction prepareParams<const params extends readonly AbiParameter[]>({\n  params,\n  values,\n}: {\n  params: params\n  values: AbiParametersToPrimitiveTypes<params>\n}) {\n  const preparedParams: PreparedParam[] = []\n  for (let i = 0; i < params.length; i++) {\n    preparedParams.push(prepareParam({ param: params[i], value: values[i] }))\n  }\n  return preparedParams\n}\n\ntype PrepareParamErrorType =\n  | EncodeAddressErrorType\n  | EncodeArrayErrorType\n  | EncodeBytesErrorType\n  | EncodeBoolErrorType\n  | EncodeNumberErrorType\n  | EncodeStringErrorType\n  | EncodeTupleErrorType\n  | GetArrayComponentsErrorType\n  | InvalidAbiEncodingTypeErrorType\n  | ErrorType\n\nfunction prepareParam<const param extends AbiParameter>({\n  param,\n  value,\n}: {\n  param: param\n  value: AbiParameterToPrimitiveType<param>\n}): PreparedParam {\n  const arrayComponents = getArrayComponents(param.type)\n  if (arrayComponents) {\n    const [length, type] = arrayComponents\n    return encodeArray(value, { length, param: { ...param, type } })\n  }\n  if (param.type === 'tuple') {\n    return encodeTuple(value as unknown as Tuple, {\n      param: param as TupleAbiParameter,\n    })\n  }\n  if (param.type === 'address') {\n    return encodeAddress(value as unknown as Hex)\n  }\n  if (param.type === 'bool') {\n    return encodeBool(value as unknown as boolean)\n  }\n  if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n    const signed = param.type.startsWith('int')\n    const [, , size = '256'] = integerRegex.exec(param.type) ?? []\n    return encodeNumber(value as unknown as number, {\n      signed,\n      size: Number(size),\n    })\n  }\n  if (param.type.startsWith('bytes')) {\n    return encodeBytes(value as unknown as Hex, { param })\n  }\n  if (param.type === 'string') {\n    return encodeString(value as unknown as string)\n  }\n  throw new InvalidAbiEncodingTypeError(param.type, {\n    docsPath: '/docs/contract/encodeAbiParameters',\n  })\n}\n\n/////////////////////////////////////////////////////////////////\n\ntype EncodeParamsErrorType = NumberToHexErrorType | SizeErrorType | ErrorType\n\nfunction encodeParams(preparedParams: PreparedParam[]): Hex {\n  // 1. Compute the size of the static part of the parameters.\n  let staticSize = 0\n  for (let i = 0; i < preparedParams.length; i++) {\n    const { dynamic, encoded } = preparedParams[i]\n    if (dynamic) staticSize += 32\n    else staticSize += size(encoded)\n  }\n\n  // 2. Split the parameters into static and dynamic parts.\n  const staticParams: Hex[] = []\n  const dynamicParams: Hex[] = []\n  let dynamicSize = 0\n  for (let i = 0; i < preparedParams.length; i++) {\n    const { dynamic, encoded } = preparedParams[i]\n    if (dynamic) {\n      staticParams.push(numberToHex(staticSize + dynamicSize, { size: 32 }))\n      dynamicParams.push(encoded)\n      dynamicSize += size(encoded)\n    } else {\n      staticParams.push(encoded)\n    }\n  }\n\n  // 3. Concatenate static and dynamic parts.\n  return concat([...staticParams, ...dynamicParams])\n}\n\n/////////////////////////////////////////////////////////////////\n\ntype EncodeAddressErrorType =\n  | InvalidAddressErrorType\n  | IsAddressErrorType\n  | ErrorType\n\nfunction encodeAddress(value: Hex): PreparedParam {\n  if (!isAddress(value)) throw new InvalidAddressError({ address: value })\n  return { dynamic: false, encoded: padHex(value.toLowerCase() as Hex) }\n}\n\ntype EncodeArrayErrorType =\n  | AbiEncodingArrayLengthMismatchErrorType\n  | ConcatErrorType\n  | EncodeParamsErrorType\n  | InvalidArrayErrorType\n  | NumberToHexErrorType\n  // TODO: Add back once circular type reference is resolved\n  // | PrepareParamErrorType\n  | ErrorType\n\nfunction encodeArray<const param extends AbiParameter>(\n  value: AbiParameterToPrimitiveType<param>,\n  {\n    length,\n    param,\n  }: {\n    length: number | null\n    param: param\n  },\n): PreparedParam {\n  const dynamic = length === null\n\n  if (!Array.isArray(value)) throw new InvalidArrayError(value)\n  if (!dynamic && value.length !== length)\n    throw new AbiEncodingArrayLengthMismatchError({\n      expectedLength: length!,\n      givenLength: value.length,\n      type: `${param.type}[${length}]`,\n    })\n\n  let dynamicChild = false\n  const preparedParams: PreparedParam[] = []\n  for (let i = 0; i < value.length; i++) {\n    const preparedParam = prepareParam({ param, value: value[i] })\n    if (preparedParam.dynamic) dynamicChild = true\n    preparedParams.push(preparedParam)\n  }\n\n  if (dynamic || dynamicChild) {\n    const data = encodeParams(preparedParams)\n    if (dynamic) {\n      const length = numberToHex(preparedParams.length, { size: 32 })\n      return {\n        dynamic: true,\n        encoded: preparedParams.length > 0 ? concat([length, data]) : length,\n      }\n    }\n    if (dynamicChild) return { dynamic: true, encoded: data }\n  }\n  return {\n    dynamic: false,\n    encoded: concat(preparedParams.map(({ encoded }) => encoded)),\n  }\n}\n\ntype EncodeBytesErrorType =\n  | AbiEncodingBytesSizeMismatchErrorType\n  | ConcatErrorType\n  | PadHexErrorType\n  | NumberToHexErrorType\n  | SizeErrorType\n  | ErrorType\n\nfunction encodeBytes<const param extends AbiParameter>(\n  value: Hex,\n  { param }: { param: param },\n): PreparedParam {\n  const [, paramSize] = param.type.split('bytes')\n  const bytesSize = size(value)\n  if (!paramSize) {\n    let value_ = value\n    // If the size is not divisible by 32 bytes, pad the end\n    // with empty bytes to the ceiling 32 bytes.\n    if (bytesSize % 32 !== 0)\n      value_ = padHex(value_, {\n        dir: 'right',\n        size: Math.ceil((value.length - 2) / 2 / 32) * 32,\n      })\n    return {\n      dynamic: true,\n      encoded: concat([padHex(numberToHex(bytesSize, { size: 32 })), value_]),\n    }\n  }\n  if (bytesSize !== Number.parseInt(paramSize, 10))\n    throw new AbiEncodingBytesSizeMismatchError({\n      expectedSize: Number.parseInt(paramSize, 10),\n      value,\n    })\n  return { dynamic: false, encoded: padHex(value, { dir: 'right' }) }\n}\n\ntype EncodeBoolErrorType = PadHexErrorType | BoolToHexErrorType | ErrorType\n\nfunction encodeBool(value: boolean): PreparedParam {\n  if (typeof value !== 'boolean')\n    throw new BaseError(\n      `Invalid boolean value: \"${value}\" (type: ${typeof value}). Expected: \\`true\\` or \\`false\\`.`,\n    )\n  return { dynamic: false, encoded: padHex(boolToHex(value)) }\n}\n\ntype EncodeNumberErrorType = NumberToHexErrorType | ErrorType\n\nfunction encodeNumber(\n  value: number,\n  { signed, size = 256 }: { signed: boolean; size?: number | undefined },\n): PreparedParam {\n  if (typeof size === 'number') {\n    const max = 2n ** (BigInt(size) - (signed ? 1n : 0n)) - 1n\n    const min = signed ? -max - 1n : 0n\n    if (value > max || value < min)\n      throw new IntegerOutOfRangeError({\n        max: max.toString(),\n        min: min.toString(),\n        signed,\n        size: size / 8,\n        value: value.toString(),\n      })\n  }\n  return {\n    dynamic: false,\n    encoded: numberToHex(value, {\n      size: 32,\n      signed,\n    }),\n  }\n}\n\ntype EncodeStringErrorType =\n  | ConcatErrorType\n  | NumberToHexErrorType\n  | PadHexErrorType\n  | SizeErrorType\n  | SliceErrorType\n  | StringToHexErrorType\n  | ErrorType\n\nfunction encodeString(value: string): PreparedParam {\n  const hexValue = stringToHex(value)\n  const partsLength = Math.ceil(size(hexValue) / 32)\n  const parts: Hex[] = []\n  for (let i = 0; i < partsLength; i++) {\n    parts.push(\n      padHex(slice(hexValue, i * 32, (i + 1) * 32), {\n        dir: 'right',\n      }),\n    )\n  }\n  return {\n    dynamic: true,\n    encoded: concat([\n      padHex(numberToHex(size(hexValue), { size: 32 })),\n      ...parts,\n    ]),\n  }\n}\n\ntype EncodeTupleErrorType =\n  | ConcatErrorType\n  | EncodeParamsErrorType\n  // TODO: Add back once circular type reference is resolved\n  // | PrepareParamErrorType\n  | ErrorType\n\nfunction encodeTuple<\n  const param extends AbiParameter & { components: readonly AbiParameter[] },\n>(\n  value: AbiParameterToPrimitiveType<param>,\n  { param }: { param: param },\n): PreparedParam {\n  let dynamic = false\n  const preparedParams: PreparedParam[] = []\n  for (let i = 0; i < param.components.length; i++) {\n    const param_ = param.components[i]\n    const index = Array.isArray(value) ? i : param_.name\n    const preparedParam = prepareParam({\n      param: param_,\n      value: (value as any)[index!] as readonly unknown[],\n    })\n    preparedParams.push(preparedParam)\n    if (preparedParam.dynamic) dynamic = true\n  }\n  return {\n    dynamic,\n    encoded: dynamic\n      ? encodeParams(preparedParams)\n      : concat(preparedParams.map(({ encoded }) => encoded)),\n  }\n}\n\ntype GetArrayComponentsErrorType = ErrorType\n\nexport function getArrayComponents(\n  type: string,\n): [length: number | null, innerType: string] | undefined {\n  const matches = type.match(/^(.*)\\[(\\d+)?\\]$/)\n  return matches\n    ? // Return `null` if the array is dynamic.\n      [matches[2] ? Number(matches[2]) : null, matches[1]]\n    : undefined\n}\n","import type { AbiFunction } from 'abitype'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport { type SliceErrorType, slice } from '../data/slice.js'\nimport {\n  type ToSignatureHashErrorType,\n  toSignatureHash,\n} from './toSignatureHash.js'\n\nexport type ToFunctionSelectorErrorType =\n  | ToSignatureHashErrorType\n  | SliceErrorType\n  | ErrorType\n\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: string | AbiFunction) =>\n  slice(toSignatureHash(fn), 0, 4)\n","import type { Abi, AbiParameter, Address } from 'abitype'\n\nimport {\n  AbiItemAmbiguityError,\n  type AbiItemAmbiguityErrorType,\n} from '../../errors/abi.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type {\n  AbiItem,\n  AbiItemArgs,\n  AbiItemName,\n  ExtractAbiItemForArgs,\n  Widen,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { UnionEvaluate } from '../../types/utils.js'\nimport { type IsHexErrorType, isHex } from '../../utils/data/isHex.js'\nimport { type IsAddressErrorType, isAddress } from '../address/isAddress.js'\nimport { toEventSelector } from '../hash/toEventSelector.js'\nimport {\n  type ToFunctionSelectorErrorType,\n  toFunctionSelector,\n} from '../hash/toFunctionSelector.js'\n\nexport type GetAbiItemParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  name extends AbiItemName<abi> = AbiItemName<abi>,\n  args extends AbiItemArgs<abi, name> | undefined = AbiItemArgs<abi, name>,\n  ///\n  allArgs = AbiItemArgs<abi, name>,\n  allNames = AbiItemName<abi>,\n> = {\n  abi: abi\n  name:\n    | allNames // show all options\n    | (name extends allNames ? name : never) // infer value\n    | Hex // function selector\n} & UnionEvaluate<\n  readonly [] extends allArgs\n    ? {\n        args?:\n          | allArgs // show all options\n          // infer value, widen inferred value of `args` conditionally to match `allArgs`\n          | (abi extends Abi\n              ? args extends allArgs\n                ? Widen<args>\n                : never\n              : never)\n          | undefined\n      }\n    : {\n        args?:\n          | allArgs // show all options\n          | (Widen<args> & (args extends allArgs ? unknown : never)) // infer value, widen inferred value of `args` match `allArgs` (e.g. avoid union `args: readonly [123n] | readonly [bigint]`)\n          | undefined\n      }\n>\n\nexport type GetAbiItemErrorType =\n  | IsArgOfTypeErrorType\n  | IsHexErrorType\n  | ToFunctionSelectorErrorType\n  | AbiItemAmbiguityErrorType\n  | ErrorType\n\nexport type GetAbiItemReturnType<\n  abi extends Abi | readonly unknown[] = Abi,\n  name extends AbiItemName<abi> = AbiItemName<abi>,\n  args extends AbiItemArgs<abi, name> | undefined = AbiItemArgs<abi, name>,\n> = abi extends Abi\n  ? Abi extends abi\n    ? AbiItem | undefined\n    : ExtractAbiItemForArgs<\n        abi,\n        name,\n        args extends AbiItemArgs<abi, name> ? args : AbiItemArgs<abi, name>\n      >\n  : AbiItem | undefined\n\nexport function getAbiItem<\n  const abi extends Abi | readonly unknown[],\n  name extends AbiItemName<abi>,\n  const args extends AbiItemArgs<abi, name> | undefined = undefined,\n>(\n  parameters: GetAbiItemParameters<abi, name, args>,\n): GetAbiItemReturnType<abi, name, args> {\n  const { abi, args = [], name } = parameters as unknown as GetAbiItemParameters\n\n  const isSelector = isHex(name, { strict: false })\n  const abiItems = (abi as Abi).filter((abiItem) => {\n    if (isSelector) {\n      if (abiItem.type === 'function')\n        return toFunctionSelector(abiItem) === name\n      if (abiItem.type === 'event') return toEventSelector(abiItem) === name\n      return false\n    }\n    return 'name' in abiItem && abiItem.name === name\n  })\n\n  if (abiItems.length === 0)\n    return undefined as GetAbiItemReturnType<abi, name, args>\n  if (abiItems.length === 1)\n    return abiItems[0] as GetAbiItemReturnType<abi, name, args>\n\n  let matchedAbiItem: AbiItem | undefined\n  for (const abiItem of abiItems) {\n    if (!('inputs' in abiItem)) continue\n    if (!args || args.length === 0) {\n      if (!abiItem.inputs || abiItem.inputs.length === 0)\n        return abiItem as GetAbiItemReturnType<abi, name, args>\n      continue\n    }\n    if (!abiItem.inputs) continue\n    if (abiItem.inputs.length === 0) continue\n    if (abiItem.inputs.length !== args.length) continue\n    const matched = args.every((arg, index) => {\n      const abiParameter = 'inputs' in abiItem && abiItem.inputs![index]\n      if (!abiParameter) 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 (\n        matchedAbiItem &&\n        'inputs' in matchedAbiItem &&\n        matchedAbiItem.inputs\n      ) {\n        const ambiguousTypes = getAmbiguousTypes(\n          abiItem.inputs,\n          matchedAbiItem.inputs,\n          args as readonly unknown[],\n        )\n        if (ambiguousTypes)\n          throw new AbiItemAmbiguityError(\n            {\n              abiItem,\n              type: ambiguousTypes[0],\n            },\n            {\n              abiItem: matchedAbiItem,\n              type: ambiguousTypes[1],\n            },\n          )\n      }\n\n      matchedAbiItem = abiItem\n    }\n  }\n\n  if (matchedAbiItem)\n    return matchedAbiItem as GetAbiItemReturnType<abi, name, args>\n  return abiItems[0] as GetAbiItemReturnType<abi, name, args>\n}\n\ntype IsArgOfTypeErrorType = IsAddressErrorType | ErrorType\n\n/** @internal */\nexport function isArgOfType(arg: unknown, abiParameter: AbiParameter): boolean {\n  const argType = typeof arg\n  const abiParameterType = abiParameter.type\n  switch (abiParameterType) {\n    case 'address':\n      return isAddress(arg as Address, { 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(\n          (component, index) => {\n            return (\n              argType === 'object' &&\n              isArgOfType(\n                Object.values(arg as unknown[] | Record<string, unknown>)[\n                  index\n                ],\n                component as AbiParameter,\n              )\n            )\n          },\n        )\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 (\n        /^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(\n          abiParameterType,\n        )\n      )\n        return argType === 'number' || argType === 'bigint'\n\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\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 (\n          Array.isArray(arg) &&\n          arg.every((x: unknown) =>\n            isArgOfType(x, {\n              ...abiParameter,\n              // Pop off `[]` or `[M]` from end of type\n              type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n            } as AbiParameter),\n          )\n        )\n      }\n\n      return false\n    }\n  }\n}\n\n/** @internal */\nexport function getAmbiguousTypes(\n  sourceParameters: readonly AbiParameter[],\n  targetParameters: readonly AbiParameter[],\n  args: AbiItemArgs,\n): AbiParameter['type'][] | undefined {\n  for (const parameterIndex in sourceParameters) {\n    const sourceParameter = sourceParameters[parameterIndex]\n    const targetParameter = targetParameters[parameterIndex]\n\n    if (\n      sourceParameter.type === 'tuple' &&\n      targetParameter.type === 'tuple' &&\n      'components' in sourceParameter &&\n      'components' in targetParameter\n    )\n      return getAmbiguousTypes(\n        sourceParameter.components,\n        targetParameter.components,\n        (args as any)[parameterIndex],\n      )\n\n    const types = [sourceParameter.type, targetParameter.type]\n\n    const ambiguous = (() => {\n      if (types.includes('address') && types.includes('bytes20')) return true\n      if (types.includes('address') && types.includes('string'))\n        return isAddress(args[parameterIndex] as Address, { strict: false })\n      if (types.includes('address') && types.includes('bytes'))\n        return isAddress(args[parameterIndex] as Address, { strict: false })\n      return false\n    })()\n\n    if (ambiguous) return types\n  }\n\n  return\n}\n","import { BaseError } from './base.js'\n\nexport type NegativeOffsetErrorType = NegativeOffsetError & {\n  name: 'NegativeOffsetError'\n}\nexport class NegativeOffsetError extends BaseError {\n  constructor({ offset }: { offset: number }) {\n    super(`Offset \\`${offset}\\` cannot be negative.`, {\n      name: 'NegativeOffsetError',\n    })\n  }\n}\n\nexport type PositionOutOfBoundsErrorType = PositionOutOfBoundsError & {\n  name: 'PositionOutOfBoundsError'\n}\nexport class PositionOutOfBoundsError extends BaseError {\n  constructor({ length, position }: { length: number; position: number }) {\n    super(\n      `Position \\`${position}\\` is out of bounds (\\`0 < position < ${length}\\`).`,\n      { name: 'PositionOutOfBoundsError' },\n    )\n  }\n}\n\nexport type RecursiveReadLimitExceededErrorType =\n  RecursiveReadLimitExceededError & {\n    name: 'RecursiveReadLimitExceededError'\n  }\nexport class RecursiveReadLimitExceededError extends BaseError {\n  constructor({ count, limit }: { count: number; limit: number }) {\n    super(\n      `Recursive read limit of \\`${limit}\\` exceeded (recursive read count: \\`${count}\\`).`,\n      { name: 'RecursiveReadLimitExceededError' },\n    )\n  }\n}\n","import {\n  NegativeOffsetError,\n  type NegativeOffsetErrorType,\n  PositionOutOfBoundsError,\n  type PositionOutOfBoundsErrorType,\n  RecursiveReadLimitExceededError,\n  type RecursiveReadLimitExceededErrorType,\n} from '../errors/cursor.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport type { ByteArray } from '../types/misc.js'\n\nexport type Cursor = {\n  bytes: ByteArray\n  dataView: DataView\n  position: number\n  positionReadCount: Map<number, number>\n  recursiveReadCount: number\n  recursiveReadLimit: number\n  remaining: number\n  assertReadLimit(position?: number): void\n  assertPosition(position: number): void\n  decrementPosition(offset: number): void\n  getReadCount(position?: number): number\n  incrementPosition(offset: number): void\n  inspectByte(position?: number): ByteArray[number]\n  inspectBytes(length: number, position?: number): ByteArray\n  inspectUint8(position?: number): number\n  inspectUint16(position?: number): number\n  inspectUint24(position?: number): number\n  inspectUint32(position?: number): number\n  pushByte(byte: ByteArray[number]): void\n  pushBytes(bytes: ByteArray): void\n  pushUint8(value: number): void\n  pushUint16(value: number): void\n  pushUint24(value: number): void\n  pushUint32(value: number): void\n  readByte(): ByteArray[number]\n  readBytes(length: number, size?: number): ByteArray\n  readUint8(): number\n  readUint16(): number\n  readUint24(): number\n  readUint32(): number\n  setPosition(position: number): () => void\n  _touch(): void\n}\n\ntype CursorErrorType =\n  | CursorAssertPositionErrorType\n  | CursorDecrementPositionErrorType\n  | CursorIncrementPositionErrorType\n  | ErrorType\n\ntype CursorAssertPositionErrorType = PositionOutOfBoundsErrorType | ErrorType\n\ntype CursorDecrementPositionErrorType = NegativeOffsetErrorType | ErrorType\n\ntype CursorIncrementPositionErrorType = NegativeOffsetErrorType | ErrorType\n\ntype StaticCursorErrorType =\n  | NegativeOffsetErrorType\n  | RecursiveReadLimitExceededErrorType\n\nconst staticCursor: Cursor = {\n  bytes: new Uint8Array(),\n  dataView: new DataView(new ArrayBuffer(0)),\n  position: 0,\n  positionReadCount: new Map(),\n  recursiveReadCount: 0,\n  recursiveReadLimit: Number.POSITIVE_INFINITY,\n  assertReadLimit() {\n    if (this.recursiveReadCount >= this.recursiveReadLimit)\n      throw new RecursiveReadLimitExceededError({\n        count: this.recursiveReadCount + 1,\n        limit: this.recursiveReadLimit,\n      })\n  },\n  assertPosition(position) {\n    if (position < 0 || position > this.bytes.length - 1)\n      throw new PositionOutOfBoundsError({\n        length: this.bytes.length,\n        position,\n      })\n  },\n  decrementPosition(offset) {\n    if (offset < 0) throw new NegativeOffsetError({ offset })\n    const position = this.position - offset\n    this.assertPosition(position)\n    this.position = position\n  },\n  getReadCount(position) {\n    return this.positionReadCount.get(position || this.position) || 0\n  },\n  incrementPosition(offset) {\n    if (offset < 0) throw new NegativeOffsetError({ offset })\n    const position = this.position + offset\n    this.assertPosition(position)\n    this.position = position\n  },\n  inspectByte(position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position)\n    return this.bytes[position]\n  },\n  inspectBytes(length, position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position + length - 1)\n    return this.bytes.subarray(position, position + length)\n  },\n  inspectUint8(position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position)\n    return this.bytes[position]\n  },\n  inspectUint16(position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position + 1)\n    return this.dataView.getUint16(position)\n  },\n  inspectUint24(position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position + 2)\n    return (\n      (this.dataView.getUint16(position) << 8) +\n      this.dataView.getUint8(position + 2)\n    )\n  },\n  inspectUint32(position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position + 3)\n    return this.dataView.getUint32(position)\n  },\n  pushByte(byte: ByteArray[number]) {\n    this.assertPosition(this.position)\n    this.bytes[this.position] = byte\n    this.position++\n  },\n  pushBytes(bytes: ByteArray) {\n    this.assertPosition(this.position + bytes.length - 1)\n    this.bytes.set(bytes, this.position)\n    this.position += bytes.length\n  },\n  pushUint8(value: number) {\n    this.assertPosition(this.position)\n    this.bytes[this.position] = value\n    this.position++\n  },\n  pushUint16(value: number) {\n    this.assertPosition(this.position + 1)\n    this.dataView.setUint16(this.position, value)\n    this.position += 2\n  },\n  pushUint24(value: number) {\n    this.assertPosition(this.position + 2)\n    this.dataView.setUint16(this.position, value >> 8)\n    this.dataView.setUint8(this.position + 2, value & ~4294967040)\n    this.position += 3\n  },\n  pushUint32(value: number) {\n    this.assertPosition(this.position + 3)\n    this.dataView.setUint32(this.position, value)\n    this.position += 4\n  },\n  readByte() {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectByte()\n    this.position++\n    return value\n  },\n  readBytes(length, size) {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectBytes(length)\n    this.position += size ?? length\n    return value\n  },\n  readUint8() {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectUint8()\n    this.position += 1\n    return value\n  },\n  readUint16() {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectUint16()\n    this.position += 2\n    return value\n  },\n  readUint24() {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectUint24()\n    this.position += 3\n    return value\n  },\n  readUint32() {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectUint32()\n    this.position += 4\n    return value\n  },\n  get remaining() {\n    return this.bytes.length - this.position\n  },\n  setPosition(position) {\n    const oldPosition = this.position\n    this.assertPosition(position)\n    this.position = position\n    return () => (this.position = oldPosition)\n  },\n  _touch() {\n    if (this.recursiveReadLimit === Number.POSITIVE_INFINITY) return\n    const count = this.getReadCount()\n    this.positionReadCount.set(this.position, count + 1)\n    if (count > 0) this.recursiveReadCount++\n  },\n}\n\ntype CursorConfig = { recursiveReadLimit?: number | undefined }\n\nexport type CreateCursorErrorType =\n  | CursorErrorType\n  | StaticCursorErrorType\n  | ErrorType\n\nexport function createCursor(\n  bytes: ByteArray,\n  { recursiveReadLimit = 8_192 }: CursorConfig = {},\n): Cursor {\n  const cursor: Cursor = Object.create(staticCursor)\n  cursor.bytes = bytes\n  cursor.dataView = new DataView(\n    bytes.buffer ?? bytes,\n    bytes.byteOffset,\n    bytes.byteLength,\n  )\n  cursor.positionReadCount = new Map()\n  cursor.recursiveReadLimit = recursiveReadLimit\n  return cursor\n}\n","import { InvalidBytesBooleanError } from '../../errors/encoding.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type TrimErrorType, trim } from '../data/trim.js'\n\nimport {\n  type AssertSizeErrorType,\n  assertSize,\n  type HexToBigIntErrorType,\n  type HexToNumberErrorType,\n  hexToBigInt,\n  hexToNumber,\n} from './fromHex.js'\nimport { type BytesToHexErrorType, bytesToHex } from './toHex.js'\n\nexport type FromBytesParameters<\n  to extends 'string' | 'hex' | 'bigint' | 'number' | 'boolean',\n> =\n  | to\n  | {\n      /** Size of the bytes. */\n      size?: number | undefined\n      /** Type to convert to. */\n      to: to\n    }\n\nexport type FromBytesReturnType<to> = to extends 'string'\n  ? string\n  : to extends 'hex'\n    ? Hex\n    : to extends 'bigint'\n      ? bigint\n      : to extends 'number'\n        ? number\n        : to extends 'boolean'\n          ? boolean\n          : never\n\nexport type FromBytesErrorType =\n  | BytesToHexErrorType\n  | BytesToBigIntErrorType\n  | BytesToBoolErrorType\n  | BytesToNumberErrorType\n  | BytesToStringErrorType\n  | ErrorType\n\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<\n  to extends 'string' | 'hex' | 'bigint' | 'number' | 'boolean',\n>(\n  bytes: ByteArray,\n  toOrOpts: FromBytesParameters<to>,\n): FromBytesReturnType<to> {\n  const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts\n  const to = opts.to\n\n  if (to === 'number')\n    return bytesToNumber(bytes, opts) as FromBytesReturnType<to>\n  if (to === 'bigint')\n    return bytesToBigInt(bytes, opts) as FromBytesReturnType<to>\n  if (to === 'boolean')\n    return bytesToBool(bytes, opts) as FromBytesReturnType<to>\n  if (to === 'string')\n    return bytesToString(bytes, opts) as FromBytesReturnType<to>\n  return bytesToHex(bytes, opts) as FromBytesReturnType<to>\n}\n\nexport type BytesToBigIntOpts = {\n  /** Whether or not the number of a signed representation. */\n  signed?: boolean | undefined\n  /** Size of the bytes. */\n  size?: number | undefined\n}\n\nexport type BytesToBigIntErrorType =\n  | BytesToHexErrorType\n  | HexToBigIntErrorType\n  | ErrorType\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(\n  bytes: ByteArray,\n  opts: BytesToBigIntOpts = {},\n): bigint {\n  if (typeof opts.size !== 'undefined') assertSize(bytes, { size: opts.size })\n  const hex = bytesToHex(bytes, opts)\n  return hexToBigInt(hex, opts)\n}\n\nexport type BytesToBoolOpts = {\n  /** Size of the bytes. */\n  size?: number | undefined\n}\n\nexport type BytesToBoolErrorType =\n  | AssertSizeErrorType\n  | TrimErrorType\n  | ErrorType\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(\n  bytes_: ByteArray,\n  opts: BytesToBoolOpts = {},\n): boolean {\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\nexport type BytesToNumberOpts = BytesToBigIntOpts\n\nexport type BytesToNumberErrorType =\n  | BytesToHexErrorType\n  | HexToNumberErrorType\n  | ErrorType\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(\n  bytes: ByteArray,\n  opts: BytesToNumberOpts = {},\n): number {\n  if (typeof opts.size !== 'undefined') assertSize(bytes, { size: opts.size })\n  const hex = bytesToHex(bytes, opts)\n  return hexToNumber(hex, opts)\n}\n\nexport type BytesToStringOpts = {\n  /** Size of the bytes. */\n  size?: number | undefined\n}\n\nexport type BytesToStringErrorType =\n  | AssertSizeErrorType\n  | TrimErrorType\n  | ErrorType\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(\n  bytes_: ByteArray,\n  opts: BytesToStringOpts = {},\n): string {\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","import type {\n  AbiParameter,\n  AbiParameterKind,\n  AbiParametersToPrimitiveTypes,\n} from 'abitype'\nimport {\n  AbiDecodingDataSizeTooSmallError,\n  AbiDecodingZeroDataError,\n  InvalidAbiDecodingTypeError,\n  type InvalidAbiDecodingTypeErrorType,\n} from '../../errors/abi.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport {\n  type ChecksumAddressErrorType,\n  checksumAddress,\n} from '../address/getAddress.js'\nimport {\n  type CreateCursorErrorType,\n  type Cursor,\n  createCursor,\n} from '../cursor.js'\nimport { type SizeErrorType, size } from '../data/size.js'\nimport { type SliceBytesErrorType, sliceBytes } from '../data/slice.js'\nimport { type TrimErrorType, trim } from '../data/trim.js'\nimport {\n  type BytesToBigIntErrorType,\n  type BytesToBoolErrorType,\n  type BytesToNumberErrorType,\n  type BytesToStringErrorType,\n  bytesToBigInt,\n  bytesToBool,\n  bytesToNumber,\n  bytesToString,\n} from '../encoding/fromBytes.js'\nimport { type HexToBytesErrorType, hexToBytes } from '../encoding/toBytes.js'\nimport { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'\nimport { getArrayComponents } from './encodeAbiParameters.js'\n\nexport type DecodeAbiParametersReturnType<\n  params extends readonly AbiParameter[] = readonly AbiParameter[],\n> = AbiParametersToPrimitiveTypes<\n  params extends readonly AbiParameter[] ? params : AbiParameter[],\n  AbiParameterKind,\n  true\n>\n\nexport type DecodeAbiParametersErrorType =\n  | HexToBytesErrorType\n  | BytesToHexErrorType\n  | DecodeParameterErrorType\n  | SizeErrorType\n  | CreateCursorErrorType\n  | ErrorType\n\nexport function decodeAbiParameters<\n  const params extends readonly AbiParameter[],\n>(\n  params: params,\n  data: ByteArray | Hex,\n): DecodeAbiParametersReturnType<params> {\n  const bytes = typeof data === 'string' ? hexToBytes(data) : data\n  const cursor = createCursor(bytes)\n\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 as readonly AbiParameter[],\n      size: size(data),\n    })\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 as never\n}\n\ntype DecodeParameterErrorType =\n  | DecodeArrayErrorType\n  | DecodeTupleErrorType\n  | DecodeAddressErrorType\n  | DecodeBoolErrorType\n  | DecodeBytesErrorType\n  | DecodeNumberErrorType\n  | DecodeStringErrorType\n  | InvalidAbiDecodingTypeErrorType\n\nfunction decodeParameter(\n  cursor: Cursor,\n  param: AbiParameter,\n  { staticPosition }: { staticPosition: number },\n) {\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 as TupleAbiParameter, { staticPosition })\n\n  if (param.type === 'address') return decodeAddress(cursor)\n  if (param.type === 'bool') 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') return decodeString(cursor, { staticPosition })\n  throw new InvalidAbiDecodingTypeError(param.type, {\n    docsPath: '/docs/contract/decodeAbiParameters',\n  })\n}\n\n////////////////////////////////////////////////////////////////////\n// Type Decoders\n\nconst sizeOfLength = 32\nconst sizeOfOffset = 32\n\ntype DecodeAddressErrorType =\n  | ChecksumAddressErrorType\n  | BytesToHexErrorType\n  | SliceBytesErrorType\n  | ErrorType\n\nfunction decodeAddress(cursor: Cursor) {\n  const value = cursor.readBytes(32)\n  return [checksumAddress(bytesToHex(sliceBytes(value, -20))), 32]\n}\n\ntype DecodeArrayErrorType = BytesToNumberErrorType | ErrorType\n\nfunction decodeArray(\n  cursor: Cursor,\n  param: AbiParameter,\n  { length, staticPosition }: { length: number | null; staticPosition: number },\n) {\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\n    // Start is the static position of current slot + offset.\n    const start = staticPosition + offset\n    const startOfData = start + sizeOfLength\n\n    // Get the length of the array from the offset.\n    cursor.setPosition(start)\n    const length = bytesToNumber(cursor.readBytes(sizeOfLength))\n\n    // Check if the array has any dynamic children.\n    const dynamicChild = hasDynamicChild(param)\n\n    let consumed = 0\n    const value: unknown[] = []\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\n    // As we have gone wondering, restore to the original position + next slot.\n    cursor.setPosition(staticPosition + 32)\n    return [value, 32]\n  }\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\n    // Start is the static position of current slot + offset.\n    const start = staticPosition + offset\n\n    const value: unknown[] = []\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\n    // As we have gone wondering, restore to the original position + next slot.\n    cursor.setPosition(staticPosition + 32)\n    return [value, 32]\n  }\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: unknown[] = []\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}\n\ntype DecodeBoolErrorType = BytesToBoolErrorType | ErrorType\n\nfunction decodeBool(cursor: Cursor) {\n  return [bytesToBool(cursor.readBytes(32), { size: 32 }), 32]\n}\n\ntype DecodeBytesErrorType =\n  | BytesToNumberErrorType\n  | BytesToHexErrorType\n  | ErrorType\n\nfunction decodeBytes(\n  cursor: Cursor,\n  param: AbiParameter,\n  { staticPosition }: { staticPosition: number },\n) {\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\n    // Set position of the cursor to start of bytes data.\n    cursor.setPosition(staticPosition + offset)\n\n    const length = bytesToNumber(cursor.readBytes(32))\n\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\n    const data = cursor.readBytes(length)\n\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\n  const value = bytesToHex(cursor.readBytes(Number.parseInt(size, 10), 32))\n  return [value, 32]\n}\n\ntype DecodeNumberErrorType =\n  | BytesToNumberErrorType\n  | BytesToBigIntErrorType\n  | ErrorType\n\nfunction decodeNumber(cursor: Cursor, param: AbiParameter) {\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}\n\ntype TupleAbiParameter = AbiParameter & { components: readonly AbiParameter[] }\n\ntype DecodeTupleErrorType = BytesToNumberErrorType | ErrorType\n\nfunction decodeTuple(\n  cursor: Cursor,\n  param: TupleAbiParameter,\n  { staticPosition }: { staticPosition: number },\n) {\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 =\n    param.components.length === 0 || param.components.some(({ name }) => !name)\n\n  // Initialize the value to an object or an array, depending on whether the\n  // tuple is named or unnamed.\n  const value: any = hasUnnamedChild ? [] : {}\n  let consumed = 0\n\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\n    // Start is the static position of referencing slot + offset.\n    const start = staticPosition + offset\n\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\n    // As we have gone wondering, restore to the original position + next slot.\n    cursor.setPosition(staticPosition + 32)\n    return [value, 32]\n  }\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}\n\ntype DecodeStringErrorType =\n  | BytesToNumberErrorType\n  | BytesToStringErrorType\n  | TrimErrorType\n  | ErrorType\n\nfunction decodeString(\n  cursor: Cursor,\n  { staticPosition }: { staticPosition: number },\n) {\n  // Get offset to start of string data.\n  const offset = bytesToNumber(cursor.readBytes(32))\n\n  // Start is the static position of current slot + offset.\n  const start = staticPosition + offset\n  cursor.setPosition(start)\n\n  const length = bytesToNumber(cursor.readBytes(32))\n\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\n  const data = cursor.readBytes(length, 32)\n  const value = bytesToString(trim(data))\n\n  // As we have gone wondering, restore to the original position + next slot.\n  cursor.setPosition(staticPosition + 32)\n\n  return [value, 32]\n}\n\nfunction hasDynamicChild(param: AbiParameter) {\n  const { type } = param\n  if (type === 'string') return true\n  if (type === 'bytes') return true\n  if (type.endsWith('[]')) return true\n\n  if (type === 'tuple') return (param as any).components?.some(hasDynamicChild)\n\n  const arrayComponents = getArrayComponents(param.type)\n  if (\n    arrayComponents &&\n    hasDynamicChild({ ...param, type: arrayComponents[1] } as AbiParameter)\n  )\n    return true\n\n  return false\n}\n","export const etherUnits = {\n  gwei: 9,\n  wei: 18,\n}\nexport const gweiUnits = {\n  ether: -9,\n  wei: 9,\n}\nexport const weiUnits = {\n  ether: -18,\n  gwei: -9,\n}\n","// the below files are auto-generated and will be\n// built at build time. They are not checked in to git.\n// The can be generated by running `pnpm run prepack` in the root\nexport * from \"./generated/wagmi\";\nexport * from \"./typedData\";\nexport * from \"./types\";\nexport * from \"./encoding\";\nexport * as contracts1155 from \"./generated/1155\";\nexport * as sparks from \"./generated/sparks\";\n","//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// AutoSwapper\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const autoSwapperABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: '_router',\n        internalType: 'contract ISwapRouter',\n        type: 'address',\n      },\n      { name: '_swapRecipient', internalType: 'address', type: 'address' },\n      { name: '_swapper', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'router',\n    outputs: [\n      { name: '', internalType: 'contract ISwapRouter', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct AutoSwapper.ExactInputParams',\n        type: 'tuple',\n        components: [\n          { name: 'path', internalType: 'bytes', type: 'bytes' },\n          { name: 'amountIn', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'amountOutMinimum',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n        ],\n      },\n    ],\n    name: 'swapExactInput',\n    outputs: [{ name: 'amountOut', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct AutoSwapper.ExactInputSingleParams',\n        type: 'tuple',\n        components: [\n          { name: 'tokenIn', internalType: 'address', type: 'address' },\n          { name: 'tokenOut', internalType: 'address', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'amountIn', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'amountOutMinimum',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'sqrtPriceLimitX96',\n            internalType: 'uint160',\n            type: 'uint160',\n          },\n        ],\n      },\n    ],\n    name: 'swapExactInputSingle',\n    outputs: [{ name: 'amountOut', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'swapRecipient',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'swapper',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  { type: 'error', inputs: [], name: 'InvalidRecipient' },\n  { type: 'error', inputs: [], name: 'InvalidSelector' },\n  { type: 'error', inputs: [], name: 'NotSwapper' },\n] as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// BuySupplyWithSwapRouterHook\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0xd8CC7bCA1dE52eA788829B16E375e9B96C18D433)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xE4Ec8cE893Cd41965b1aE27F1ad9798F207427aE)\n */\nexport const buySupplyWithSwapRouterHookABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: '_factory',\n        internalType: 'contract IZoraFactory',\n        type: 'address',\n      },\n      { name: '_swapRouter', internalType: 'address', type: 'address' },\n      { name: '_poolManager', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'coin', internalType: 'contract ICoin', type: 'address' },\n      { name: 'hookData', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'afterCoinDeploy',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'decodeV4RouteData',\n    outputs: [\n      {\n        name: 'v4Route',\n        internalType: 'struct PoolKey[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'startAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct BuySupplyWithV4SwapHook.InitialSupplyParams',\n        type: 'tuple',\n        components: [\n          { name: 'buyRecipient', internalType: 'address', type: 'address' },\n          { name: 'v3Route', internalType: 'bytes', type: 'bytes' },\n          {\n            name: 'v4Route',\n            internalType: 'struct PoolKey[]',\n            type: 'tuple[]',\n            components: [\n              { name: 'currency0', internalType: 'Currency', type: 'address' },\n              { name: 'currency1', internalType: 'Currency', type: 'address' },\n              { name: 'fee', internalType: 'uint24', type: 'uint24' },\n              { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n              {\n                name: 'hooks',\n                internalType: 'contract IHooks',\n                type: 'address',\n              },\n            ],\n          },\n          { name: 'inputCurrency', internalType: 'address', type: 'address' },\n          { name: 'inputAmount', internalType: 'uint256', type: 'uint256' },\n          { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'encodeBuySupplyWithV4SwapHookData',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'factory',\n    outputs: [\n      { name: '', internalType: 'contract IZoraFactory', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'poolManager',\n    outputs: [\n      { name: '', internalType: 'contract IPoolManager', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'swapRouter',\n    outputs: [\n      { name: '', internalType: 'contract ISwapRouter', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'unlockCallback',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'coin', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'coinsPurchased',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      { name: 'v3Route', internalType: 'bytes', type: 'bytes', indexed: false },\n      {\n        name: 'v4Route',\n        internalType: 'struct PoolKey[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'inputCurrency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'inputAmount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'v4SwapInput',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'BuyInitialSupply',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'HookNotImplemented' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'inputAmount', internalType: 'uint256', type: 'uint256' },\n      { name: 'availableAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InsufficientInputCurrency',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientOutputAmount' },\n  { type: 'error', inputs: [], name: 'NotFactory' },\n  { type: 'error', inputs: [], name: 'OnlyPoolManager' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  { type: 'error', inputs: [], name: 'V3RouteDoesNotConnectToV4RouteStart' },\n] as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0xd8CC7bCA1dE52eA788829B16E375e9B96C18D433)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xE4Ec8cE893Cd41965b1aE27F1ad9798F207427aE)\n */\nexport const buySupplyWithSwapRouterHookAddress = {\n  8453: '0xd8CC7bCA1dE52eA788829B16E375e9B96C18D433',\n  84532: '0xE4Ec8cE893Cd41965b1aE27F1ad9798F207427aE',\n} as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0xd8CC7bCA1dE52eA788829B16E375e9B96C18D433)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xE4Ec8cE893Cd41965b1aE27F1ad9798F207427aE)\n */\nexport const buySupplyWithSwapRouterHookConfig = {\n  address: buySupplyWithSwapRouterHookAddress,\n  abi: buySupplyWithSwapRouterHookABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// CallerAndCommenter\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n */\nexport const callerAndCommenterABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      { name: '_comments', internalType: 'address', type: 'address' },\n      { name: '_zoraTimedSale', internalType: 'address', type: 'address' },\n      { name: '_swapHelper', internalType: 'address', type: 'address' },\n      { name: '_sparksValue', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'UPGRADE_INTERFACE_VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'commenter', internalType: 'address', type: 'address' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'collection', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'excessRefundRecipient',\n        internalType: 'address payable',\n        type: 'address',\n      },\n      { name: 'maxEthToSpend', internalType: 'uint256', type: 'uint256' },\n      { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' },\n      { name: 'comment', internalType: 'string', type: 'string' },\n    ],\n    name: 'buyOnSecondaryAndComment',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'comments',\n    outputs: [\n      { name: '', internalType: 'contract IComments', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'eip712Domain',\n    outputs: [\n      { name: 'fields', internalType: 'bytes1', type: 'bytes1' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'version', internalType: 'string', type: 'string' },\n      { name: 'chainId', internalType: 'uint256', type: 'uint256' },\n      { name: 'verifyingContract', internalType: 'address', type: 'address' },\n      { name: 'salt', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType:\n          'struct ICallerAndCommenter.PermitBuyOnSecondaryAndComment',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'collection', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'maxEthToSpend', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'sqrtPriceLimitX96',\n            internalType: 'uint160',\n            type: 'uint160',\n          },\n          { name: 'comment', internalType: 'string', type: 'string' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n          { name: 'sourceChainId', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'destinationChainId',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n        ],\n      },\n    ],\n    name: 'hashPermitBuyOnSecondaryAndComment',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType:\n          'struct ICallerAndCommenter.PermitTimedSaleMintAndComment',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'collection', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'mintReferral', internalType: 'address', type: 'address' },\n          { name: 'comment', internalType: 'string', type: 'string' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n          { name: 'sourceChainId', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'destinationChainId',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n        ],\n      },\n    ],\n    name: 'hashPermitTimedSaleMintAndComment',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'nonceUsed',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType:\n          'struct ICallerAndCommenter.PermitBuyOnSecondaryAndComment',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'collection', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'maxEthToSpend', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'sqrtPriceLimitX96',\n            internalType: 'uint160',\n            type: 'uint160',\n          },\n          { name: 'comment', internalType: 'string', type: 'string' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n          { name: 'sourceChainId', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'destinationChainId',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitBuyOnSecondaryAndComment',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType:\n          'struct ICallerAndCommenter.PermitTimedSaleMintAndComment',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'collection', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'mintReferral', internalType: 'address', type: 'address' },\n          { name: 'comment', internalType: 'string', type: 'string' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n          { name: 'sourceChainId', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'destinationChainId',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitTimedSaleMintAndComment',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'secondarySwap',\n    outputs: [\n      { name: '', internalType: 'contract ISecondarySwap', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'commenter', internalType: 'address', type: 'address' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'collection', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address payable', type: 'address' },\n      { name: 'minEthToAcquire', internalType: 'uint256', type: 'uint256' },\n      { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' },\n      { name: 'comment', internalType: 'string', type: 'string' },\n    ],\n    name: 'sellOnSecondaryAndComment',\n    outputs: [\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'sparkValue',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'commenter', internalType: 'address', type: 'address' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'collection', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'mintReferral', internalType: 'address', type: 'address' },\n      { name: 'comment', internalType: 'string', type: 'string' },\n    ],\n    name: 'timedSaleMintAndComment',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraTimedSale',\n    outputs: [\n      {\n        name: '',\n        internalType: 'contract IZoraTimedSaleStrategy',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'commentId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: true,\n      },\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'quantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      { name: 'text', internalType: 'string', type: 'string', indexed: false },\n    ],\n    name: 'MintedAndCommented',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'commentId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: true,\n      },\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'quantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'comment',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'swapDirection',\n        internalType: 'enum ICallerAndCommenter.SwapDirection',\n        type: 'uint8',\n        indexed: true,\n      },\n    ],\n    name: 'SwappedOnSecondaryAndCommented',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'address', type: 'address' },\n      { name: 'actual', internalType: 'address', type: 'address' },\n    ],\n    name: 'CommenterMismatch',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  {\n    type: 'error',\n    inputs: [\n      {\n        name: 'wrongDestinationChainId',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n    ],\n    name: 'IncorrectDestinationChain',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidSignature' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'collection', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'SaleNotSet',\n  },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'currentName', internalType: 'string', type: 'string' },\n      { name: 'newName', internalType: 'string', type: 'string' },\n    ],\n    name: 'UpgradeToMismatchedContractName',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'uint256', type: 'uint256' },\n      { name: 'actual', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'WrongValueSent',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ERC1167FailedCreateClone' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  { type: 'error', inputs: [], name: 'EndTimeCannotBeInThePast' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyLaunched' },\n  { type: 'error', inputs: [], name: 'MarketMinimumNotReached' },\n  { type: 'error', inputs: [], name: 'MinimumMarketEthNotMet' },\n  { type: 'error', inputs: [], name: 'NeedsToBeAtLeastOneSaleToStartMarket' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'OnlyZoraRewardRecipient' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },\n  { type: 'error', inputs: [], name: 'RequestMintInvalidUseMint' },\n  { type: 'error', inputs: [], name: 'ResetSaleNotAvailable' },\n  { type: 'error', inputs: [], name: 'SaleAlreadySet' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  { type: 'error', inputs: [], name: 'SaleInProgress' },\n  { type: 'error', inputs: [], name: 'SaleNotSet' },\n  { type: 'error', inputs: [], name: 'SaleV2AlreadyStarted' },\n  { type: 'error', inputs: [], name: 'SaleV2Ended' },\n  { type: 'error', inputs: [], name: 'SaleV2NotSet' },\n  { type: 'error', inputs: [], name: 'StartTimeCannotBeAfterEndTime' },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ZoraCreator1155ContractNeedsToSupportReduceSupply',\n  },\n  { type: 'error', inputs: [], name: 'ADDRESS_DELEGATECALL_TO_NON_CONTRACT' },\n  { type: 'error', inputs: [], name: 'ADDRESS_LOW_LEVEL_CALL_FAILED' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'user', internalType: 'address', type: 'address' },\n    ],\n    name: 'Burn_NotOwnerOrApproved',\n  },\n  { type: 'error', inputs: [], name: 'CREATOR_FUNDS_RECIPIENT_NOT_SET' },\n  {\n    type: 'error',\n    inputs: [{ name: 'reason', internalType: 'bytes', type: 'bytes' }],\n    name: 'CallFailed',\n  },\n  { type: 'error', inputs: [], name: 'Call_TokenIdMismatch' },\n  { type: 'error', inputs: [], name: 'CallerNotZoraCreator1155' },\n  { type: 'error', inputs: [], name: 'CanOnlyReduceMaxSupply' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'totalMinted', internalType: 'uint256', type: 'uint256' },\n      { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'CannotMintMoreTokens',\n  },\n  { type: 'error', inputs: [], name: 'CannotReduceMaxSupplyBelowMinted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'proposedAddress', internalType: 'address', type: 'address' },\n    ],\n    name: 'Config_TransferHookNotSupported',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_ACCOUNTS_AND_IDS_LENGTH_MISMATCH',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_ADDRESS_ZERO_IS_NOT_A_VALID_OWNER',\n  },\n  { type: 'error', inputs: [], name: 'ERC1155_BURN_AMOUNT_EXCEEDS_BALANCE' },\n  { type: 'error', inputs: [], name: 'ERC1155_BURN_FROM_ZERO_ADDRESS' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_CALLER_IS_NOT_TOKEN_OWNER_OR_APPROVED',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_ERC1155RECEIVER_REJECTED_TOKENS',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_IDS_AND_AMOUNTS_LENGTH_MISMATCH',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_INSUFFICIENT_BALANCE_FOR_TRANSFER',\n  },\n  { type: 'error', inputs: [], name: 'ERC1155_MINT_TO_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'ERC1155_MINT_TO_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'ERC1155_SETTING_APPROVAL_FOR_SELF' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_TRANSFER_TO_NON_ERC1155RECEIVER_IMPLEMENTER',\n  },\n  { type: 'error', inputs: [], name: 'ERC1155_TRANSFER_TO_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'ERC1967_NEW_IMPL_NOT_CONTRACT' },\n  { type: 'error', inputs: [], name: 'ERC1967_NEW_IMPL_NOT_UUPS' },\n  { type: 'error', inputs: [], name: 'ERC1967_UNSUPPORTED_PROXIABLEUUID' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ETHWithdrawFailed',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'FUNCTION_MUST_BE_CALLED_THROUGH_ACTIVE_PROXY',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'FUNCTION_MUST_BE_CALLED_THROUGH_DELEGATECALL',\n  },\n  { type: 'error', inputs: [], name: 'FirstMinterAddressZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n      { name: 'contractValue', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'FundsWithdrawInsolvent',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING',\n  },\n  { type: 'error', inputs: [], name: 'INVALID_ADDRESS_ZERO' },\n  { type: 'error', inputs: [], name: 'INVALID_ETH_AMOUNT' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'mintTo', internalType: 'address', type: 'address' },\n      { name: 'merkleProof', internalType: 'bytes32[]', type: 'bytes32[]' },\n      { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'InvalidMerkleProof',\n  },\n  { type: 'error', inputs: [], name: 'InvalidMintSchedule' },\n  { type: 'error', inputs: [], name: 'InvalidMintSchedule' },\n  { type: 'error', inputs: [], name: 'InvalidPremintVersion' },\n  { type: 'error', inputs: [], name: 'InvalidSignature' },\n  { type: 'error', inputs: [], name: 'InvalidSignatureVersion' },\n  {\n    type: 'error',\n    inputs: [{ name: 'magicValue', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'MintNotYetStarted' },\n  { type: 'error', inputs: [], name: 'Mint_InsolventSaleTransfer' },\n  { type: 'error', inputs: [], name: 'Mint_InvalidMintArrayLength' },\n  { type: 'error', inputs: [], name: 'Mint_TokenIDMintNotAllowed' },\n  { type: 'error', inputs: [], name: 'Mint_UnknownCommand' },\n  { type: 'error', inputs: [], name: 'Mint_ValueTransferFail' },\n  { type: 'error', inputs: [], name: 'MinterContractAlreadyExists' },\n  { type: 'error', inputs: [], name: 'MinterContractDoesNotExist' },\n  { type: 'error', inputs: [], name: 'NewOwnerNeedsToBeAdmin' },\n  {\n    type: 'error',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'NoRendererForToken',\n  },\n  { type: 'error', inputs: [], name: 'NonEthRedemption' },\n  { type: 'error', inputs: [], name: 'ONLY_CREATE_REFERRAL' },\n  { type: 'error', inputs: [], name: 'OnlyAllowedForRegisteredMinter' },\n  { type: 'error', inputs: [], name: 'OnlyAllowedForTimedSaleStrategy' },\n  { type: 'error', inputs: [], name: 'OnlyTransfersFromZoraMints' },\n  { type: 'error', inputs: [], name: 'PremintDeleted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ProtocolRewardsWithdrawFailed',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'renderer', internalType: 'address', type: 'address' }],\n    name: 'RendererNotValid',\n  },\n  { type: 'error', inputs: [], name: 'Renderer_NotValidRendererContract' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'targetContract', internalType: 'address', type: 'address' },\n    ],\n    name: 'Sale_CannotCallNonSalesContract',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'uint256', type: 'uint256' },\n      { name: 'actual', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'TokenIdMismatch',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'UUPS_UPGRADEABLE_MUST_NOT_BE_CALLED_THROUGH_DELEGATECALL',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n      { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserExceedsMintLimit',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'role', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserMissingRoleForToken',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'premintSignerContractFailedToRecoverSigner',\n  },\n  { type: 'error', inputs: [], name: 'premintSignerContractNotAContract' },\n  { type: 'error', inputs: [], name: 'AccessControlBadConfirmation' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'neededRole', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'AccessControlUnauthorizedAccount',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ArrayLengthMismatch' },\n  { type: 'error', inputs: [], name: 'CannotSparkOwnComment' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'commentAddress', internalType: 'address', type: 'address' },\n      { name: 'commentTokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'replyAddress', internalType: 'address', type: 'address' },\n      { name: 'replyTokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'CommentAddressOrTokenIdsDoNotMatch',\n  },\n  { type: 'error', inputs: [], name: 'CommentDoesntExist' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'address', type: 'address' },\n      { name: 'actual', internalType: 'address', type: 'address' },\n    ],\n    name: 'CommenterMismatch',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'commentId', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'DuplicateComment',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  { type: 'error', inputs: [], name: 'EmptyComment' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  {\n    type: 'error',\n    inputs: [\n      {\n        name: 'wrongDestinationChainId',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n    ],\n    name: 'IncorrectDestinationChain',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'actual', internalType: 'uint256', type: 'uint256' },\n      { name: 'expected', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'IncorrectETHAmountForSparks',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidSignature' },\n  { type: 'error', inputs: [], name: 'MustSendAtLeastOneSpark' },\n  { type: 'error', inputs: [], name: 'NoFundsRecipient' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotSmartWallet' },\n  { type: 'error', inputs: [], name: 'NotSmartWalletOwner' },\n  { type: 'error', inputs: [], name: 'OnlySparksContract' },\n  { type: 'error', inputs: [], name: 'TransferFailed' },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'currentName', internalType: 'string', type: 'string' },\n      { name: 'newName', internalType: 'string', type: 'string' },\n    ],\n    name: 'UpgradeToMismatchedContractName',\n  },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n */\nexport const callerAndCommenterAddress = {\n  1: '0x77777775C5074b74540d9cC63Dd840A8c692B4B5',\n  10: '0x77777775C5074b74540d9cC63Dd840A8c692B4B5',\n  8453: '0x77777775C5074b74540d9cC63Dd840A8c692B4B5',\n  42161: '0x77777775C5074b74540d9cC63Dd840A8c692B4B5',\n  81457: '0x77777775C5074b74540d9cC63Dd840A8c692B4B5',\n  84532: '0x77777775C5074b74540d9cC63Dd840A8c692B4B5',\n  7777777: '0x77777775C5074b74540d9cC63Dd840A8c692B4B5',\n  11155111: '0x77777775C5074b74540d9cC63Dd840A8c692B4B5',\n  11155420: '0x77777775C5074b74540d9cC63Dd840A8c692B4B5',\n  999999999: '0x77777775C5074b74540d9cC63Dd840A8c692B4B5',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777775C5074b74540d9cC63Dd840A8c692B4B5)\n */\nexport const callerAndCommenterConfig = {\n  address: callerAndCommenterAddress,\n  abi: callerAndCommenterABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Coin\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const coinABI = [\n  {\n    type: 'function',\n    inputs: [],\n    name: 'DOMAIN_SEPARATOR',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'addOwner',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'accounts', internalType: 'address[]', type: 'address[]' },\n    ],\n    name: 'addOwners',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'airlock',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'spender', internalType: 'address', type: 'address' },\n    ],\n    name: 'allowance',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'approve',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'balanceOf',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],\n    name: 'burn',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'coinType',\n    outputs: [\n      { name: '', internalType: 'enum IHasCoinType.CoinType', type: 'uint8' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'creationInfo',\n    outputs: [\n      { name: 'creationTimestamp', internalType: 'uint256', type: 'uint256' },\n      { name: 'isDeploying', internalType: 'bool', type: 'bool' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'currency',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'decimals',\n    outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'dopplerFeeRecipient',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'eip712Domain',\n    outputs: [\n      { name: 'fields', internalType: 'bytes1', type: 'bytes1' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'version', internalType: 'string', type: 'string' },\n      { name: 'chainId', internalType: 'uint256', type: 'uint256' },\n      { name: 'verifyingContract', internalType: 'address', type: 'address' },\n      { name: 'salt', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'coinVersionLookup',\n        internalType: 'contract IDeployedCoinVersionLookup',\n        type: 'address',\n      },\n    ],\n    name: 'getPayoutSwapPath',\n    outputs: [\n      {\n        name: 'payoutSwapPath',\n        internalType: 'struct IHasSwapPath.PayoutSwapPath',\n        type: 'tuple',\n        components: [\n          {\n            name: 'path',\n            internalType: 'struct PathKey[]',\n            type: 'tuple[]',\n            components: [\n              {\n                name: 'intermediateCurrency',\n                internalType: 'Currency',\n                type: 'address',\n              },\n              { name: 'fee', internalType: 'uint24', type: 'uint24' },\n              { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n              {\n                name: 'hooks',\n                internalType: 'contract IHooks',\n                type: 'address',\n              },\n              { name: 'hookData', internalType: 'bytes', type: 'bytes' },\n            ],\n          },\n          { name: 'currencyIn', internalType: 'Currency', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getPoolConfiguration',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct PoolConfiguration',\n        type: 'tuple',\n        components: [\n          { name: 'version', internalType: 'uint8', type: 'uint8' },\n          { name: 'numPositions', internalType: 'uint16', type: 'uint16' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          {\n            name: 'numDiscoveryPositions',\n            internalType: 'uint16[]',\n            type: 'uint16[]',\n          },\n          { name: 'tickLower', internalType: 'int24[]', type: 'int24[]' },\n          { name: 'tickUpper', internalType: 'int24[]', type: 'int24[]' },\n          {\n            name: 'maxDiscoverySupplyShare',\n            internalType: 'uint256[]',\n            type: 'uint256[]',\n          },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getPoolKey',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'hooks',\n    outputs: [{ name: '', internalType: 'contract IHooks', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient_', internalType: 'address', type: 'address' },\n      { name: 'owners_', internalType: 'address[]', type: 'address[]' },\n      { name: 'tokenURI_', internalType: 'string', type: 'string' },\n      { name: 'name_', internalType: 'string', type: 'string' },\n      { name: 'symbol_', internalType: 'string', type: 'string' },\n      { name: 'platformReferrer_', internalType: 'address', type: 'address' },\n      { name: 'currency_', internalType: 'address', type: 'address' },\n      {\n        name: 'poolKey_',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },\n      {\n        name: 'poolConfiguration_',\n        internalType: 'struct PoolConfiguration',\n        type: 'tuple',\n        components: [\n          { name: 'version', internalType: 'uint8', type: 'uint8' },\n          { name: 'numPositions', internalType: 'uint16', type: 'uint16' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          {\n            name: 'numDiscoveryPositions',\n            internalType: 'uint16[]',\n            type: 'uint16[]',\n          },\n          { name: 'tickLower', internalType: 'int24[]', type: 'int24[]' },\n          { name: 'tickUpper', internalType: 'int24[]', type: 'int24[]' },\n          {\n            name: 'maxDiscoverySupplyShare',\n            internalType: 'uint256[]',\n            type: 'uint256[]',\n          },\n        ],\n      },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'isOwner',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newHook', internalType: 'address', type: 'address' },\n      { name: 'additionalData', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'migrateLiquidity',\n    outputs: [\n      {\n        name: 'newPoolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'name',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'nonces',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owners',\n    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'payoutRecipient',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n      { name: 'v', internalType: 'uint8', type: 'uint8' },\n      { name: 'r', internalType: 'bytes32', type: 'bytes32' },\n      { name: 's', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'permit',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'platformReferrer',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'poolManager',\n    outputs: [\n      { name: '', internalType: 'contract IPoolManager', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'protocolRewardRecipient',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'protocolRewards',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'removeOwner',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'accounts', internalType: 'address[]', type: 'address[]' },\n    ],\n    name: 'removeOwners',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'revokeOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newURI', internalType: 'string', type: 'string' }],\n    name: 'setContractURI',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newName', internalType: 'string', type: 'string' },\n      { name: 'newSymbol', internalType: 'string', type: 'string' },\n    ],\n    name: 'setNameAndSymbol',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newPayoutRecipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'setPayoutRecipient',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'symbol',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'tokenURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'totalSupply',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'totalSupplyForPositions',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'transfer',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'transferFrom',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'spender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'value',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Approval',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'buyer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tradeReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'coinsPurchased',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'amountFee',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'amountSold',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'CoinBuy',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'payoutRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'platformReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'protocolRewardRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'marketRewards',\n        internalType: 'struct ICoin.MarketRewards',\n        type: 'tuple',\n        components: [\n          {\n            name: 'totalAmountCurrency',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'totalAmountCoin', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'creatorPayoutAmountCurrency',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'creatorPayoutAmountCoin',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'platformReferrerAmountCurrency',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'platformReferrerAmountCoin',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'protocolAmountCurrency',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'protocolAmountCoin',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'CoinMarketRewards',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'prevRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'CoinPayoutRecipientUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'seller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tradeReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'coinsSold',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'amountFee',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'amountPurchased',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'CoinSell',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'payoutRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'platformReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tradeReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'protocolRewardRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'creatorReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'platformReferrerReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'traderReferrerReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'protocolReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'CoinTradeRewards',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'senderBalance',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'recipientBalance',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'CoinTransfer',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      { name: 'name', internalType: 'string', type: 'string', indexed: false },\n    ],\n    name: 'ContractMetadataUpdated',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'ContractURIUpdated' },\n  { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'fromPoolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'fromPoolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'toPoolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'toPoolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n    ],\n    name: 'LiquidityMigrated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newName',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'newSymbol',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'NameAndSymbolUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'prevOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'value',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Transfer',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'AlreadyOwner' },\n  { type: 'error', inputs: [], name: 'CannotMintZeroLiquidity' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'DopplerPoolMustHaveMoreThan2DiscoveryPositions',\n  },\n  { type: 'error', inputs: [], name: 'ECDSAInvalidSignature' },\n  {\n    type: 'error',\n    inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }],\n    name: 'ECDSAInvalidSignatureLength',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 's', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'ECDSAInvalidSignatureS',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'allowance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientAllowance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidApprover',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidReceiver',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSender',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'spender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSpender',\n  },\n  { type: 'error', inputs: [], name: 'ERC20TransferAmountMismatch' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'signer', internalType: 'address', type: 'address' },\n      { name: 'owner', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC2612InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'EthAmountMismatch' },\n  { type: 'error', inputs: [], name: 'EthAmountTooSmall' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'EthTransferInvalid' },\n  { type: 'error', inputs: [], name: 'InitialOrderSizeTooLarge' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientLiquidity' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidCurrency' },\n  { type: 'error', inputs: [], name: 'InvalidCurrencyLowerTick' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidMarketType' },\n  { type: 'error', inputs: [], name: 'InvalidPoolVersion' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tickLower', internalType: 'int24', type: 'int24' },\n      { name: 'tickUpper', internalType: 'int24', type: 'int24' },\n    ],\n    name: 'InvalidTickRangeMisordered',\n  },\n  { type: 'error', inputs: [], name: 'InvalidWethLowerTick' },\n  { type: 'error', inputs: [], name: 'LegacyPoolMustHaveOneDiscoveryPosition' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyGraduated' },\n  { type: 'error', inputs: [], name: 'MarketNotGraduated' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MaxShareToBeSoldExceeded',\n  },\n  { type: 'error', inputs: [], name: 'NameIsRequired' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotOwner' },\n  { type: 'error', inputs: [], name: 'NumDiscoveryPositionsOutOfRange' },\n  { type: 'error', inputs: [], name: 'OneOwnerRequired' },\n  { type: 'error', inputs: [], name: 'OnlyOwner' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'pool', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyPool',\n  },\n  { type: 'error', inputs: [], name: 'OnlyWeth' },\n  { type: 'error', inputs: [], name: 'OwnerCannotBeAddressZero' },\n  { type: 'error', inputs: [], name: 'SlippageBoundsExceeded' },\n  { type: 'error', inputs: [], name: 'UseRevokeOwnershipToRemoveSelf' },\n] as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// CoinFactory\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777751622c0d3258f214F9DF38E35BF45baF3)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xaF88840cb637F2684A9E460316b1678AD6245e4a)\n */\nexport const coinFactoryABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      { name: 'coinV4Impl_', internalType: 'address', type: 'address' },\n      { name: 'creatorCoinImpl_', internalType: 'address', type: 'address' },\n      { name: 'trendCoinImpl_', internalType: 'address', type: 'address' },\n      { name: 'hook_', internalType: 'address', type: 'address' },\n      { name: 'zoraHookRegistry_', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'UPGRADE_INTERFACE_VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'msgSender', internalType: 'address', type: 'address' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'coinSalt', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'coinAddress',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'coinV4Impl',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contentCoinHook',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'creatorCoinHook',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'creatorCoinImpl',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'currency', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'int24', type: 'int24' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'deploy',\n    outputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'postDeployHook', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookData', internalType: 'bytes', type: 'bytes' },\n      { name: 'coinSalt', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'deploy',\n    outputs: [\n      { name: 'coin', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookDataOut', internalType: 'bytes', type: 'bytes' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'deploy',\n    outputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'coinSalt', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'deployCreatorCoin',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'postDeployHook', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookData', internalType: 'bytes', type: 'bytes' },\n      { name: 'coinSalt', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'deployCreatorCoin',\n    outputs: [\n      { name: 'coin', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookDataOut', internalType: 'bytes', type: 'bytes' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'postDeployHook', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookData', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'deployTrendCoin',\n    outputs: [\n      { name: 'coin', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookDataOut', internalType: 'bytes', type: 'bytes' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'deployHook', internalType: 'address', type: 'address' },\n      { name: 'hookData', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'deployWithHook',\n    outputs: [\n      { name: 'coin', internalType: 'address', type: 'address' },\n      { name: 'hookDataOut', internalType: 'bytes', type: 'bytes' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'coin', internalType: 'address', type: 'address' }],\n    name: 'getVersionForDeployedCoin',\n    outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'hook',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'initialOwner', internalType: 'address', type: 'address' },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'currency', internalType: 'address', type: 'address' },\n      { name: 'tickLower', internalType: 'int24[]', type: 'int24[]' },\n      { name: 'tickUpper', internalType: 'int24[]', type: 'int24[]' },\n      {\n        name: 'numDiscoveryPositions',\n        internalType: 'uint16[]',\n        type: 'uint16[]',\n      },\n      {\n        name: 'maxDiscoverySupplyShare',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n      },\n    ],\n    name: 'setTrendCoinPoolConfig',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'symbol', internalType: 'string', type: 'string' }],\n    name: 'trendCoinAddress',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'trendCoinImpl',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'trendCoinPoolConfig',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraHookRegistry',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'payoutRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'platformReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      { name: 'uri', internalType: 'string', type: 'string', indexed: false },\n      { name: 'name', internalType: 'string', type: 'string', indexed: false },\n      {\n        name: 'symbol',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'coin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'pool',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'version',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'CoinCreated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'payoutRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'platformReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      { name: 'uri', internalType: 'string', type: 'string', indexed: false },\n      { name: 'name', internalType: 'string', type: 'string', indexed: false },\n      {\n        name: 'symbol',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'coin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'poolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'version',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'CoinCreatedV4',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'payoutRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'platformReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      { name: 'uri', internalType: 'string', type: 'string', indexed: false },\n      { name: 'name', internalType: 'string', type: 'string', indexed: false },\n      {\n        name: 'symbol',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'coin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'poolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'version',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'CreatorCoinCreated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'symbol',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'coin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'poolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'poolConfig',\n        internalType: 'bytes',\n        type: 'bytes',\n        indexed: false,\n      },\n      {\n        name: 'version',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'TrendCoinCreated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'poolConfig',\n        internalType: 'bytes',\n        type: 'bytes',\n        indexed: false,\n      },\n    ],\n    name: 'TrendCoinPoolConfigUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  { type: 'error', inputs: [], name: 'ArrayLengthMismatch' },\n  { type: 'error', inputs: [], name: 'ConfigTickLowerMustBeLessThanTickUpper' },\n  { type: 'error', inputs: [], name: 'Deprecated' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  { type: 'error', inputs: [], name: 'EthTransferInvalid' },\n  { type: 'error', inputs: [], name: 'FailedCall' },\n  { type: 'error', inputs: [], name: 'FailedDeployment' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'InvalidConfig' },\n  { type: 'error', inputs: [], name: 'InvalidHook' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidPoolVersion' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tickLower', internalType: 'int24', type: 'int24' },\n      { name: 'tickUpper', internalType: 'int24', type: 'int24' },\n    ],\n    name: 'InvalidTickRangeMisordered',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MaxShareToBeSoldExceeded',\n  },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NumDiscoveryPositionsOutOfRange' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },\n  {\n    type: 'error',\n    inputs: [{ name: 'symbol', internalType: 'string', type: 'string' }],\n    name: 'TickerAlreadyUsed',\n  },\n  { type: 'error', inputs: [], name: 'TickerInvalidCharacters' },\n  { type: 'error', inputs: [], name: 'TickerTooLong' },\n  { type: 'error', inputs: [], name: 'TickerTooShort' },\n  { type: 'error', inputs: [], name: 'TrendCoinPoolConfigNotSet' },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'currentName', internalType: 'string', type: 'string' },\n      { name: 'newName', internalType: 'string', type: 'string' },\n    ],\n    name: 'UpgradeToMismatchedContractName',\n  },\n  { type: 'error', inputs: [], name: 'UseSpecificTrendCoinInitialize' },\n  { type: 'error', inputs: [], name: 'ZeroDiscoveryPositions' },\n  { type: 'error', inputs: [], name: 'ZeroDiscoverySupplyShare' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'HookNotImplemented' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'inputAmount', internalType: 'uint256', type: 'uint256' },\n      { name: 'availableAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InsufficientInputCurrency',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientOutputAmount' },\n  { type: 'error', inputs: [], name: 'NotFactory' },\n  { type: 'error', inputs: [], name: 'OnlyPoolManager' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  { type: 'error', inputs: [], name: 'V3RouteDoesNotConnectToV4RouteStart' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'AlreadyOwner' },\n  { type: 'error', inputs: [], name: 'CannotMintZeroLiquidity' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'DopplerPoolMustHaveMoreThan2DiscoveryPositions',\n  },\n  { type: 'error', inputs: [], name: 'ECDSAInvalidSignature' },\n  {\n    type: 'error',\n    inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }],\n    name: 'ECDSAInvalidSignatureLength',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 's', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'ECDSAInvalidSignatureS',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'allowance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientAllowance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidApprover',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidReceiver',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSender',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'spender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSpender',\n  },\n  { type: 'error', inputs: [], name: 'ERC20TransferAmountMismatch' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'signer', internalType: 'address', type: 'address' },\n      { name: 'owner', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC2612InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'EthAmountMismatch' },\n  { type: 'error', inputs: [], name: 'EthAmountTooSmall' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'EthTransferInvalid' },\n  { type: 'error', inputs: [], name: 'InitialOrderSizeTooLarge' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientLiquidity' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidCurrency' },\n  { type: 'error', inputs: [], name: 'InvalidCurrencyLowerTick' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidMarketType' },\n  { type: 'error', inputs: [], name: 'InvalidPoolVersion' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tickLower', internalType: 'int24', type: 'int24' },\n      { name: 'tickUpper', internalType: 'int24', type: 'int24' },\n    ],\n    name: 'InvalidTickRangeMisordered',\n  },\n  { type: 'error', inputs: [], name: 'InvalidWethLowerTick' },\n  { type: 'error', inputs: [], name: 'LegacyPoolMustHaveOneDiscoveryPosition' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyGraduated' },\n  { type: 'error', inputs: [], name: 'MarketNotGraduated' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MaxShareToBeSoldExceeded',\n  },\n  { type: 'error', inputs: [], name: 'NameIsRequired' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotOwner' },\n  { type: 'error', inputs: [], name: 'NumDiscoveryPositionsOutOfRange' },\n  { type: 'error', inputs: [], name: 'OneOwnerRequired' },\n  { type: 'error', inputs: [], name: 'OnlyOwner' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'pool', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyPool',\n  },\n  { type: 'error', inputs: [], name: 'OnlyWeth' },\n  { type: 'error', inputs: [], name: 'OwnerCannotBeAddressZero' },\n  { type: 'error', inputs: [], name: 'SlippageBoundsExceeded' },\n  { type: 'error', inputs: [], name: 'UseRevokeOwnershipToRemoveSelf' },\n  { type: 'error', inputs: [], name: 'CoinVersionLookupCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'HookNotImplemented' },\n  {\n    type: 'error',\n    inputs: [{ name: 'callbackId', internalType: 'uint8', type: 'uint8' }],\n    name: 'InvalidCallbackId',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'newHook', internalType: 'address', type: 'address' }],\n    name: 'InvalidNewHook',\n  },\n  {\n    type: 'error',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n    ],\n    name: 'NoCoinForHook',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'coin', internalType: 'address', type: 'address' }],\n    name: 'NotACoin',\n  },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyCoin',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'SafeCastOverflow' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'TrustedMsgSenderLookupCannotBeZeroAddress',\n  },\n  { type: 'error', inputs: [], name: 'UpgradeGateCannotBeZeroAddress' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'oldHook', internalType: 'address', type: 'address' },\n      { name: 'newHook', internalType: 'address', type: 'address' },\n    ],\n    name: 'UpgradePathNotRegistered',\n  },\n  { type: 'error', inputs: [], name: 'ZoraHookRegistryCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'ZoraLimitOrderBookCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ArrayLengthMismatch' },\n  { type: 'error', inputs: [], name: 'CallerNotPermitted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'orderId', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n      { name: 'actualCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'CoinMismatch',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientForwardedFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientTransferFunds' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'startTick', internalType: 'int24', type: 'int24' },\n      { name: 'endTick', internalType: 'int24', type: 'int24' },\n      { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'InvalidFillWindow',\n  },\n  { type: 'error', inputs: [], name: 'InvalidOrder' },\n  { type: 'error', inputs: [], name: 'InvalidPoolKey' },\n  { type: 'error', inputs: [], name: 'MaxFillCountCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'withdrawn', internalType: 'uint256', type: 'uint256' },\n      { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MinAmountNotReached',\n  },\n  { type: 'error', inputs: [], name: 'NativeValueMismatch' },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  { type: 'error', inputs: [], name: 'OnlyZoraHook' },\n  { type: 'error', inputs: [], name: 'OrderClosed' },\n  { type: 'error', inputs: [], name: 'OrderFillable' },\n  { type: 'error', inputs: [], name: 'OrderNotMaker' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'PermittedCallersLengthMismatch' },\n  { type: 'error', inputs: [], name: 'RouterMsgSenderInvalid' },\n  { type: 'error', inputs: [], name: 'UnknownCallback' },\n  { type: 'error', inputs: [], name: 'UnlockedFillNotAllowed' },\n  { type: 'error', inputs: [], name: 'WethTransferFailed' },\n  { type: 'error', inputs: [], name: 'ZeroMaker' },\n  { type: 'error', inputs: [], name: 'ZeroOrderSize' },\n  { type: 'error', inputs: [], name: 'ZeroRealizedOrder' },\n] as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777751622c0d3258f214F9DF38E35BF45baF3)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xaF88840cb637F2684A9E460316b1678AD6245e4a)\n */\nexport const coinFactoryAddress = {\n  8453: '0x777777751622c0d3258f214F9DF38E35BF45baF3',\n  84532: '0xaF88840cb637F2684A9E460316b1678AD6245e4a',\n} as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777751622c0d3258f214F9DF38E35BF45baF3)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xaF88840cb637F2684A9E460316b1678AD6245e4a)\n */\nexport const coinFactoryConfig = {\n  address: coinFactoryAddress,\n  abi: coinFactoryABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// CoinV4\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const coinV4ABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: 'protocolRewardRecipient_',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: 'protocolRewards_', internalType: 'address', type: 'address' },\n      {\n        name: 'poolManager_',\n        internalType: 'contract IPoolManager',\n        type: 'address',\n      },\n      { name: 'airlock_', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'DOMAIN_SEPARATOR',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'addOwner',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'accounts', internalType: 'address[]', type: 'address[]' },\n    ],\n    name: 'addOwners',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'airlock',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'spender', internalType: 'address', type: 'address' },\n    ],\n    name: 'allowance',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'approve',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'balanceOf',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],\n    name: 'burn',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'claimVesting',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'coinType',\n    outputs: [\n      { name: '', internalType: 'enum IHasCoinType.CoinType', type: 'uint8' },\n    ],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'creationInfo',\n    outputs: [\n      { name: 'creationTimestamp', internalType: 'uint256', type: 'uint256' },\n      { name: 'isDeploying', internalType: 'bool', type: 'bool' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'currency',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'decimals',\n    outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'dopplerFeeRecipient',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'eip712Domain',\n    outputs: [\n      { name: 'fields', internalType: 'bytes1', type: 'bytes1' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'version', internalType: 'string', type: 'string' },\n      { name: 'chainId', internalType: 'uint256', type: 'uint256' },\n      { name: 'verifyingContract', internalType: 'address', type: 'address' },\n      { name: 'salt', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getClaimableAmount',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'coinVersionLookup',\n        internalType: 'contract IDeployedCoinVersionLookup',\n        type: 'address',\n      },\n    ],\n    name: 'getPayoutSwapPath',\n    outputs: [\n      {\n        name: 'payoutSwapPath',\n        internalType: 'struct IHasSwapPath.PayoutSwapPath',\n        type: 'tuple',\n        components: [\n          {\n            name: 'path',\n            internalType: 'struct PathKey[]',\n            type: 'tuple[]',\n            components: [\n              {\n                name: 'intermediateCurrency',\n                internalType: 'Currency',\n                type: 'address',\n              },\n              { name: 'fee', internalType: 'uint24', type: 'uint24' },\n              { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n              {\n                name: 'hooks',\n                internalType: 'contract IHooks',\n                type: 'address',\n              },\n              { name: 'hookData', internalType: 'bytes', type: 'bytes' },\n            ],\n          },\n          { name: 'currencyIn', internalType: 'Currency', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getPoolConfiguration',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct PoolConfiguration',\n        type: 'tuple',\n        components: [\n          { name: 'version', internalType: 'uint8', type: 'uint8' },\n          { name: 'numPositions', internalType: 'uint16', type: 'uint16' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          {\n            name: 'numDiscoveryPositions',\n            internalType: 'uint16[]',\n            type: 'uint16[]',\n          },\n          { name: 'tickLower', internalType: 'int24[]', type: 'int24[]' },\n          { name: 'tickUpper', internalType: 'int24[]', type: 'int24[]' },\n          {\n            name: 'maxDiscoverySupplyShare',\n            internalType: 'uint256[]',\n            type: 'uint256[]',\n          },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getPoolKey',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'hooks',\n    outputs: [{ name: '', internalType: 'contract IHooks', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient_', internalType: 'address', type: 'address' },\n      { name: 'owners_', internalType: 'address[]', type: 'address[]' },\n      { name: 'tokenURI_', internalType: 'string', type: 'string' },\n      { name: 'name_', internalType: 'string', type: 'string' },\n      { name: 'symbol_', internalType: 'string', type: 'string' },\n      { name: 'platformReferrer_', internalType: 'address', type: 'address' },\n      { name: 'currency_', internalType: 'address', type: 'address' },\n      {\n        name: 'poolKey_',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },\n      {\n        name: 'poolConfiguration_',\n        internalType: 'struct PoolConfiguration',\n        type: 'tuple',\n        components: [\n          { name: 'version', internalType: 'uint8', type: 'uint8' },\n          { name: 'numPositions', internalType: 'uint16', type: 'uint16' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          {\n            name: 'numDiscoveryPositions',\n            internalType: 'uint16[]',\n            type: 'uint16[]',\n          },\n          { name: 'tickLower', internalType: 'int24[]', type: 'int24[]' },\n          { name: 'tickUpper', internalType: 'int24[]', type: 'int24[]' },\n          {\n            name: 'maxDiscoverySupplyShare',\n            internalType: 'uint256[]',\n            type: 'uint256[]',\n          },\n        ],\n      },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'isOwner',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newHook', internalType: 'address', type: 'address' },\n      { name: 'additionalData', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'migrateLiquidity',\n    outputs: [\n      {\n        name: 'newPoolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'name',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'nonces',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owners',\n    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'payoutRecipient',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n      { name: 'v', internalType: 'uint8', type: 'uint8' },\n      { name: 'r', internalType: 'bytes32', type: 'bytes32' },\n      { name: 's', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'permit',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'platformReferrer',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'poolManager',\n    outputs: [\n      { name: '', internalType: 'contract IPoolManager', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'protocolRewardRecipient',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'protocolRewards',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'removeOwner',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'accounts', internalType: 'address[]', type: 'address[]' },\n    ],\n    name: 'removeOwners',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'revokeOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newURI', internalType: 'string', type: 'string' }],\n    name: 'setContractURI',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newName', internalType: 'string', type: 'string' },\n      { name: 'newSymbol', internalType: 'string', type: 'string' },\n    ],\n    name: 'setNameAndSymbol',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newPayoutRecipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'setPayoutRecipient',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'symbol',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'tokenURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'totalClaimed',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'totalSupply',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'totalSupplyForPositions',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'transfer',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'transferFrom',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'vestingEndTime',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'vestingStartTime',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'spender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'value',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Approval',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'buyer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tradeReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'coinsPurchased',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'amountFee',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'amountSold',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'CoinBuy',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'payoutRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'platformReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'protocolRewardRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'marketRewards',\n        internalType: 'struct ICoin.MarketRewards',\n        type: 'tuple',\n        components: [\n          {\n            name: 'totalAmountCurrency',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'totalAmountCoin', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'creatorPayoutAmountCurrency',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'creatorPayoutAmountCoin',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'platformReferrerAmountCurrency',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'platformReferrerAmountCoin',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'protocolAmountCurrency',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'protocolAmountCoin',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'CoinMarketRewards',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'prevRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'CoinPayoutRecipientUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'seller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tradeReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'coinsSold',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'amountFee',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'amountPurchased',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'CoinSell',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'payoutRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'platformReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tradeReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'protocolRewardRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'creatorReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'platformReferrerReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'traderReferrerReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'protocolReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'CoinTradeRewards',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'senderBalance',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'recipientBalance',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'CoinTransfer',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      { name: 'name', internalType: 'string', type: 'string', indexed: false },\n    ],\n    name: 'ContractMetadataUpdated',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'ContractURIUpdated' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'claimAmount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'totalClaimed',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'vestingStartTime',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'vestingEndTime',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'CreatorVestingClaimed',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'fromPoolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'fromPoolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'toPoolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'toPoolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n    ],\n    name: 'LiquidityMigrated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newName',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'newSymbol',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'NameAndSymbolUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'prevOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'value',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Transfer',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'AlreadyOwner' },\n  { type: 'error', inputs: [], name: 'CannotMintZeroLiquidity' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'DopplerPoolMustHaveMoreThan2DiscoveryPositions',\n  },\n  { type: 'error', inputs: [], name: 'ECDSAInvalidSignature' },\n  {\n    type: 'error',\n    inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }],\n    name: 'ECDSAInvalidSignatureLength',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 's', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'ECDSAInvalidSignatureS',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'allowance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientAllowance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidApprover',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidReceiver',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSender',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'spender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSpender',\n  },\n  { type: 'error', inputs: [], name: 'ERC20TransferAmountMismatch' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'signer', internalType: 'address', type: 'address' },\n      { name: 'owner', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC2612InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'EthAmountMismatch' },\n  { type: 'error', inputs: [], name: 'EthAmountTooSmall' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'EthTransferInvalid' },\n  { type: 'error', inputs: [], name: 'InitialOrderSizeTooLarge' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientLiquidity' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidCurrency' },\n  { type: 'error', inputs: [], name: 'InvalidCurrencyLowerTick' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidMarketType' },\n  { type: 'error', inputs: [], name: 'InvalidPoolVersion' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tickLower', internalType: 'int24', type: 'int24' },\n      { name: 'tickUpper', internalType: 'int24', type: 'int24' },\n    ],\n    name: 'InvalidTickRangeMisordered',\n  },\n  { type: 'error', inputs: [], name: 'InvalidWethLowerTick' },\n  { type: 'error', inputs: [], name: 'LegacyPoolMustHaveOneDiscoveryPosition' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyGraduated' },\n  { type: 'error', inputs: [], name: 'MarketNotGraduated' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MaxShareToBeSoldExceeded',\n  },\n  { type: 'error', inputs: [], name: 'NameIsRequired' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotOwner' },\n  { type: 'error', inputs: [], name: 'NumDiscoveryPositionsOutOfRange' },\n  { type: 'error', inputs: [], name: 'OneOwnerRequired' },\n  { type: 'error', inputs: [], name: 'OnlyOwner' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'pool', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyPool',\n  },\n  { type: 'error', inputs: [], name: 'OnlyWeth' },\n  { type: 'error', inputs: [], name: 'OwnerCannotBeAddressZero' },\n  { type: 'error', inputs: [], name: 'SlippageBoundsExceeded' },\n  { type: 'error', inputs: [], name: 'UseRevokeOwnershipToRemoveSelf' },\n] as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Cointag\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const cointagABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      { name: 'protocolRewards_', internalType: 'address', type: 'address' },\n      { name: 'weth_', internalType: 'address', type: 'address' },\n      { name: 'upgradeGate_', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  { type: 'receive', stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'PERCENTAGE_BASIS',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'UPGRADE_INTERFACE_VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'config',\n    outputs: [\n      {\n        name: 'cointagStorage',\n        internalType: 'struct ICointag.CointagStorageV1',\n        type: 'tuple',\n        components: [\n          {\n            name: 'creatorRewardRecipient',\n            internalType: 'address',\n            type: 'address',\n          },\n          { name: 'erc20', internalType: 'contract IERC20', type: 'address' },\n          {\n            name: 'pool',\n            internalType: 'contract IUniswapV3Pool',\n            type: 'address',\n          },\n          {\n            name: 'percentageToBuyBurn',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n        ],\n      },\n    ],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'distribute',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'erc20',\n    outputs: [{ name: '', internalType: 'contract IERC20', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'creatorRewardRecipient',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: 'pool_', internalType: 'address', type: 'address' },\n      { name: 'percentageToBuyBurn', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pool',\n    outputs: [\n      { name: '', internalType: 'contract IUniswapV3Pool', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'protocolRewards',\n    outputs: [\n      { name: '', internalType: 'contract IProtocolRewards', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pull',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'amount0Delta', internalType: 'int256', type: 'int256' },\n      { name: 'amount1Delta', internalType: 'int256', type: 'int256' },\n      { name: '', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'uniswapV3SwapCallback',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'upgradeGate',\n    outputs: [\n      { name: '', internalType: 'contract IUpgradeGate', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'weth',\n    outputs: [{ name: '', internalType: 'contract IWETH', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'amountERC20Received',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'amountERC20Burned',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'amountETHSpent',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'amountETHToCreator',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'totalETHReceived',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'buyFailureError',\n        internalType: 'bytes',\n        type: 'bytes',\n        indexed: false,\n      },\n      {\n        name: 'burnFailureError',\n        internalType: 'bytes',\n        type: 'bytes',\n        indexed: false,\n      },\n    ],\n    name: 'BuyBurn',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'amount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'EthReceived',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'creatorRewardRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'erc20',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'pool',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'percentageToBuyBurn',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'oldImpl', internalType: 'address', type: 'address' },\n      { name: 'newImpl', internalType: 'address', type: 'address' },\n    ],\n    name: 'InvalidUpgradePath',\n  },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotUniswapV3Pool' },\n  { type: 'error', inputs: [], name: 'OnlyPool' },\n  { type: 'error', inputs: [], name: 'OnlyProtocolRewardsOrWeth' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'PoolNeedsOneTokenToBeWETH' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  { type: 'error', inputs: [], name: 'UnknownBurnError' },\n  { type: 'error', inputs: [], name: 'UnknownSwapError' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'current', internalType: 'string', type: 'string' },\n      { name: 'newName', internalType: 'string', type: 'string' },\n    ],\n    name: 'UpgradeToMismatchedContractName',\n  },\n] as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// CointagFactory\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777773Bd7Cccb7E704315CA51245707E19B0DE)\n */\nexport const cointagFactoryABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: '_cointagImplementation',\n        internalType: 'address',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'UPGRADE_INTERFACE_VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'cointagImplementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: '_creatorRewardRecipient',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: '_pool', internalType: 'address', type: 'address' },\n      {\n        name: '_percentageToBuyBurn',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n      { name: 'saltSource', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'getCointagAddress',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: '_creatorRewardRecipient',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: '_pool', internalType: 'address', type: 'address' },\n      {\n        name: '_percentageToBuyBurn',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n      { name: 'saltSource', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'getOrCreateCointag',\n    outputs: [{ name: '', internalType: 'contract ICointag', type: 'address' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: '_creatorRewardRecipient',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: '_pool', internalType: 'address', type: 'address' },\n      {\n        name: '_percentageToBuyBurn',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n      { name: 'saltSource', internalType: 'bytes', type: 'bytes' },\n      { name: 'expectedAddress', internalType: 'address', type: 'address' },\n    ],\n    name: 'getOrCreateCointagAtExpectedAddress',\n    outputs: [{ name: '', internalType: 'contract ICointag', type: 'address' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '_defaultOwner', internalType: 'address', type: 'address' },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'upgradeGate',\n    outputs: [\n      { name: '', internalType: 'contract IUpgradeGate', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'cointag',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'creatorRewardRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'erc20',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'pool',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'percentageToBuyBurn',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'saltSource',\n        internalType: 'bytes',\n        type: 'bytes',\n        indexed: false,\n      },\n    ],\n    name: 'SetupNewCointag',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'address', type: 'address' },\n      { name: 'actual', internalType: 'address', type: 'address' },\n    ],\n    name: 'UnexpectedCointagAddress',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'currentName', internalType: 'string', type: 'string' },\n      { name: 'newName', internalType: 'string', type: 'string' },\n    ],\n    name: 'UpgradeToMismatchedContractName',\n  },\n] as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777773Bd7Cccb7E704315CA51245707E19B0DE)\n */\nexport const cointagFactoryAddress = {\n  8453: '0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F',\n  84532: '0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F',\n  7777777: '0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F',\n  999999999: '0x77777773Bd7Cccb7E704315CA51245707E19B0DE',\n} as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777BbD0b88aD5F3b5f4c89C6B60D74b9774F)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777773Bd7Cccb7E704315CA51245707E19B0DE)\n */\nexport const cointagFactoryConfig = {\n  address: cointagFactoryAddress,\n  abi: cointagFactoryABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Comments\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777C2B3132e03a65721a41745C07170a5877)\n */\nexport const commentsABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      { name: '_sparkValue', internalType: 'uint256', type: 'uint256' },\n      { name: '_protocolRewards', internalType: 'address', type: 'address' },\n      { name: '_zoraRecipient', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'BACKFILLER_ROLE',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'DEFAULT_ADMIN_ROLE',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'DELEGATE_COMMENTER',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'DOMAIN_NAME',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'DOMAIN_VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'PERMISSION_BIT_ADMIN',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'REFERRER_REWARD_PCT',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'UPGRADE_INTERFACE_VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'ZORA_REWARD_NO_REFERRER_PCT',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'ZORA_REWARD_PCT',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'commentIdentifiers',\n        internalType: 'struct IComments.CommentIdentifier[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n      { name: 'texts', internalType: 'string[]', type: 'string[]' },\n      { name: 'timestamps', internalType: 'uint256[]', type: 'uint256[]' },\n      {\n        name: 'originalTransactionHashes',\n        internalType: 'bytes32[]',\n        type: 'bytes32[]',\n      },\n    ],\n    name: 'backfillBatchAddComment',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'commenter', internalType: 'address', type: 'address' },\n      { name: 'contractAddress', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'text', internalType: 'string', type: 'string' },\n      {\n        name: 'replyTo',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n      {\n        name: 'commenterSmartWallet',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: 'referrer', internalType: 'address', type: 'address' },\n    ],\n    name: 'comment',\n    outputs: [\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    name: 'commentSparksQuantity',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'commenter', internalType: 'address', type: 'address' },\n      { name: 'contractAddress', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'text', internalType: 'string', type: 'string' },\n      {\n        name: 'replyTo',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n      {\n        name: 'commenterSmartWalletOwner',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: 'referrer', internalType: 'address', type: 'address' },\n    ],\n    name: 'delegateComment',\n    outputs: [\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n      { name: 'commentId', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'eip712Domain',\n    outputs: [\n      { name: 'fields', internalType: 'bytes1', type: 'bytes1' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'version', internalType: 'string', type: 'string' },\n      { name: 'chainId', internalType: 'uint256', type: 'uint256' },\n      { name: 'verifyingContract', internalType: 'address', type: 'address' },\n      { name: 'salt', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'role', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'getRoleAdmin',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'role', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'account', internalType: 'address', type: 'address' },\n    ],\n    name: 'grantRole',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'role', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'account', internalType: 'address', type: 'address' },\n    ],\n    name: 'hasRole',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    name: 'hashAndCheckCommentExists',\n    outputs: [\n      { name: 'commentId', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'exists', internalType: 'bool', type: 'bool' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    name: 'hashAndValidateCommentExists',\n    outputs: [{ name: 'commentId', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    name: 'hashCommentIdentifier',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IComments.PermitComment',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          {\n            name: 'commenterSmartWallet',\n            internalType: 'address',\n            type: 'address',\n          },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'replyTo',\n            internalType: 'struct IComments.CommentIdentifier',\n            type: 'tuple',\n            components: [\n              { name: 'commenter', internalType: 'address', type: 'address' },\n              {\n                name: 'contractAddress',\n                internalType: 'address',\n                type: 'address',\n              },\n              { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n              { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n            ],\n          },\n          { name: 'text', internalType: 'string', type: 'string' },\n          { name: 'referrer', internalType: 'address', type: 'address' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n          { name: 'sourceChainId', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'destinationChainId',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n        ],\n      },\n    ],\n    name: 'hashPermitComment',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IComments.PermitSparkComment',\n        type: 'tuple',\n        components: [\n          {\n            name: 'comment',\n            internalType: 'struct IComments.CommentIdentifier',\n            type: 'tuple',\n            components: [\n              { name: 'commenter', internalType: 'address', type: 'address' },\n              {\n                name: 'contractAddress',\n                internalType: 'address',\n                type: 'address',\n              },\n              { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n              { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n            ],\n          },\n          { name: 'sparker', internalType: 'address', type: 'address' },\n          { name: 'sparksQuantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n          { name: 'referrer', internalType: 'address', type: 'address' },\n          { name: 'sourceChainId', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'destinationChainId',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n        ],\n      },\n    ],\n    name: 'hashPermitSparkComment',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'defaultAdmin', internalType: 'address', type: 'address' },\n      { name: 'backfiller', internalType: 'address', type: 'address' },\n      {\n        name: 'delegateCommenters',\n        internalType: 'address[]',\n        type: 'address[]',\n      },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'nextNonce',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'nonceUsed',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IComments.PermitComment',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          {\n            name: 'commenterSmartWallet',\n            internalType: 'address',\n            type: 'address',\n          },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'replyTo',\n            internalType: 'struct IComments.CommentIdentifier',\n            type: 'tuple',\n            components: [\n              { name: 'commenter', internalType: 'address', type: 'address' },\n              {\n                name: 'contractAddress',\n                internalType: 'address',\n                type: 'address',\n              },\n              { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n              { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n            ],\n          },\n          { name: 'text', internalType: 'string', type: 'string' },\n          { name: 'referrer', internalType: 'address', type: 'address' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n          { name: 'sourceChainId', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'destinationChainId',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitComment',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IComments.PermitSparkComment',\n        type: 'tuple',\n        components: [\n          {\n            name: 'comment',\n            internalType: 'struct IComments.CommentIdentifier',\n            type: 'tuple',\n            components: [\n              { name: 'commenter', internalType: 'address', type: 'address' },\n              {\n                name: 'contractAddress',\n                internalType: 'address',\n                type: 'address',\n              },\n              { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n              { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n            ],\n          },\n          { name: 'sparker', internalType: 'address', type: 'address' },\n          { name: 'sparksQuantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n          { name: 'referrer', internalType: 'address', type: 'address' },\n          { name: 'sourceChainId', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'destinationChainId',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitSparkComment',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'protocolRewards',\n    outputs: [\n      { name: '', internalType: 'contract IProtocolRewards', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'role', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'callerConfirmation', internalType: 'address', type: 'address' },\n    ],\n    name: 'renounceRole',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'role', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'account', internalType: 'address', type: 'address' },\n    ],\n    name: 'revokeRole',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n      { name: 'sparksQuantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'referrer', internalType: 'address', type: 'address' },\n    ],\n    name: 'sparkComment',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'sparkValue',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'commentId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: true,\n      },\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n        indexed: false,\n      },\n      { name: 'text', internalType: 'string', type: 'string', indexed: false },\n      {\n        name: 'timestamp',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'originalTransactionId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n    ],\n    name: 'BackfilledComment',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'commentId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: true,\n      },\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'replyToId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'replyTo',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'sparksQuantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      { name: 'text', internalType: 'string', type: 'string', indexed: false },\n      {\n        name: 'timestamp',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'referrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'Commented',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true },\n      {\n        name: 'previousAdminRole',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: true,\n      },\n      {\n        name: 'newAdminRole',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: true,\n      },\n    ],\n    name: 'RoleAdminChanged',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true },\n      {\n        name: 'account',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'RoleGranted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true },\n      {\n        name: 'account',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'RoleRevoked',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'commentId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: true,\n      },\n      {\n        name: 'commentIdentifier',\n        internalType: 'struct IComments.CommentIdentifier',\n        type: 'tuple',\n        components: [\n          { name: 'commenter', internalType: 'address', type: 'address' },\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'sparksQuantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'sparker',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'timestamp',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'referrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'SparkedComment',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  { type: 'error', inputs: [], name: 'AccessControlBadConfirmation' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'neededRole', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'AccessControlUnauthorizedAccount',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ArrayLengthMismatch' },\n  { type: 'error', inputs: [], name: 'CannotSparkOwnComment' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'commentAddress', internalType: 'address', type: 'address' },\n      { name: 'commentTokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'replyAddress', internalType: 'address', type: 'address' },\n      { name: 'replyTokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'CommentAddressOrTokenIdsDoNotMatch',\n  },\n  { type: 'error', inputs: [], name: 'CommentDoesntExist' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'address', type: 'address' },\n      { name: 'actual', internalType: 'address', type: 'address' },\n    ],\n    name: 'CommenterMismatch',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'commentId', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'DuplicateComment',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  { type: 'error', inputs: [], name: 'EmptyComment' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  {\n    type: 'error',\n    inputs: [\n      {\n        name: 'wrongDestinationChainId',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n    ],\n    name: 'IncorrectDestinationChain',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'actual', internalType: 'uint256', type: 'uint256' },\n      { name: 'expected', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'IncorrectETHAmountForSparks',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidSignature' },\n  { type: 'error', inputs: [], name: 'MustSendAtLeastOneSpark' },\n  { type: 'error', inputs: [], name: 'NoFundsRecipient' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotSmartWallet' },\n  { type: 'error', inputs: [], name: 'NotSmartWalletOwner' },\n  { type: 'error', inputs: [], name: 'OnlySparksContract' },\n  { type: 'error', inputs: [], name: 'TransferFailed' },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'currentName', internalType: 'string', type: 'string' },\n      { name: 'newName', internalType: 'string', type: 'string' },\n    ],\n    name: 'UpgradeToMismatchedContractName',\n  },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777C2B3132e03a65721a41745C07170a5877)\n */\nexport const commentsAddress = {\n  1: '0x7777777C2B3132e03a65721a41745C07170a5877',\n  10: '0x7777777C2B3132e03a65721a41745C07170a5877',\n  8453: '0x7777777C2B3132e03a65721a41745C07170a5877',\n  42161: '0x7777777C2B3132e03a65721a41745C07170a5877',\n  81457: '0x7777777C2B3132e03a65721a41745C07170a5877',\n  84532: '0x7777777C2B3132e03a65721a41745C07170a5877',\n  7777777: '0x7777777C2B3132e03a65721a41745C07170a5877',\n  11155111: '0x7777777C2B3132e03a65721a41745C07170a5877',\n  11155420: '0x7777777C2B3132e03a65721a41745C07170a5877',\n  999999999: '0x7777777C2B3132e03a65721a41745C07170a5877',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x7777777C2B3132e03a65721a41745C07170a5877)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777C2B3132e03a65721a41745C07170a5877)\n */\nexport const commentsConfig = {\n  address: commentsAddress,\n  abi: commentsABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// DevBuySupplyWithSwapRouterHook\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n\n*/\nexport const devBuySupplyWithSwapRouterHookABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: '_factory',\n        internalType: 'contract IZoraFactory',\n        type: 'address',\n      },\n      { name: '_swapRouter', internalType: 'address', type: 'address' },\n      { name: '_poolManager', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'coin', internalType: 'contract ICoin', type: 'address' },\n      { name: 'hookData', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'afterCoinDeploy',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'decodeV4RouteData',\n    outputs: [\n      {\n        name: 'v4Route',\n        internalType: 'struct PoolKey[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'startAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct BuySupplyWithV4SwapHook.InitialSupplyParams',\n        type: 'tuple',\n        components: [\n          { name: 'buyRecipient', internalType: 'address', type: 'address' },\n          { name: 'v3Route', internalType: 'bytes', type: 'bytes' },\n          {\n            name: 'v4Route',\n            internalType: 'struct PoolKey[]',\n            type: 'tuple[]',\n            components: [\n              { name: 'currency0', internalType: 'Currency', type: 'address' },\n              { name: 'currency1', internalType: 'Currency', type: 'address' },\n              { name: 'fee', internalType: 'uint24', type: 'uint24' },\n              { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n              {\n                name: 'hooks',\n                internalType: 'contract IHooks',\n                type: 'address',\n              },\n            ],\n          },\n          { name: 'inputCurrency', internalType: 'address', type: 'address' },\n          { name: 'inputAmount', internalType: 'uint256', type: 'uint256' },\n          { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'encodeBuySupplyWithV4SwapHookData',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'factory',\n    outputs: [\n      { name: '', internalType: 'contract IZoraFactory', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'poolManager',\n    outputs: [\n      { name: '', internalType: 'contract IPoolManager', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'swapRouter',\n    outputs: [\n      { name: '', internalType: 'contract ISwapRouter', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'unlockCallback',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'coin', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'coinsPurchased',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      { name: 'v3Route', internalType: 'bytes', type: 'bytes', indexed: false },\n      {\n        name: 'v4Route',\n        internalType: 'struct PoolKey[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'inputCurrency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'inputAmount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'v4SwapInput',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'BuyInitialSupply',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'HookNotImplemented' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'inputAmount', internalType: 'uint256', type: 'uint256' },\n      { name: 'availableAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InsufficientInputCurrency',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientOutputAmount' },\n  { type: 'error', inputs: [], name: 'NotFactory' },\n  { type: 'error', inputs: [], name: 'OnlyPoolManager' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  { type: 'error', inputs: [], name: 'V3RouteDoesNotConnectToV4RouteStart' },\n] as const\n\n/**\n\n*/\nexport const devBuySupplyWithSwapRouterHookAddress = {} as const\n\n/**\n\n*/\nexport const devBuySupplyWithSwapRouterHookConfig = {\n  address: devBuySupplyWithSwapRouterHookAddress,\n  abi: devBuySupplyWithSwapRouterHookABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// DevCoinFactory\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0xfAf4978830e099F0952eBabC89fEb0B18Ba771D8)\n */\nexport const devCoinFactoryABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      { name: 'coinV4Impl_', internalType: 'address', type: 'address' },\n      { name: 'creatorCoinImpl_', internalType: 'address', type: 'address' },\n      { name: 'trendCoinImpl_', internalType: 'address', type: 'address' },\n      { name: 'hook_', internalType: 'address', type: 'address' },\n      { name: 'zoraHookRegistry_', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'UPGRADE_INTERFACE_VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'msgSender', internalType: 'address', type: 'address' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'coinSalt', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'coinAddress',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'coinV4Impl',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contentCoinHook',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'creatorCoinHook',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'creatorCoinImpl',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'currency', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'int24', type: 'int24' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'deploy',\n    outputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'postDeployHook', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookData', internalType: 'bytes', type: 'bytes' },\n      { name: 'coinSalt', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'deploy',\n    outputs: [\n      { name: 'coin', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookDataOut', internalType: 'bytes', type: 'bytes' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'deploy',\n    outputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'coinSalt', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'deployCreatorCoin',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'postDeployHook', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookData', internalType: 'bytes', type: 'bytes' },\n      { name: 'coinSalt', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'deployCreatorCoin',\n    outputs: [\n      { name: 'coin', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookDataOut', internalType: 'bytes', type: 'bytes' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'postDeployHook', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookData', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'deployTrendCoin',\n    outputs: [\n      { name: 'coin', internalType: 'address', type: 'address' },\n      { name: 'postDeployHookDataOut', internalType: 'bytes', type: 'bytes' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n      { name: 'owners', internalType: 'address[]', type: 'address[]' },\n      { name: 'uri', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n      { name: 'poolConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'platformReferrer', internalType: 'address', type: 'address' },\n      { name: 'deployHook', internalType: 'address', type: 'address' },\n      { name: 'hookData', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'deployWithHook',\n    outputs: [\n      { name: 'coin', internalType: 'address', type: 'address' },\n      { name: 'hookDataOut', internalType: 'bytes', type: 'bytes' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'coin', internalType: 'address', type: 'address' }],\n    name: 'getVersionForDeployedCoin',\n    outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'hook',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'initialOwner', internalType: 'address', type: 'address' },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'currency', internalType: 'address', type: 'address' },\n      { name: 'tickLower', internalType: 'int24[]', type: 'int24[]' },\n      { name: 'tickUpper', internalType: 'int24[]', type: 'int24[]' },\n      {\n        name: 'numDiscoveryPositions',\n        internalType: 'uint16[]',\n        type: 'uint16[]',\n      },\n      {\n        name: 'maxDiscoverySupplyShare',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n      },\n    ],\n    name: 'setTrendCoinPoolConfig',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'symbol', internalType: 'string', type: 'string' }],\n    name: 'trendCoinAddress',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'trendCoinImpl',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'trendCoinPoolConfig',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraHookRegistry',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'payoutRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'platformReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      { name: 'uri', internalType: 'string', type: 'string', indexed: false },\n      { name: 'name', internalType: 'string', type: 'string', indexed: false },\n      {\n        name: 'symbol',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'coin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'pool',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'version',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'CoinCreated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'payoutRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'platformReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      { name: 'uri', internalType: 'string', type: 'string', indexed: false },\n      { name: 'name', internalType: 'string', type: 'string', indexed: false },\n      {\n        name: 'symbol',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'coin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'poolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'version',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'CoinCreatedV4',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'payoutRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'platformReferrer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      { name: 'uri', internalType: 'string', type: 'string', indexed: false },\n      { name: 'name', internalType: 'string', type: 'string', indexed: false },\n      {\n        name: 'symbol',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'coin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'poolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'version',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'CreatorCoinCreated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'symbol',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'coin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'poolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'poolConfig',\n        internalType: 'bytes',\n        type: 'bytes',\n        indexed: false,\n      },\n      {\n        name: 'version',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'TrendCoinCreated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'poolConfig',\n        internalType: 'bytes',\n        type: 'bytes',\n        indexed: false,\n      },\n    ],\n    name: 'TrendCoinPoolConfigUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  { type: 'error', inputs: [], name: 'ArrayLengthMismatch' },\n  { type: 'error', inputs: [], name: 'ConfigTickLowerMustBeLessThanTickUpper' },\n  { type: 'error', inputs: [], name: 'Deprecated' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  { type: 'error', inputs: [], name: 'EthTransferInvalid' },\n  { type: 'error', inputs: [], name: 'FailedCall' },\n  { type: 'error', inputs: [], name: 'FailedDeployment' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'InvalidConfig' },\n  { type: 'error', inputs: [], name: 'InvalidHook' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidPoolVersion' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tickLower', internalType: 'int24', type: 'int24' },\n      { name: 'tickUpper', internalType: 'int24', type: 'int24' },\n    ],\n    name: 'InvalidTickRangeMisordered',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MaxShareToBeSoldExceeded',\n  },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NumDiscoveryPositionsOutOfRange' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },\n  {\n    type: 'error',\n    inputs: [{ name: 'symbol', internalType: 'string', type: 'string' }],\n    name: 'TickerAlreadyUsed',\n  },\n  { type: 'error', inputs: [], name: 'TickerInvalidCharacters' },\n  { type: 'error', inputs: [], name: 'TickerTooLong' },\n  { type: 'error', inputs: [], name: 'TickerTooShort' },\n  { type: 'error', inputs: [], name: 'TrendCoinPoolConfigNotSet' },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'currentName', internalType: 'string', type: 'string' },\n      { name: 'newName', internalType: 'string', type: 'string' },\n    ],\n    name: 'UpgradeToMismatchedContractName',\n  },\n  { type: 'error', inputs: [], name: 'UseSpecificTrendCoinInitialize' },\n  { type: 'error', inputs: [], name: 'ZeroDiscoveryPositions' },\n  { type: 'error', inputs: [], name: 'ZeroDiscoverySupplyShare' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'HookNotImplemented' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'inputAmount', internalType: 'uint256', type: 'uint256' },\n      { name: 'availableAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InsufficientInputCurrency',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientOutputAmount' },\n  { type: 'error', inputs: [], name: 'NotFactory' },\n  { type: 'error', inputs: [], name: 'OnlyPoolManager' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  { type: 'error', inputs: [], name: 'V3RouteDoesNotConnectToV4RouteStart' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'AlreadyOwner' },\n  { type: 'error', inputs: [], name: 'CannotMintZeroLiquidity' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'DopplerPoolMustHaveMoreThan2DiscoveryPositions',\n  },\n  { type: 'error', inputs: [], name: 'ECDSAInvalidSignature' },\n  {\n    type: 'error',\n    inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }],\n    name: 'ECDSAInvalidSignatureLength',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 's', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'ECDSAInvalidSignatureS',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'allowance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientAllowance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidApprover',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidReceiver',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSender',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'spender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSpender',\n  },\n  { type: 'error', inputs: [], name: 'ERC20TransferAmountMismatch' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'signer', internalType: 'address', type: 'address' },\n      { name: 'owner', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC2612InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'EthAmountMismatch' },\n  { type: 'error', inputs: [], name: 'EthAmountTooSmall' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'EthTransferInvalid' },\n  { type: 'error', inputs: [], name: 'InitialOrderSizeTooLarge' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientLiquidity' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidCurrency' },\n  { type: 'error', inputs: [], name: 'InvalidCurrencyLowerTick' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidMarketType' },\n  { type: 'error', inputs: [], name: 'InvalidPoolVersion' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tickLower', internalType: 'int24', type: 'int24' },\n      { name: 'tickUpper', internalType: 'int24', type: 'int24' },\n    ],\n    name: 'InvalidTickRangeMisordered',\n  },\n  { type: 'error', inputs: [], name: 'InvalidWethLowerTick' },\n  { type: 'error', inputs: [], name: 'LegacyPoolMustHaveOneDiscoveryPosition' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyGraduated' },\n  { type: 'error', inputs: [], name: 'MarketNotGraduated' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MaxShareToBeSoldExceeded',\n  },\n  { type: 'error', inputs: [], name: 'NameIsRequired' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotOwner' },\n  { type: 'error', inputs: [], name: 'NumDiscoveryPositionsOutOfRange' },\n  { type: 'error', inputs: [], name: 'OneOwnerRequired' },\n  { type: 'error', inputs: [], name: 'OnlyOwner' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'pool', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyPool',\n  },\n  { type: 'error', inputs: [], name: 'OnlyWeth' },\n  { type: 'error', inputs: [], name: 'OwnerCannotBeAddressZero' },\n  { type: 'error', inputs: [], name: 'SlippageBoundsExceeded' },\n  { type: 'error', inputs: [], name: 'UseRevokeOwnershipToRemoveSelf' },\n  { type: 'error', inputs: [], name: 'CoinVersionLookupCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'HookNotImplemented' },\n  {\n    type: 'error',\n    inputs: [{ name: 'callbackId', internalType: 'uint8', type: 'uint8' }],\n    name: 'InvalidCallbackId',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'newHook', internalType: 'address', type: 'address' }],\n    name: 'InvalidNewHook',\n  },\n  {\n    type: 'error',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n    ],\n    name: 'NoCoinForHook',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'coin', internalType: 'address', type: 'address' }],\n    name: 'NotACoin',\n  },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyCoin',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'SafeCastOverflow' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'TrustedMsgSenderLookupCannotBeZeroAddress',\n  },\n  { type: 'error', inputs: [], name: 'UpgradeGateCannotBeZeroAddress' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'oldHook', internalType: 'address', type: 'address' },\n      { name: 'newHook', internalType: 'address', type: 'address' },\n    ],\n    name: 'UpgradePathNotRegistered',\n  },\n  { type: 'error', inputs: [], name: 'ZoraHookRegistryCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'ZoraLimitOrderBookCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ArrayLengthMismatch' },\n  { type: 'error', inputs: [], name: 'CallerNotPermitted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'orderId', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n      { name: 'actualCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'CoinMismatch',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientForwardedFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientTransferFunds' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'startTick', internalType: 'int24', type: 'int24' },\n      { name: 'endTick', internalType: 'int24', type: 'int24' },\n      { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'InvalidFillWindow',\n  },\n  { type: 'error', inputs: [], name: 'InvalidOrder' },\n  { type: 'error', inputs: [], name: 'InvalidPoolKey' },\n  { type: 'error', inputs: [], name: 'MaxFillCountCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'withdrawn', internalType: 'uint256', type: 'uint256' },\n      { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MinAmountNotReached',\n  },\n  { type: 'error', inputs: [], name: 'NativeValueMismatch' },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  { type: 'error', inputs: [], name: 'OnlyZoraHook' },\n  { type: 'error', inputs: [], name: 'OrderClosed' },\n  { type: 'error', inputs: [], name: 'OrderFillable' },\n  { type: 'error', inputs: [], name: 'OrderNotMaker' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'PermittedCallersLengthMismatch' },\n  { type: 'error', inputs: [], name: 'RouterMsgSenderInvalid' },\n  { type: 'error', inputs: [], name: 'UnknownCallback' },\n  { type: 'error', inputs: [], name: 'UnlockedFillNotAllowed' },\n  { type: 'error', inputs: [], name: 'WethTransferFailed' },\n  { type: 'error', inputs: [], name: 'ZeroMaker' },\n  { type: 'error', inputs: [], name: 'ZeroOrderSize' },\n  { type: 'error', inputs: [], name: 'ZeroRealizedOrder' },\n] as const\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0xfAf4978830e099F0952eBabC89fEb0B18Ba771D8)\n */\nexport const devCoinFactoryAddress = {\n  8453: '0xfAf4978830e099F0952eBabC89fEb0B18Ba771D8',\n} as const\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0xfAf4978830e099F0952eBabC89fEb0B18Ba771D8)\n */\nexport const devCoinFactoryConfig = {\n  address: devCoinFactoryAddress,\n  abi: devCoinFactoryABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// DevZoraLimitOrderBook\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0xCe2C8032F85aB6a7148138F8a1235d2b17D53Dc5)\n */\nexport const devZoraLimitOrderBookABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      { name: 'poolManager_', internalType: 'address', type: 'address' },\n      {\n        name: 'zoraCoinVersionLookup_',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: 'zoraHookRegistry_', internalType: 'address', type: 'address' },\n      { name: 'owner_', internalType: 'address', type: 'address' },\n      { name: 'weth_', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  { type: 'receive', stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'maker', internalType: 'address', type: 'address' },\n      { name: 'coin', internalType: 'address', type: 'address' },\n    ],\n    name: 'balanceOf',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n      { name: 'orderSizes', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'orderTicks', internalType: 'int24[]', type: 'int24[]' },\n      { name: 'maker', internalType: 'address', type: 'address' },\n    ],\n    name: 'create',\n    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n      { name: 'startTick', internalType: 'int24', type: 'int24' },\n      { name: 'endTick', internalType: 'int24', type: 'int24' },\n      { name: 'maxFillCount', internalType: 'uint256', type: 'uint256' },\n      { name: 'fillReferral', internalType: 'address', type: 'address' },\n    ],\n    name: 'fill',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'batches',\n        internalType: 'struct IZoraLimitOrderBook.OrderBatch[]',\n        type: 'tuple[]',\n        components: [\n          {\n            name: 'key',\n            internalType: 'struct PoolKey',\n            type: 'tuple',\n            components: [\n              { name: 'currency0', internalType: 'Currency', type: 'address' },\n              { name: 'currency1', internalType: 'Currency', type: 'address' },\n              { name: 'fee', internalType: 'uint24', type: 'uint24' },\n              { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n              {\n                name: 'hooks',\n                internalType: 'contract IHooks',\n                type: 'address',\n              },\n            ],\n          },\n          { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n          { name: 'orderIds', internalType: 'bytes32[]', type: 'bytes32[]' },\n        ],\n      },\n      { name: 'fillReferral', internalType: 'address', type: 'address' },\n    ],\n    name: 'fill',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getMaxFillCount',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'caller', internalType: 'address', type: 'address' }],\n    name: 'isPermittedCaller',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'poolManager',\n    outputs: [\n      { name: '', internalType: 'contract IPoolManager', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'maxFillCount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'setMaxFillCount',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'callers', internalType: 'address[]', type: 'address[]' },\n      { name: 'permitted', internalType: 'bool[]', type: 'bool[]' },\n    ],\n    name: 'setPermittedCallers',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'unlockCallback',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'weth',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'orderIds', internalType: 'bytes32[]', type: 'bytes32[]' },\n      { name: 'coin', internalType: 'address', type: 'address' },\n      { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'withdraw',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraCoinVersionLookup',\n    outputs: [\n      {\n        name: '',\n        internalType: 'contract IDeployedCoinVersionLookup',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraHookRegistry',\n    outputs: [\n      { name: '', internalType: 'contract IZoraHookRegistry', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'maker',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'coin', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'isCurrency0',\n        internalType: 'bool',\n        type: 'bool',\n        indexed: false,\n      },\n      {\n        name: 'orderTick',\n        internalType: 'int24',\n        type: 'int24',\n        indexed: false,\n      },\n      {\n        name: 'currentTick',\n        internalType: 'int24',\n        type: 'int24',\n        indexed: false,\n      },\n      {\n        name: 'orderSize',\n        internalType: 'uint128',\n        type: 'uint128',\n        indexed: false,\n      },\n      {\n        name: 'orderId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n    ],\n    name: 'LimitOrderCreated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'maker',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'coinIn',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'coinOut',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'amountIn',\n        internalType: 'uint128',\n        type: 'uint128',\n        indexed: false,\n      },\n      {\n        name: 'amountOut',\n        internalType: 'uint128',\n        type: 'uint128',\n        indexed: false,\n      },\n      {\n        name: 'fillReferral',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'fillReferralAmount',\n        internalType: 'uint128',\n        type: 'uint128',\n        indexed: false,\n      },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      { name: 'tick', internalType: 'int24', type: 'int24', indexed: false },\n      {\n        name: 'orderId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n    ],\n    name: 'LimitOrderFilled',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'maker',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'coin', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'isCurrency0',\n        internalType: 'bool',\n        type: 'bool',\n        indexed: false,\n      },\n      { name: 'tick', internalType: 'int24', type: 'int24', indexed: false },\n      {\n        name: 'orderSize',\n        internalType: 'uint128',\n        type: 'uint128',\n        indexed: false,\n      },\n      {\n        name: 'orderId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'isCancelled',\n        internalType: 'bool',\n        type: 'bool',\n        indexed: false,\n      },\n    ],\n    name: 'LimitOrderUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'maker',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'coin', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'newBalance',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'MakerBalanceUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'permitted', internalType: 'bool', type: 'bool', indexed: false },\n    ],\n    name: 'PermittedCallerUpdated',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ArrayLengthMismatch' },\n  { type: 'error', inputs: [], name: 'CallerNotPermitted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'orderId', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n      { name: 'actualCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'CoinMismatch',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientForwardedFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientTransferFunds' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'startTick', internalType: 'int24', type: 'int24' },\n      { name: 'endTick', internalType: 'int24', type: 'int24' },\n      { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'InvalidFillWindow',\n  },\n  { type: 'error', inputs: [], name: 'InvalidOrder' },\n  { type: 'error', inputs: [], name: 'InvalidPoolKey' },\n  { type: 'error', inputs: [], name: 'MaxFillCountCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'withdrawn', internalType: 'uint256', type: 'uint256' },\n      { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MinAmountNotReached',\n  },\n  { type: 'error', inputs: [], name: 'NativeValueMismatch' },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  { type: 'error', inputs: [], name: 'OnlyZoraHook' },\n  { type: 'error', inputs: [], name: 'OrderClosed' },\n  { type: 'error', inputs: [], name: 'OrderFillable' },\n  { type: 'error', inputs: [], name: 'OrderNotMaker' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'PermittedCallersLengthMismatch' },\n  { type: 'error', inputs: [], name: 'RouterMsgSenderInvalid' },\n  { type: 'error', inputs: [], name: 'UnknownCallback' },\n  { type: 'error', inputs: [], name: 'UnlockedFillNotAllowed' },\n  { type: 'error', inputs: [], name: 'WethTransferFailed' },\n  { type: 'error', inputs: [], name: 'ZeroMaker' },\n  { type: 'error', inputs: [], name: 'ZeroOrderSize' },\n  { type: 'error', inputs: [], name: 'ZeroRealizedOrder' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'AlreadyOwner' },\n  { type: 'error', inputs: [], name: 'CannotMintZeroLiquidity' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'DopplerPoolMustHaveMoreThan2DiscoveryPositions',\n  },\n  { type: 'error', inputs: [], name: 'ECDSAInvalidSignature' },\n  {\n    type: 'error',\n    inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }],\n    name: 'ECDSAInvalidSignatureLength',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 's', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'ECDSAInvalidSignatureS',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'allowance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientAllowance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidApprover',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidReceiver',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSender',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'spender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSpender',\n  },\n  { type: 'error', inputs: [], name: 'ERC20TransferAmountMismatch' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'signer', internalType: 'address', type: 'address' },\n      { name: 'owner', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC2612InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'EthAmountMismatch' },\n  { type: 'error', inputs: [], name: 'EthAmountTooSmall' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'EthTransferInvalid' },\n  { type: 'error', inputs: [], name: 'InitialOrderSizeTooLarge' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientLiquidity' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidCurrency' },\n  { type: 'error', inputs: [], name: 'InvalidCurrencyLowerTick' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidMarketType' },\n  { type: 'error', inputs: [], name: 'InvalidPoolVersion' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tickLower', internalType: 'int24', type: 'int24' },\n      { name: 'tickUpper', internalType: 'int24', type: 'int24' },\n    ],\n    name: 'InvalidTickRangeMisordered',\n  },\n  { type: 'error', inputs: [], name: 'InvalidWethLowerTick' },\n  { type: 'error', inputs: [], name: 'LegacyPoolMustHaveOneDiscoveryPosition' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyGraduated' },\n  { type: 'error', inputs: [], name: 'MarketNotGraduated' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MaxShareToBeSoldExceeded',\n  },\n  { type: 'error', inputs: [], name: 'NameIsRequired' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotOwner' },\n  { type: 'error', inputs: [], name: 'NumDiscoveryPositionsOutOfRange' },\n  { type: 'error', inputs: [], name: 'OneOwnerRequired' },\n  { type: 'error', inputs: [], name: 'OnlyOwner' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'pool', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyPool',\n  },\n  { type: 'error', inputs: [], name: 'OnlyWeth' },\n  { type: 'error', inputs: [], name: 'OwnerCannotBeAddressZero' },\n  { type: 'error', inputs: [], name: 'SlippageBoundsExceeded' },\n  { type: 'error', inputs: [], name: 'UseRevokeOwnershipToRemoveSelf' },\n  { type: 'error', inputs: [], name: 'CoinVersionLookupCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'HookNotImplemented' },\n  {\n    type: 'error',\n    inputs: [{ name: 'callbackId', internalType: 'uint8', type: 'uint8' }],\n    name: 'InvalidCallbackId',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'newHook', internalType: 'address', type: 'address' }],\n    name: 'InvalidNewHook',\n  },\n  {\n    type: 'error',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n    ],\n    name: 'NoCoinForHook',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'coin', internalType: 'address', type: 'address' }],\n    name: 'NotACoin',\n  },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyCoin',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'SafeCastOverflow' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'TrustedMsgSenderLookupCannotBeZeroAddress',\n  },\n  { type: 'error', inputs: [], name: 'UpgradeGateCannotBeZeroAddress' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'oldHook', internalType: 'address', type: 'address' },\n      { name: 'newHook', internalType: 'address', type: 'address' },\n    ],\n    name: 'UpgradePathNotRegistered',\n  },\n  { type: 'error', inputs: [], name: 'ZoraHookRegistryCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'ZoraLimitOrderBookCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'AlreadyUnlocked' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'currency0', internalType: 'address', type: 'address' },\n      { name: 'currency1', internalType: 'address', type: 'address' },\n    ],\n    name: 'CurrenciesOutOfOrderOrEqual',\n  },\n  { type: 'error', inputs: [], name: 'CurrencyNotSettled' },\n  { type: 'error', inputs: [], name: 'InvalidCaller' },\n  { type: 'error', inputs: [], name: 'ManagerLocked' },\n  { type: 'error', inputs: [], name: 'MustClearExactPositiveDelta' },\n  { type: 'error', inputs: [], name: 'NonzeroNativeValue' },\n  { type: 'error', inputs: [], name: 'PoolNotInitialized' },\n  { type: 'error', inputs: [], name: 'ProtocolFeeCurrencySynced' },\n  {\n    type: 'error',\n    inputs: [{ name: 'fee', internalType: 'uint24', type: 'uint24' }],\n    name: 'ProtocolFeeTooLarge',\n  },\n  { type: 'error', inputs: [], name: 'SwapAmountCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],\n    name: 'TickSpacingTooLarge',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],\n    name: 'TickSpacingTooSmall',\n  },\n  { type: 'error', inputs: [], name: 'UnauthorizedDynamicLPFeeUpdate' },\n] as const\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0xCe2C8032F85aB6a7148138F8a1235d2b17D53Dc5)\n */\nexport const devZoraLimitOrderBookAddress = {\n  8453: '0xCe2C8032F85aB6a7148138F8a1235d2b17D53Dc5',\n} as const\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0xCe2C8032F85aB6a7148138F8a1235d2b17D53Dc5)\n */\nexport const devZoraLimitOrderBookConfig = {\n  address: devZoraLimitOrderBookAddress,\n  abi: devZoraLimitOrderBookABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// DevZoraRouter\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0x1F35FB3E07e68bC1Bf020c2d59cBF91Ccf5736b8)\n */\nexport const devZoraRouterABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: 'poolManager_',\n        internalType: 'contract IPoolManager',\n        type: 'address',\n      },\n      {\n        name: 'zoraLimitOrderBook_',\n        internalType: 'contract IZoraLimitOrderBook',\n        type: 'address',\n      },\n      {\n        name: 'swapRouter_',\n        internalType: 'contract ISwapRouter',\n        type: 'address',\n      },\n      { name: 'permit2_', internalType: 'address', type: 'address' },\n      { name: 'owner_', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  { type: 'receive', stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getLimitOrderConfig',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct LimitOrderConfig',\n        type: 'tuple',\n        components: [\n          { name: 'multiples', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'percentages', internalType: 'uint256[]', type: 'uint256[]' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'msgSender',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'poolManager',\n    outputs: [\n      { name: '', internalType: 'contract IPoolManager', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'config',\n        internalType: 'struct LimitOrderConfig',\n        type: 'tuple',\n        components: [\n          { name: 'multiples', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'percentages', internalType: 'uint256[]', type: 'uint256[]' },\n        ],\n      },\n    ],\n    name: 'setLimitOrderConfig',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'swapRouter',\n    outputs: [\n      { name: '', internalType: 'contract ISwapRouter', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct SwapWithLimitOrders.SwapWithLimitOrdersParams',\n        type: 'tuple',\n        components: [\n          { name: 'recipient', internalType: 'address', type: 'address' },\n          {\n            name: 'limitOrderConfig',\n            internalType: 'struct LimitOrderConfig',\n            type: 'tuple',\n            components: [\n              {\n                name: 'multiples',\n                internalType: 'uint256[]',\n                type: 'uint256[]',\n              },\n              {\n                name: 'percentages',\n                internalType: 'uint256[]',\n                type: 'uint256[]',\n              },\n            ],\n          },\n          { name: 'inputCurrency', internalType: 'address', type: 'address' },\n          { name: 'inputAmount', internalType: 'uint256', type: 'uint256' },\n          { name: 'v3Route', internalType: 'bytes', type: 'bytes' },\n          {\n            name: 'v4Route',\n            internalType: 'struct PoolKey[]',\n            type: 'tuple[]',\n            components: [\n              { name: 'currency0', internalType: 'Currency', type: 'address' },\n              { name: 'currency1', internalType: 'Currency', type: 'address' },\n              { name: 'fee', internalType: 'uint24', type: 'uint24' },\n              { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n              {\n                name: 'hooks',\n                internalType: 'contract IHooks',\n                type: 'address',\n              },\n            ],\n          },\n          { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'swapWithLimitOrders',\n    outputs: [{ name: 'delta', internalType: 'BalanceDelta', type: 'int256' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'unlockCallback',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraLimitOrderBook',\n    outputs: [\n      {\n        name: '',\n        internalType: 'contract IZoraLimitOrderBook',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'multiples',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n      {\n        name: 'percentages',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n    ],\n    name: 'LimitOrderConfigUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'poolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'tickBeforeSwap',\n        internalType: 'int24',\n        type: 'int24',\n        indexed: false,\n      },\n      {\n        name: 'tickAfterSwap',\n        internalType: 'int24',\n        type: 'int24',\n        indexed: false,\n      },\n      {\n        name: 'amount0',\n        internalType: 'int128',\n        type: 'int128',\n        indexed: false,\n      },\n      {\n        name: 'amount1',\n        internalType: 'int128',\n        type: 'int128',\n        indexed: false,\n      },\n      {\n        name: 'sqrtPriceX96',\n        internalType: 'uint160',\n        type: 'uint160',\n        indexed: false,\n      },\n      {\n        name: 'orders',\n        internalType: 'struct SwapWithLimitOrders.CreatedOrder[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'orderId', internalType: 'bytes32', type: 'bytes32' },\n          { name: 'multiple', internalType: 'uint256', type: 'uint256' },\n          { name: 'percentage', internalType: 'uint256', type: 'uint256' },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'SwapWithLimitOrdersExecuted',\n  },\n  { type: 'error', inputs: [], name: 'EmptyV4Route' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'inputAmount', internalType: 'uint256', type: 'uint256' },\n      { name: 'availableAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InsufficientInputCurrency',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientOutputAmount' },\n  { type: 'error', inputs: [], name: 'InsufficientTransferFunds' },\n  { type: 'error', inputs: [], name: 'InvalidLimitOrderConfig' },\n  { type: 'error', inputs: [], name: 'InvalidMultiple' },\n  { type: 'error', inputs: [], name: 'InvalidPercent' },\n  { type: 'error', inputs: [], name: 'LengthMismatch' },\n  { type: 'error', inputs: [], name: 'OnlyPoolManager' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'PercentOverflow' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  { type: 'error', inputs: [], name: 'UnsafeCast' },\n  { type: 'error', inputs: [], name: 'V3RouteDoesNotConnectToV4RouteStart' },\n  { type: 'error', inputs: [], name: 'ZeroSwapDelta' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ArrayLengthMismatch' },\n  { type: 'error', inputs: [], name: 'CallerNotPermitted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'orderId', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n      { name: 'actualCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'CoinMismatch',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientForwardedFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientTransferFunds' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'startTick', internalType: 'int24', type: 'int24' },\n      { name: 'endTick', internalType: 'int24', type: 'int24' },\n      { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'InvalidFillWindow',\n  },\n  { type: 'error', inputs: [], name: 'InvalidOrder' },\n  { type: 'error', inputs: [], name: 'InvalidPoolKey' },\n  { type: 'error', inputs: [], name: 'MaxFillCountCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'withdrawn', internalType: 'uint256', type: 'uint256' },\n      { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MinAmountNotReached',\n  },\n  { type: 'error', inputs: [], name: 'NativeValueMismatch' },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  { type: 'error', inputs: [], name: 'OnlyZoraHook' },\n  { type: 'error', inputs: [], name: 'OrderClosed' },\n  { type: 'error', inputs: [], name: 'OrderFillable' },\n  { type: 'error', inputs: [], name: 'OrderNotMaker' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'PermittedCallersLengthMismatch' },\n  { type: 'error', inputs: [], name: 'RouterMsgSenderInvalid' },\n  { type: 'error', inputs: [], name: 'UnknownCallback' },\n  { type: 'error', inputs: [], name: 'UnlockedFillNotAllowed' },\n  { type: 'error', inputs: [], name: 'WethTransferFailed' },\n  { type: 'error', inputs: [], name: 'ZeroMaker' },\n  { type: 'error', inputs: [], name: 'ZeroOrderSize' },\n  { type: 'error', inputs: [], name: 'ZeroRealizedOrder' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'AlreadyOwner' },\n  { type: 'error', inputs: [], name: 'CannotMintZeroLiquidity' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'DopplerPoolMustHaveMoreThan2DiscoveryPositions',\n  },\n  { type: 'error', inputs: [], name: 'ECDSAInvalidSignature' },\n  {\n    type: 'error',\n    inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }],\n    name: 'ECDSAInvalidSignatureLength',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 's', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'ECDSAInvalidSignatureS',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'allowance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientAllowance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidApprover',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidReceiver',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSender',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'spender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSpender',\n  },\n  { type: 'error', inputs: [], name: 'ERC20TransferAmountMismatch' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'signer', internalType: 'address', type: 'address' },\n      { name: 'owner', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC2612InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'EthAmountMismatch' },\n  { type: 'error', inputs: [], name: 'EthAmountTooSmall' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'EthTransferInvalid' },\n  { type: 'error', inputs: [], name: 'InitialOrderSizeTooLarge' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientLiquidity' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidCurrency' },\n  { type: 'error', inputs: [], name: 'InvalidCurrencyLowerTick' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidMarketType' },\n  { type: 'error', inputs: [], name: 'InvalidPoolVersion' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tickLower', internalType: 'int24', type: 'int24' },\n      { name: 'tickUpper', internalType: 'int24', type: 'int24' },\n    ],\n    name: 'InvalidTickRangeMisordered',\n  },\n  { type: 'error', inputs: [], name: 'InvalidWethLowerTick' },\n  { type: 'error', inputs: [], name: 'LegacyPoolMustHaveOneDiscoveryPosition' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyGraduated' },\n  { type: 'error', inputs: [], name: 'MarketNotGraduated' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MaxShareToBeSoldExceeded',\n  },\n  { type: 'error', inputs: [], name: 'NameIsRequired' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotOwner' },\n  { type: 'error', inputs: [], name: 'NumDiscoveryPositionsOutOfRange' },\n  { type: 'error', inputs: [], name: 'OneOwnerRequired' },\n  { type: 'error', inputs: [], name: 'OnlyOwner' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'pool', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyPool',\n  },\n  { type: 'error', inputs: [], name: 'OnlyWeth' },\n  { type: 'error', inputs: [], name: 'OwnerCannotBeAddressZero' },\n  { type: 'error', inputs: [], name: 'SlippageBoundsExceeded' },\n  { type: 'error', inputs: [], name: 'UseRevokeOwnershipToRemoveSelf' },\n  { type: 'error', inputs: [], name: 'CoinVersionLookupCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'HookNotImplemented' },\n  {\n    type: 'error',\n    inputs: [{ name: 'callbackId', internalType: 'uint8', type: 'uint8' }],\n    name: 'InvalidCallbackId',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'newHook', internalType: 'address', type: 'address' }],\n    name: 'InvalidNewHook',\n  },\n  {\n    type: 'error',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n    ],\n    name: 'NoCoinForHook',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'coin', internalType: 'address', type: 'address' }],\n    name: 'NotACoin',\n  },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyCoin',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'SafeCastOverflow' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'TrustedMsgSenderLookupCannotBeZeroAddress',\n  },\n  { type: 'error', inputs: [], name: 'UpgradeGateCannotBeZeroAddress' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'oldHook', internalType: 'address', type: 'address' },\n      { name: 'newHook', internalType: 'address', type: 'address' },\n    ],\n    name: 'UpgradePathNotRegistered',\n  },\n  { type: 'error', inputs: [], name: 'ZoraHookRegistryCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'ZoraLimitOrderBookCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'AlreadyUnlocked' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'currency0', internalType: 'address', type: 'address' },\n      { name: 'currency1', internalType: 'address', type: 'address' },\n    ],\n    name: 'CurrenciesOutOfOrderOrEqual',\n  },\n  { type: 'error', inputs: [], name: 'CurrencyNotSettled' },\n  { type: 'error', inputs: [], name: 'InvalidCaller' },\n  { type: 'error', inputs: [], name: 'ManagerLocked' },\n  { type: 'error', inputs: [], name: 'MustClearExactPositiveDelta' },\n  { type: 'error', inputs: [], name: 'NonzeroNativeValue' },\n  { type: 'error', inputs: [], name: 'PoolNotInitialized' },\n  { type: 'error', inputs: [], name: 'ProtocolFeeCurrencySynced' },\n  {\n    type: 'error',\n    inputs: [{ name: 'fee', internalType: 'uint24', type: 'uint24' }],\n    name: 'ProtocolFeeTooLarge',\n  },\n  { type: 'error', inputs: [], name: 'SwapAmountCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],\n    name: 'TickSpacingTooLarge',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],\n    name: 'TickSpacingTooSmall',\n  },\n  { type: 'error', inputs: [], name: 'UnauthorizedDynamicLPFeeUpdate' },\n  { type: 'error', inputs: [], name: 'ETHNotAccepted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'commandIndex', internalType: 'uint256', type: 'uint256' },\n      { name: 'message', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'ExecutionFailed',\n  },\n  { type: 'error', inputs: [], name: 'InvalidEthSender' },\n  { type: 'error', inputs: [], name: 'LengthMismatch' },\n  { type: 'error', inputs: [], name: 'TransactionDeadlinePassed' },\n] as const\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0x1F35FB3E07e68bC1Bf020c2d59cBF91Ccf5736b8)\n */\nexport const devZoraRouterAddress = {\n  8453: '0x1F35FB3E07e68bC1Bf020c2d59cBF91Ccf5736b8',\n} as const\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0x1F35FB3E07e68bC1Bf020c2d59cBF91Ccf5736b8)\n */\nexport const devZoraRouterConfig = {\n  address: devZoraRouterAddress,\n  abi: devZoraRouterABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ERC20Minter\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x8Ec7f068A77fa5FC1925110f82381374BA054Ff2)\n */\nexport const erc20MinterABI = [\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'config',\n        internalType: 'struct IERC20Minter.PremintSalesConfig',\n        type: 'tuple',\n        components: [\n          { name: 'duration', internalType: 'uint64', type: 'uint64' },\n          {\n            name: 'maxTokensPerAddress',\n            internalType: 'uint64',\n            type: 'uint64',\n          },\n          { name: 'pricePerToken', internalType: 'uint256', type: 'uint256' },\n          { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n          { name: 'currency', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    name: 'buildSalesConfigForPremint',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IERC20Minter.SalesConfig',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          {\n            name: 'maxTokensPerAddress',\n            internalType: 'uint64',\n            type: 'uint64',\n          },\n          { name: 'pricePerToken', internalType: 'uint256', type: 'uint256' },\n          { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n          { name: 'currency', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'cancelOwnershipTransfer',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'totalReward', internalType: 'uint256', type: 'uint256' }],\n    name: 'computePaidMintRewards',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IERC20Minter.RewardsSettings',\n        type: 'tuple',\n        components: [\n          {\n            name: 'createReferralReward',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'mintReferralReward',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'zoraReward', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'firstMinterReward',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n        ],\n      },\n    ],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'totalReward', internalType: 'uint256', type: 'uint256' },\n      { name: 'rewardPct', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'computeReward',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'totalValue', internalType: 'uint256', type: 'uint256' }],\n    name: 'computeTotalReward',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'ethRewardAmount',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenContract', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'getCreateReferral',\n    outputs: [\n      { name: 'createReferral', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getERC20MinterConfig',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IERC20Minter.ERC20MinterConfig',\n        type: 'tuple',\n        components: [\n          {\n            name: 'zoraRewardRecipientAddress',\n            internalType: 'address',\n            type: 'address',\n          },\n          {\n            name: 'rewardRecipientPercentage',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'ethReward', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenContract', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'getFirstMinter',\n    outputs: [\n      { name: 'firstMinter', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenContract', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'wallet', internalType: 'address', type: 'address' },\n    ],\n    name: 'getMintedPerWallet',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: '_zoraRewardRecipientAddress',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: '_owner', internalType: 'address', type: 'address' },\n      { name: '_rewardPct', internalType: 'uint256', type: 'uint256' },\n      { name: '_ethReward', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'mintTo', internalType: 'address', type: 'address' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'tokenAddress', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'totalValue', internalType: 'uint256', type: 'uint256' },\n      { name: 'currency', internalType: 'address', type: 'address' },\n      { name: 'mintReferral', internalType: 'address', type: 'address' },\n      { name: 'comment', internalType: 'string', type: 'string' },\n    ],\n    name: 'mint',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'minterConfig',\n    outputs: [\n      {\n        name: 'zoraRewardRecipientAddress',\n        internalType: 'address',\n        type: 'address',\n      },\n      {\n        name: 'rewardRecipientPercentage',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n      { name: 'ethReward', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n      { name: '', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'requestMint',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct ICreatorCommands.CommandSet',\n        type: 'tuple',\n        components: [\n          {\n            name: 'commands',\n            internalType: 'struct ICreatorCommands.Command[]',\n            type: 'tuple[]',\n            components: [\n              {\n                name: 'method',\n                internalType: 'enum ICreatorCommands.CreatorActions',\n                type: 'uint8',\n              },\n              { name: 'args', internalType: 'bytes', type: 'bytes' },\n            ],\n          },\n          { name: 'at', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'resetSale',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'resignOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '_newOwner', internalType: 'address', type: 'address' }],\n    name: 'safeTransferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenContract', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'sale',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IERC20Minter.SalesConfig',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          {\n            name: 'maxTokensPerAddress',\n            internalType: 'uint64',\n            type: 'uint64',\n          },\n          { name: 'pricePerToken', internalType: 'uint256', type: 'uint256' },\n          { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n          { name: 'currency', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'config',\n        internalType: 'struct IERC20Minter.ERC20MinterConfig',\n        type: 'tuple',\n        components: [\n          {\n            name: 'zoraRewardRecipientAddress',\n            internalType: 'address',\n            type: 'address',\n          },\n          {\n            name: 'rewardRecipientPercentage',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'ethReward', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'setERC20MinterConfig',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'encodedPremintSalesConfig',\n        internalType: 'bytes',\n        type: 'bytes',\n      },\n    ],\n    name: 'setPremintSale',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'salesConfig',\n        internalType: 'struct IERC20Minter.SalesConfig',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          {\n            name: 'maxTokensPerAddress',\n            internalType: 'uint64',\n            type: 'uint64',\n          },\n          { name: 'pricePerToken', internalType: 'uint256', type: 'uint256' },\n          { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n          { name: 'currency', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    name: 'setSale',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'totalRewardPct',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '_newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'config',\n        internalType: 'struct IERC20Minter.ERC20MinterConfig',\n        type: 'tuple',\n        components: [\n          {\n            name: 'zoraRewardRecipientAddress',\n            internalType: 'address',\n            type: 'address',\n          },\n          {\n            name: 'rewardRecipientPercentage',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'ethReward', internalType: 'uint256', type: 'uint256' },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'ERC20MinterConfigSet',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'createReferral',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'mintReferral',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'firstMinter',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'zora',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'collection',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'currency',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'createReferralReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'mintReferralReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'firstMinterReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'zoraReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'ERC20RewardsDeposit',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenContract',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'quantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'comment',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'MintComment',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'canceledOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerCanceled',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'pendingOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerPending',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'prevOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'mediaContract',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'salesConfig',\n        internalType: 'struct IERC20Minter.SalesConfig',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          {\n            name: 'maxTokensPerAddress',\n            internalType: 'uint64',\n            type: 'uint64',\n          },\n          { name: 'pricePerToken', internalType: 'uint256', type: 'uint256' },\n          { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n          { name: 'currency', internalType: 'address', type: 'address' },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'SaleSet',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ERC20TransferSlippage' },\n  { type: 'error', inputs: [], name: 'FailedToSendEthReward' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING',\n  },\n  { type: 'error', inputs: [], name: 'InvalidCurrency' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expectedValue', internalType: 'uint256', type: 'uint256' },\n      { name: 'actualValue', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InvalidETHValue',\n  },\n  { type: 'error', inputs: [], name: 'InvalidValue' },\n  { type: 'error', inputs: [], name: 'ONLY_OWNER' },\n  { type: 'error', inputs: [], name: 'ONLY_PENDING_OWNER' },\n  { type: 'error', inputs: [], name: 'OWNER_CANNOT_BE_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'PricePerTokenTooLow' },\n  { type: 'error', inputs: [], name: 'RequestMintInvalidUseMint' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n      { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserExceedsMintLimit',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x8Ec7f068A77fa5FC1925110f82381374BA054Ff2)\n */\nexport const erc20MinterAddress = {\n  1: '0x777777E8850d8D6d98De2B5f64fae401F96eFF31',\n  10: '0x777777E8850d8D6d98De2B5f64fae401F96eFF31',\n  8453: '0x777777E8850d8D6d98De2B5f64fae401F96eFF31',\n  42161: '0x777777E8850d8D6d98De2B5f64fae401F96eFF31',\n  81457: '0x777777E8850d8D6d98De2B5f64fae401F96eFF31',\n  84532: '0x777777E8850d8D6d98De2B5f64fae401F96eFF31',\n  421614: '0x777777E8850d8D6d98De2B5f64fae401F96eFF31',\n  7777777: '0x777777E8850d8D6d98De2B5f64fae401F96eFF31',\n  11155111: '0x777777E8850d8D6d98De2B5f64fae401F96eFF31',\n  999999999: '0x8Ec7f068A77fa5FC1925110f82381374BA054Ff2',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777E8850d8D6d98De2B5f64fae401F96eFF31)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x8Ec7f068A77fa5FC1925110f82381374BA054Ff2)\n */\nexport const erc20MinterConfig = {\n  address: erc20MinterAddress,\n  abi: erc20MinterABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ERC20Z\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const erc20ZABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: '_royalties',\n        internalType: 'contract IRoyalties',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  { type: 'receive', stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'WETH',\n    outputs: [{ name: '', internalType: 'contract IWETH', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'erc20TotalSupply', internalType: 'uint256', type: 'uint256' },\n      { name: 'erc20Reserve', internalType: 'uint256', type: 'uint256' },\n      { name: 'erc20Liquidity', internalType: 'uint256', type: 'uint256' },\n      { name: 'erc20Excess', internalType: 'uint256', type: 'uint256' },\n      { name: 'erc1155Excess', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'activate',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'spender', internalType: 'address', type: 'address' },\n    ],\n    name: 'allowance',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'approve',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'balanceOf',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'decimals',\n    outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'collection', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'symbol', internalType: 'string', type: 'string' },\n    ],\n    name: 'initialize',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'name',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'nonfungiblePositionManager',\n    outputs: [\n      {\n        name: '',\n        internalType: 'contract INonfungiblePositionManager',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'values', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC1155BatchReceived',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC1155Received',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC721Received',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'royalties',\n    outputs: [\n      { name: '', internalType: 'contract IRoyalties', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'symbol',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'tokenInfo',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IERC20Z.TokenInfo',\n        type: 'tuple',\n        components: [\n          { name: 'collection', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'creator', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'tokenLiquidityInfo',\n    outputs: [\n      { name: 'pool', internalType: 'address', type: 'address' },\n      {\n        name: 'initialLiquidityPositionId',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'tokenURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'totalSupply',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'transfer',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'transferFrom',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'amount20z', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'unwrap',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'amount1155', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'wrap',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'spender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'value',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Approval',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'erc20z',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amount20z',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'collection',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'amount1155',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'ConvertedTo1155',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'erc20z',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amount20z',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'collection',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'amount1155',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'ConvertedTo20z',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'quantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'ReceivedAdminMintNFTs',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'token0',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amount0',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'token1',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'amount1',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      { name: 'fee', internalType: 'uint256', type: 'uint256', indexed: false },\n      {\n        name: 'positionId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'lpLiquidity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'erc20Excess',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'erc1155Excess',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'SecondaryMarketActivated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'value',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Transfer',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'AlreadyActivatedCannotReactivate' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'allowance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientAllowance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidApprover',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidReceiver',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSender',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'spender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSpender',\n  },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'IDsDoNotMatchValuesLength' },\n  { type: 'error', inputs: [], name: 'InsufficientBalance' },\n  { type: 'error', inputs: [], name: 'Invalid20zTransfer' },\n  { type: 'error', inputs: [], name: 'InvalidAmount20z' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidParams' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'OnlySaleStrategy' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'OnlySupportReceivingERC1155AssociatedZoraNFT',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'OnlySupportReceivingERC721UniswapPoolNFTs',\n  },\n  { type: 'error', inputs: [], name: 'PoolCreationFailed' },\n  { type: 'error', inputs: [], name: 'RecipientAddressZero' },\n  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  { type: 'error', inputs: [], name: 'SecondaryMarketHasNotYetStarted' },\n  { type: 'error', inputs: [], name: 'TokenIdNotValidToSwap' },\n  { type: 'error', inputs: [], name: 'UnknownReceiveActionDataCall' },\n] as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ERC20ZRoyalties\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x53a85FbD2955EF713AA489Ae0C48523E727a0c07)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n */\nexport const erc20ZRoyaltiesABI = [\n  { type: 'receive', stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'WETH',\n    outputs: [{ name: '', internalType: 'contract IWETH', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'erc20z', internalType: 'address', type: 'address' },\n      { name: 'recipient', internalType: 'address payable', type: 'address' },\n    ],\n    name: 'claim',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'erc20z', internalType: 'address', type: 'address' }],\n    name: 'claimFor',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'feeBps',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'feeRecipient',\n    outputs: [{ name: '', internalType: 'address payable', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],\n    name: 'getFee',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'erc20z', internalType: 'address', type: 'address' }],\n    name: 'getUnclaimedFees',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IRoyalties.UnclaimedFees',\n        type: 'tuple',\n        components: [\n          { name: 'token0', internalType: 'address', type: 'address' },\n          { name: 'token1', internalType: 'address', type: 'address' },\n          { name: 'token0Amount', internalType: 'uint128', type: 'uint128' },\n          { name: 'token1Amount', internalType: 'uint128', type: 'uint128' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'erc20z', internalType: 'address[]', type: 'address[]' }],\n    name: 'getUnclaimedFeesBatch',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IRoyalties.UnclaimedFees[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'token0', internalType: 'address', type: 'address' },\n          { name: 'token1', internalType: 'address', type: 'address' },\n          { name: 'token0Amount', internalType: 'uint128', type: 'uint128' },\n          { name: 'token1Amount', internalType: 'uint128', type: 'uint128' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '_weth', internalType: 'contract IWETH', type: 'address' },\n      {\n        name: '_nonfungiblePositionManager',\n        internalType: 'contract INonfungiblePositionManager',\n        type: 'address',\n      },\n      {\n        name: '_feeRecipient',\n        internalType: 'address payable',\n        type: 'address',\n      },\n      { name: '_feeBps', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'nonfungiblePositionManager',\n    outputs: [\n      {\n        name: '',\n        internalType: 'contract INonfungiblePositionManager',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'positionId', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC721Received',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'erc20z', internalType: 'address', type: 'address' }],\n    name: 'positionsByErc20z',\n    outputs: [{ name: 'positionId', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'collection',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'creator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'positionAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'positionId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'token0',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'token0Amount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'token1',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'token1Amount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'RoyaltyClaim',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'erc20zAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'positionAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'positionId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'RoyaltyDeposit',\n  },\n  { type: 'error', inputs: [], name: 'AddressCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'AlreadyInitialized' },\n  { type: 'error', inputs: [], name: 'CreatorMustBeSet' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC721SenderRoyaltiesNeedsToBePositionManager',\n  },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'OnlyCreatorCanCall' },\n  { type: 'error', inputs: [], name: 'OnlyErc20z' },\n  { type: 'error', inputs: [], name: 'OnlyWeth' },\n  { type: 'error', inputs: [], name: 'ParamsCannotBeZero' },\n  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x53a85FbD2955EF713AA489Ae0C48523E727a0c07)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n */\nexport const erc20ZRoyaltiesAddress = {\n  1: '0x77777771DF91C56c5468746E80DFA8b880f9719F',\n  10: '0x77777771DF91C56c5468746E80DFA8b880f9719F',\n  8453: '0x77777771DF91C56c5468746E80DFA8b880f9719F',\n  42161: '0x77777771DF91C56c5468746E80DFA8b880f9719F',\n  81457: '0x77777771DF91C56c5468746E80DFA8b880f9719F',\n  84532: '0x77777771DF91C56c5468746E80DFA8b880f9719F',\n  421614: '0x77777771DF91C56c5468746E80DFA8b880f9719F',\n  7777777: '0x77777771DF91C56c5468746E80DFA8b880f9719F',\n  11155111: '0x53a85FbD2955EF713AA489Ae0C48523E727a0c07',\n  999999999: '0x77777771DF91C56c5468746E80DFA8b880f9719F',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x53a85FbD2955EF713AA489Ae0C48523E727a0c07)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777771DF91C56c5468746E80DFA8b880f9719F)\n */\nexport const erc20ZRoyaltiesConfig = {\n  address: erc20ZRoyaltiesAddress,\n  abi: erc20ZRoyaltiesABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// IPremintDefinitions\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const iPremintDefinitionsABI = [\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: '',\n        internalType: 'struct TokenCreationConfig',\n        type: 'tuple',\n        components: [\n          { name: 'tokenURI', internalType: 'string', type: 'string' },\n          { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'maxTokensPerAddress',\n            internalType: 'uint64',\n            type: 'uint64',\n          },\n          { name: 'pricePerToken', internalType: 'uint96', type: 'uint96' },\n          { name: 'mintStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'mintDuration', internalType: 'uint64', type: 'uint64' },\n          {\n            name: 'royaltyMintSchedule',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'royaltyRecipient',\n            internalType: 'address',\n            type: 'address',\n          },\n          {\n            name: 'fixedPriceMinter',\n            internalType: 'address',\n            type: 'address',\n          },\n        ],\n      },\n    ],\n    name: 'tokenConfigV1Definition',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: '',\n        internalType: 'struct TokenCreationConfigV2',\n        type: 'tuple',\n        components: [\n          { name: 'tokenURI', internalType: 'string', type: 'string' },\n          { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'maxTokensPerAddress',\n            internalType: 'uint64',\n            type: 'uint64',\n          },\n          { name: 'pricePerToken', internalType: 'uint96', type: 'uint96' },\n          { name: 'mintStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'mintDuration', internalType: 'uint64', type: 'uint64' },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n          {\n            name: 'fixedPriceMinter',\n            internalType: 'address',\n            type: 'address',\n          },\n          { name: 'createReferral', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    name: 'tokenConfigV2Definition',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: '',\n        internalType: 'struct TokenCreationConfigV3',\n        type: 'tuple',\n        components: [\n          { name: 'tokenURI', internalType: 'string', type: 'string' },\n          { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          { name: 'payoutRecipient', internalType: 'address', type: 'address' },\n          { name: 'createReferral', internalType: 'address', type: 'address' },\n          { name: 'mintStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'minter', internalType: 'address', type: 'address' },\n          { name: 'premintSalesConfig', internalType: 'bytes', type: 'bytes' },\n        ],\n      },\n    ],\n    name: 'tokenConfigV3Definition',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n] as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ISponsoredSparksSpenderAction\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const iSponsoredSparksSpenderActionABI = [\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'sponsoredMintBatch',\n        internalType: 'struct SponsoredMintBatch',\n        type: 'tuple',\n        components: [\n          { name: 'verifier', internalType: 'address', type: 'address' },\n          { name: 'from', internalType: 'address', type: 'address' },\n          {\n            name: 'destination',\n            internalType: 'address payable',\n            type: 'address',\n          },\n          { name: 'data', internalType: 'bytes', type: 'bytes' },\n          {\n            name: 'expectedRedeemAmount',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'totalAmount', internalType: 'uint256', type: 'uint256' },\n          { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'sponsoredMintBatch',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n] as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// IUniswapV3Pool\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const iUniswapV3PoolABI = [\n  {\n    type: 'function',\n    inputs: [],\n    name: 'fee',\n    outputs: [{ name: '', internalType: 'uint24', type: 'uint24' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'feeGrowthGlobal0X128',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'feeGrowthGlobal1X128',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'observationCardinalityNext',\n        internalType: 'uint16',\n        type: 'uint16',\n      },\n    ],\n    name: 'increaseObservationCardinalityNext',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'secondsAgos', internalType: 'uint32[]', type: 'uint32[]' },\n    ],\n    name: 'observe',\n    outputs: [\n      { name: 'tickCumulatives', internalType: 'int56[]', type: 'int56[]' },\n      {\n        name: 'secondsPerLiquidityCumulativeX128s',\n        internalType: 'uint160[]',\n        type: 'uint160[]',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'slot0',\n    outputs: [\n      {\n        name: 'slot0',\n        internalType: 'struct IUniswapV3Pool.Slot0',\n        type: 'tuple',\n        components: [\n          { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },\n          { name: 'tick', internalType: 'int24', type: 'int24' },\n          { name: 'observationIndex', internalType: 'uint16', type: 'uint16' },\n          {\n            name: 'observationCardinality',\n            internalType: 'uint16',\n            type: 'uint16',\n          },\n          {\n            name: 'observationCardinalityNext',\n            internalType: 'uint16',\n            type: 'uint16',\n          },\n          { name: 'feeProtocol', internalType: 'uint8', type: 'uint8' },\n          { name: 'unlocked', internalType: 'bool', type: 'bool' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'zeroForOne', internalType: 'bool', type: 'bool' },\n      { name: 'amountSpecified', internalType: 'int256', type: 'int256' },\n      { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'swap',\n    outputs: [\n      { name: 'amount0', internalType: 'int256', type: 'int256' },\n      { name: 'amount1', internalType: 'int256', type: 'int256' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'token0',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'token1',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n] as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// IUnwrapAndForwardAction\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const iUnwrapAndForwardActionABI = [\n  {\n    type: 'function',\n    inputs: [\n      { name: 'receiverAddress', internalType: 'address', type: 'address' },\n      { name: 'call', internalType: 'bytes', type: 'bytes' },\n      { name: 'valueToSend', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'callWithEth',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n] as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// MintsEthUnwrapperAndCaller\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0xb0994EB9520C98C97e1F3953a5964535C2bd271A)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0xb0994EB9520C98C97e1F3953a5964535C2bd271A)\n */\nexport const mintsEthUnwrapperAndCallerABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: '_zoraSparks1155',\n        internalType: 'contract IZoraSparks1155',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  { type: 'receive', stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'values', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC1155BatchReceived',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC1155Received',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitBatch',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitWithAdditionalValue',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'CallFailed',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC20NotSupported',\n  },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'NotExpectingReceive' },\n  { type: 'error', inputs: [], name: 'NotZoraSparks1155' },\n  {\n    type: 'error',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'TransferFailed',\n  },\n  { type: 'error', inputs: [], name: 'UnknownUserAction' },\n] as const\n\n/**\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0xb0994EB9520C98C97e1F3953a5964535C2bd271A)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0xb0994EB9520C98C97e1F3953a5964535C2bd271A)\n */\nexport const mintsEthUnwrapperAndCallerAddress = {\n  7777777: '0xb0994EB9520C98C97e1F3953a5964535C2bd271A',\n  999999999: '0xb0994EB9520C98C97e1F3953a5964535C2bd271A',\n} as const\n\n/**\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0xb0994EB9520C98C97e1F3953a5964535C2bd271A)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0xb0994EB9520C98C97e1F3953a5964535C2bd271A)\n */\nexport const mintsEthUnwrapperAndCallerConfig = {\n  address: mintsEthUnwrapperAndCallerAddress,\n  abi: mintsEthUnwrapperAndCallerABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Permit2\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\n */\nexport const permit2ABI = [\n  {\n    type: 'function',\n    inputs: [],\n    name: 'DOMAIN_SEPARATOR',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'token', internalType: 'address', type: 'address' },\n      { name: 'spender', internalType: 'address', type: 'address' },\n    ],\n    name: 'allowance',\n    outputs: [\n      { name: 'amount', internalType: 'uint160', type: 'uint160' },\n      { name: 'expiration', internalType: 'uint48', type: 'uint48' },\n      { name: 'nonce', internalType: 'uint48', type: 'uint48' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'token', internalType: 'address', type: 'address' },\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint160', type: 'uint160' },\n      { name: 'expiration', internalType: 'uint48', type: 'uint48' },\n    ],\n    name: 'approve',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'token', internalType: 'address', type: 'address' },\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'newNonce', internalType: 'uint48', type: 'uint48' },\n    ],\n    name: 'invalidateNonces',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'wordPos', internalType: 'uint256', type: 'uint256' },\n      { name: 'mask', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'invalidateUnorderedNonces',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'approvals',\n        internalType: 'struct IAllowanceTransfer.TokenSpenderPair[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'token', internalType: 'address', type: 'address' },\n          { name: 'spender', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    name: 'lockdown',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'nonceBitmap',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      {\n        name: 'permitBatch',\n        internalType: 'struct IAllowanceTransfer.PermitBatch',\n        type: 'tuple',\n        components: [\n          {\n            name: 'details',\n            internalType: 'struct IAllowanceTransfer.PermitDetails[]',\n            type: 'tuple[]',\n            components: [\n              { name: 'token', internalType: 'address', type: 'address' },\n              { name: 'amount', internalType: 'uint160', type: 'uint160' },\n              { name: 'expiration', internalType: 'uint48', type: 'uint48' },\n              { name: 'nonce', internalType: 'uint48', type: 'uint48' },\n            ],\n          },\n          { name: 'spender', internalType: 'address', type: 'address' },\n          { name: 'sigDeadline', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permit',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      {\n        name: 'permitSingle',\n        internalType: 'struct IAllowanceTransfer.PermitSingle',\n        type: 'tuple',\n        components: [\n          {\n            name: 'details',\n            internalType: 'struct IAllowanceTransfer.PermitDetails',\n            type: 'tuple',\n            components: [\n              { name: 'token', internalType: 'address', type: 'address' },\n              { name: 'amount', internalType: 'uint160', type: 'uint160' },\n              { name: 'expiration', internalType: 'uint48', type: 'uint48' },\n              { name: 'nonce', internalType: 'uint48', type: 'uint48' },\n            ],\n          },\n          { name: 'spender', internalType: 'address', type: 'address' },\n          { name: 'sigDeadline', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permit',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct ISignatureTransfer.PermitTransferFrom',\n        type: 'tuple',\n        components: [\n          {\n            name: 'permitted',\n            internalType: 'struct ISignatureTransfer.TokenPermissions',\n            type: 'tuple',\n            components: [\n              { name: 'token', internalType: 'address', type: 'address' },\n              { name: 'amount', internalType: 'uint256', type: 'uint256' },\n            ],\n          },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      {\n        name: 'transferDetails',\n        internalType: 'struct ISignatureTransfer.SignatureTransferDetails',\n        type: 'tuple',\n        components: [\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitTransferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct ISignatureTransfer.PermitBatchTransferFrom',\n        type: 'tuple',\n        components: [\n          {\n            name: 'permitted',\n            internalType: 'struct ISignatureTransfer.TokenPermissions[]',\n            type: 'tuple[]',\n            components: [\n              { name: 'token', internalType: 'address', type: 'address' },\n              { name: 'amount', internalType: 'uint256', type: 'uint256' },\n            ],\n          },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      {\n        name: 'transferDetails',\n        internalType: 'struct ISignatureTransfer.SignatureTransferDetails[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitTransferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct ISignatureTransfer.PermitTransferFrom',\n        type: 'tuple',\n        components: [\n          {\n            name: 'permitted',\n            internalType: 'struct ISignatureTransfer.TokenPermissions',\n            type: 'tuple',\n            components: [\n              { name: 'token', internalType: 'address', type: 'address' },\n              { name: 'amount', internalType: 'uint256', type: 'uint256' },\n            ],\n          },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      {\n        name: 'transferDetails',\n        internalType: 'struct ISignatureTransfer.SignatureTransferDetails',\n        type: 'tuple',\n        components: [\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'witness', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'witnessTypeString', internalType: 'string', type: 'string' },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitWitnessTransferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct ISignatureTransfer.PermitBatchTransferFrom',\n        type: 'tuple',\n        components: [\n          {\n            name: 'permitted',\n            internalType: 'struct ISignatureTransfer.TokenPermissions[]',\n            type: 'tuple[]',\n            components: [\n              { name: 'token', internalType: 'address', type: 'address' },\n              { name: 'amount', internalType: 'uint256', type: 'uint256' },\n            ],\n          },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      {\n        name: 'transferDetails',\n        internalType: 'struct ISignatureTransfer.SignatureTransferDetails[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'witness', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'witnessTypeString', internalType: 'string', type: 'string' },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitWitnessTransferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'transferDetails',\n        internalType: 'struct IAllowanceTransfer.AllowanceTransferDetails[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'from', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'amount', internalType: 'uint160', type: 'uint160' },\n          { name: 'token', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    name: 'transferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint160', type: 'uint160' },\n      { name: 'token', internalType: 'address', type: 'address' },\n    ],\n    name: 'transferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'token',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'spender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amount',\n        internalType: 'uint160',\n        type: 'uint160',\n        indexed: false,\n      },\n      {\n        name: 'expiration',\n        internalType: 'uint48',\n        type: 'uint48',\n        indexed: false,\n      },\n    ],\n    name: 'Approval',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'token',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'spender',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'Lockdown',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'token',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'spender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newNonce',\n        internalType: 'uint48',\n        type: 'uint48',\n        indexed: false,\n      },\n      {\n        name: 'oldNonce',\n        internalType: 'uint48',\n        type: 'uint48',\n        indexed: false,\n      },\n    ],\n    name: 'NonceInvalidation',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'token',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'spender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amount',\n        internalType: 'uint160',\n        type: 'uint160',\n        indexed: false,\n      },\n      {\n        name: 'expiration',\n        internalType: 'uint48',\n        type: 'uint48',\n        indexed: false,\n      },\n      { name: 'nonce', internalType: 'uint48', type: 'uint48', indexed: false },\n    ],\n    name: 'Permit',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'word',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'mask',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'UnorderedNonceInvalidation',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'AllowanceExpired',\n  },\n  { type: 'error', inputs: [], name: 'ExcessiveInvalidation' },\n  {\n    type: 'error',\n    inputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],\n    name: 'InsufficientAllowance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'maxAmount', internalType: 'uint256', type: 'uint256' }],\n    name: 'InvalidAmount',\n  },\n  { type: 'error', inputs: [], name: 'LengthMismatch' },\n] as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\n */\nexport const permit2Address = {\n  8453: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n  84532: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n} as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\n */\nexport const permit2Config = {\n  address: permit2Address,\n  abi: permit2ABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// PoolConfigEncoding\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const poolConfigEncodingABI = [\n  {\n    type: 'function',\n    inputs: [\n      { name: 'version', internalType: 'uint8', type: 'uint8' },\n      { name: 'currency', internalType: 'address', type: 'address' },\n      { name: 'tickLower', internalType: 'int24[]', type: 'int24[]' },\n      { name: 'tickUpper', internalType: 'int24[]', type: 'int24[]' },\n      {\n        name: 'numDiscoveryPositions',\n        internalType: 'uint16[]',\n        type: 'uint16[]',\n      },\n      {\n        name: 'maxDiscoverySupplyShare',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n      },\n    ],\n    name: 'encodeMultiCurvePoolConfig',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'pure',\n  },\n] as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ProtocolRewards\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n */\nexport const protocolRewardsABI = [\n  { type: 'constructor', inputs: [], stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'WITHDRAW_TYPEHASH',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '', internalType: 'address', type: 'address' }],\n    name: 'balanceOf',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'reason', internalType: 'bytes4', type: 'bytes4' },\n      { name: 'comment', internalType: 'string', type: 'string' },\n    ],\n    name: 'deposit',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'recipients', internalType: 'address[]', type: 'address[]' },\n      { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'reasons', internalType: 'bytes4[]', type: 'bytes4[]' },\n      { name: 'comment', internalType: 'string', type: 'string' },\n    ],\n    name: 'depositBatch',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'creator', internalType: 'address', type: 'address' },\n      { name: 'creatorReward', internalType: 'uint256', type: 'uint256' },\n      { name: 'createReferral', internalType: 'address', type: 'address' },\n      {\n        name: 'createReferralReward',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n      { name: 'mintReferral', internalType: 'address', type: 'address' },\n      { name: 'mintReferralReward', internalType: 'uint256', type: 'uint256' },\n      { name: 'firstMinter', internalType: 'address', type: 'address' },\n      { name: 'firstMinterReward', internalType: 'uint256', type: 'uint256' },\n      { name: 'zora', internalType: 'address', type: 'address' },\n      { name: 'zoraReward', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'depositRewards',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'eip712Domain',\n    outputs: [\n      { name: 'fields', internalType: 'bytes1', type: 'bytes1' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'version', internalType: 'string', type: 'string' },\n      { name: 'chainId', internalType: 'uint256', type: 'uint256' },\n      { name: 'verifyingContract', internalType: 'address', type: 'address' },\n      { name: 'salt', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '', internalType: 'address', type: 'address' }],\n    name: 'nonces',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'totalSupply',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'withdraw',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'withdrawFor',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n      { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n      { name: 'v', internalType: 'uint8', type: 'uint8' },\n      { name: 'r', internalType: 'bytes32', type: 'bytes32' },\n      { name: 's', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'withdrawWithSig',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      { name: 'reason', internalType: 'bytes4', type: 'bytes4', indexed: true },\n      {\n        name: 'amount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'comment',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'Deposit',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'creator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'createReferral',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'mintReferral',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'firstMinter',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'zora',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'from',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'creatorReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'createReferralReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'mintReferralReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'firstMinterReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'zoraReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'RewardsDeposit',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'amount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Withdraw',\n  },\n  { type: 'error', inputs: [], name: 'ADDRESS_ZERO' },\n  { type: 'error', inputs: [], name: 'ARRAY_LENGTH_MISMATCH' },\n  { type: 'error', inputs: [], name: 'INVALID_DEPOSIT' },\n  { type: 'error', inputs: [], name: 'INVALID_SIGNATURE' },\n  { type: 'error', inputs: [], name: 'INVALID_WITHDRAW' },\n  { type: 'error', inputs: [], name: 'InvalidShortString' },\n  { type: 'error', inputs: [], name: 'SIGNATURE_DEADLINE_EXPIRED' },\n  {\n    type: 'error',\n    inputs: [{ name: 'str', internalType: 'string', type: 'string' }],\n    name: 'StringTooLong',\n  },\n  { type: 'error', inputs: [], name: 'TRANSFER_FAILED' },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n */\nexport const protocolRewardsAddress = {\n  1: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n  10: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n  999: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n  8453: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n  42161: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n  81457: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n  84532: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n  421614: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n  7777777: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n  11155111: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n  168587773: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n  999999999: '0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B)\n */\nexport const protocolRewardsConfig = {\n  address: protocolRewardsAddress,\n  abi: protocolRewardsABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// SecondarySwap\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777794a6e310F2A55da6f157b16ED28Fa5D91)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n */\nexport const secondarySwapABI = [\n  { type: 'receive', stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'WETH',\n    outputs: [{ name: '', internalType: 'contract IWETH', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'erc20zAddress', internalType: 'address', type: 'address' },\n      { name: 'num1155ToBuy', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address payable', type: 'address' },\n      {\n        name: 'excessRefundRecipient',\n        internalType: 'address payable',\n        type: 'address',\n      },\n      { name: 'maxEthToSpend', internalType: 'uint256', type: 'uint256' },\n      { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' },\n    ],\n    name: 'buy1155',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'weth_', internalType: 'contract IWETH', type: 'address' },\n      {\n        name: 'swapRouter_',\n        internalType: 'contract ISwapRouter',\n        type: 'address',\n      },\n      { name: 'uniswapFee_', internalType: 'uint24', type: 'uint24' },\n      {\n        name: 'zoraTimedSaleStrategy_',\n        internalType: 'contract IZoraTimedSaleStrategy',\n        type: 'address',\n      },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: '', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: '', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC1155BatchReceived',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC1155Received',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'erc20zAddress', internalType: 'address', type: 'address' },\n      { name: 'num1155ToSell', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address payable', type: 'address' },\n      { name: 'minEthToAcquire', internalType: 'uint256', type: 'uint256' },\n      { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' },\n    ],\n    name: 'sell1155',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'swapRouter',\n    outputs: [\n      { name: '', internalType: 'contract ISwapRouter', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'uniswapFee',\n    outputs: [{ name: '', internalType: 'uint24', type: 'uint24' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraTimedSaleStrategy',\n    outputs: [\n      {\n        name: '',\n        internalType: 'contract IZoraTimedSaleStrategy',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'msgSender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'erc20zAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amountETHSold',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'num1155Purchased',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'SecondaryBuy',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'collection',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'quantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'comment',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'secondaryType',\n        internalType: 'enum ISecondarySwap.SecondaryType',\n        type: 'uint8',\n        indexed: false,\n      },\n    ],\n    name: 'SecondaryComment',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'msgSender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'erc20zAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amountETHPurchased',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'num1155Sold',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'SecondarySell',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'AlreadyInitialized' },\n  { type: 'error', inputs: [], name: 'ERC20ZEquivalentAmountNotConverted' },\n  { type: 'error', inputs: [], name: 'ERC20ZMinimumAmountNotReceived' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'InvalidRecipient' },\n  { type: 'error', inputs: [], name: 'NoETHSent' },\n  { type: 'error', inputs: [], name: 'NotSupported' },\n  { type: 'error', inputs: [], name: 'OnlyWETH' },\n  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },\n  { type: 'error', inputs: [], name: 'SaleNotSet' },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777794a6e310F2A55da6f157b16ED28Fa5D91)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n */\nexport const secondarySwapAddress = {\n  1: '0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1',\n  10: '0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1',\n  8453: '0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1',\n  42161: '0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1',\n  81457: '0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1',\n  84532: '0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1',\n  421614: '0x777777794a6e310F2A55da6f157b16ED28Fa5D91',\n  7777777: '0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1',\n  11155111: '0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1',\n  999999999: '0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777794a6e310F2A55da6f157b16ED28Fa5D91)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x777777EDF27Ac61671e3D5718b10bf6a8802f9f1)\n */\nexport const secondarySwapConfig = {\n  address: secondarySwapAddress,\n  abi: secondarySwapABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// SponsoredSparksSpender\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x35ca784918bf11692708c1D530691704AAcEA95E)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x6958A8866A40118e2CC21ab4752353835321b5e6)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x2fBdBc34B6015e7b40638179Aa05a2D2267452c7)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x786F0f6aE196715Cd6d65693f06DA57426ac8463)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x23150f60E233F519A01C735C29c1591f9E8353dE)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x362Ef86acAD2FAa66A28Ee8d1F5a835ac0BBD11d)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x3A98313fB00918a81d98f9986aED089365428293)\n */\nexport const sponsoredSparksSpenderABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: '_zoraSparks1155',\n        internalType: 'contract IZoraSparks1155',\n        type: 'address',\n      },\n      { name: 'fundsManager', internalType: 'address', type: 'address' },\n      {\n        name: 'defaultVerifiers',\n        internalType: 'address[]',\n        type: 'address[]',\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  { type: 'receive', stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'NAME',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'SPONSORED_SPEND_TYPEHASH',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'SPONSORSHIP_TYPEHASH',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '', internalType: 'address', type: 'address' }],\n    name: 'allowedVerifiers',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'eip712Domain',\n    outputs: [\n      { name: 'fields', internalType: 'bytes1', type: 'bytes1' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'version', internalType: 'string', type: 'string' },\n      { name: 'chainId', internalType: 'uint256', type: 'uint256' },\n      { name: 'verifyingContract', internalType: 'address', type: 'address' },\n      { name: 'salt', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'fund',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'sponsorship',\n        internalType: 'struct SponsoredMintBatch',\n        type: 'tuple',\n        components: [\n          { name: 'verifier', internalType: 'address', type: 'address' },\n          { name: 'from', internalType: 'address', type: 'address' },\n          {\n            name: 'destination',\n            internalType: 'address payable',\n            type: 'address',\n          },\n          { name: 'data', internalType: 'bytes', type: 'bytes' },\n          {\n            name: 'expectedRedeemAmount',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'totalAmount', internalType: 'uint256', type: 'uint256' },\n          { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'hashSponsoredMint',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'sponsoredSpend',\n        internalType: 'struct SponsoredSpend',\n        type: 'tuple',\n        components: [\n          { name: 'verifier', internalType: 'address', type: 'address' },\n          { name: 'from', internalType: 'address', type: 'address' },\n          {\n            name: 'destination',\n            internalType: 'address payable',\n            type: 'address',\n          },\n          { name: 'data', internalType: 'bytes', type: 'bytes' },\n          {\n            name: 'expectedInputAmount',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'totalAmount', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'hashSponsoredSpend',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'values', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC1155BatchReceived',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC1155Received',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'verifier', internalType: 'address', type: 'address' },\n      { name: 'enabled', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'setVerifierStatus',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'sponsoredSpend',\n        internalType: 'struct SponsoredSpend',\n        type: 'tuple',\n        components: [\n          { name: 'verifier', internalType: 'address', type: 'address' },\n          { name: 'from', internalType: 'address', type: 'address' },\n          {\n            name: 'destination',\n            internalType: 'address payable',\n            type: 'address',\n          },\n          { name: 'data', internalType: 'bytes', type: 'bytes' },\n          {\n            name: 'expectedInputAmount',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'totalAmount', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'sponsoredExecute',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'usedNonces',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],\n    name: 'withdraw',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n    ],\n    name: 'ContractFunded',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'verifier',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'amountSpent',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'contractValue',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'SentSponsoredCallFromMintBalances',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'verifier',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'enabled', internalType: 'bool', type: 'bool', indexed: true },\n    ],\n    name: 'SetVerifierStatus',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'CallFailed',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC20NotSupported',\n  },\n  { type: 'error', inputs: [], name: 'IdsMismatch' },\n  { type: 'error', inputs: [], name: 'InvalidShortString' },\n  { type: 'error', inputs: [], name: 'InvalidSignature' },\n  { type: 'error', inputs: [], name: 'LengthMismatch' },\n  { type: 'error', inputs: [], name: 'NoMoreFundsToSponsor' },\n  { type: 'error', inputs: [], name: 'NonceUsed' },\n  { type: 'error', inputs: [], name: 'NotExpectingReceive' },\n  { type: 'error', inputs: [], name: 'NotZoraSparks1155' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  {\n    type: 'error',\n    inputs: [\n      {\n        name: 'expectedRedeemAmount',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n      {\n        name: 'transientReceivedAmount',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n    ],\n    name: 'RedeemAmountIsIncorrect',\n  },\n  { type: 'error', inputs: [], name: 'SenderNotAllowedInSignature' },\n  { type: 'error', inputs: [], name: 'SignatureExpired' },\n  { type: 'error', inputs: [], name: 'SingleTransferNotSupported' },\n  {\n    type: 'error',\n    inputs: [{ name: 'str', internalType: 'string', type: 'string' }],\n    name: 'StringTooLong',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'TransferFailed',\n  },\n  { type: 'error', inputs: [], name: 'UnknownAction' },\n  { type: 'error', inputs: [], name: 'UnknownUserAction' },\n  { type: 'error', inputs: [], name: 'ValuesMismatch' },\n  {\n    type: 'error',\n    inputs: [{ name: 'verifier', internalType: 'address', type: 'address' }],\n    name: 'VerifierNotAllowed',\n  },\n  { type: 'error', inputs: [], name: 'WithdrawFailed' },\n] as const\n\n/**\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x35ca784918bf11692708c1D530691704AAcEA95E)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x6958A8866A40118e2CC21ab4752353835321b5e6)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x2fBdBc34B6015e7b40638179Aa05a2D2267452c7)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x786F0f6aE196715Cd6d65693f06DA57426ac8463)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x23150f60E233F519A01C735C29c1591f9E8353dE)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x362Ef86acAD2FAa66A28Ee8d1F5a835ac0BBD11d)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x3A98313fB00918a81d98f9986aED089365428293)\n */\nexport const sponsoredSparksSpenderAddress = {\n  10: '0x35ca784918bf11692708c1D530691704AAcEA95E',\n  8453: '0x6958A8866A40118e2CC21ab4752353835321b5e6',\n  42161: '0x2fBdBc34B6015e7b40638179Aa05a2D2267452c7',\n  81457: '0x786F0f6aE196715Cd6d65693f06DA57426ac8463',\n  84532: '0x23150f60E233F519A01C735C29c1591f9E8353dE',\n  7777777: '0x362Ef86acAD2FAa66A28Ee8d1F5a835ac0BBD11d',\n  999999999: '0x3A98313fB00918a81d98f9986aED089365428293',\n} as const\n\n/**\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x35ca784918bf11692708c1D530691704AAcEA95E)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x6958A8866A40118e2CC21ab4752353835321b5e6)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x2fBdBc34B6015e7b40638179Aa05a2D2267452c7)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x786F0f6aE196715Cd6d65693f06DA57426ac8463)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x23150f60E233F519A01C735C29c1591f9E8353dE)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x362Ef86acAD2FAa66A28Ee8d1F5a835ac0BBD11d)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x3A98313fB00918a81d98f9986aED089365428293)\n */\nexport const sponsoredSparksSpenderConfig = {\n  address: sponsoredSparksSpenderAddress,\n  abi: sponsoredSparksSpenderABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// UniswapQuoterV2\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xC5290058841028F1614F3A6F0F5816cAd0df5E27)\n */\nexport const uniswapQuoterV2ABI = [\n  {\n    type: 'function',\n    inputs: [\n      { name: 'path', internalType: 'bytes', type: 'bytes' },\n      { name: 'amountIn', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'quoteExactInput',\n    outputs: [\n      { name: 'amountOut', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'sqrtPriceX96AfterList',\n        internalType: 'uint160[]',\n        type: 'uint160[]',\n      },\n      {\n        name: 'initializedTicksCrossedList',\n        internalType: 'uint32[]',\n        type: 'uint32[]',\n      },\n      { name: 'gasEstimate', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct IQuoterV2.QuoteExactInputSingleParams',\n        type: 'tuple',\n        components: [\n          { name: 'tokenIn', internalType: 'address', type: 'address' },\n          { name: 'tokenOut', internalType: 'address', type: 'address' },\n          { name: 'amountIn', internalType: 'uint256', type: 'uint256' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          {\n            name: 'sqrtPriceLimitX96',\n            internalType: 'uint160',\n            type: 'uint160',\n          },\n        ],\n      },\n    ],\n    name: 'quoteExactInputSingle',\n    outputs: [\n      { name: 'amountOut', internalType: 'uint256', type: 'uint256' },\n      { name: 'sqrtPriceX96After', internalType: 'uint160', type: 'uint160' },\n      {\n        name: 'initializedTicksCrossed',\n        internalType: 'uint32',\n        type: 'uint32',\n      },\n      { name: 'gasEstimate', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'path', internalType: 'bytes', type: 'bytes' },\n      { name: 'amountOut', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'quoteExactOutput',\n    outputs: [\n      { name: 'amountIn', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'sqrtPriceX96AfterList',\n        internalType: 'uint160[]',\n        type: 'uint160[]',\n      },\n      {\n        name: 'initializedTicksCrossedList',\n        internalType: 'uint32[]',\n        type: 'uint32[]',\n      },\n      { name: 'gasEstimate', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct IQuoterV2.QuoteExactOutputSingleParams',\n        type: 'tuple',\n        components: [\n          { name: 'tokenIn', internalType: 'address', type: 'address' },\n          { name: 'tokenOut', internalType: 'address', type: 'address' },\n          { name: 'amount', internalType: 'uint256', type: 'uint256' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          {\n            name: 'sqrtPriceLimitX96',\n            internalType: 'uint160',\n            type: 'uint160',\n          },\n        ],\n      },\n    ],\n    name: 'quoteExactOutputSingle',\n    outputs: [\n      { name: 'amountIn', internalType: 'uint256', type: 'uint256' },\n      { name: 'sqrtPriceX96After', internalType: 'uint160', type: 'uint160' },\n      {\n        name: 'initializedTicksCrossed',\n        internalType: 'uint32',\n        type: 'uint32',\n      },\n      { name: 'gasEstimate', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n] as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xC5290058841028F1614F3A6F0F5816cAd0df5E27)\n */\nexport const uniswapQuoterV2Address = {\n  8453: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',\n  84532: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',\n} as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xC5290058841028F1614F3A6F0F5816cAd0df5E27)\n */\nexport const uniswapQuoterV2Config = {\n  address: uniswapQuoterV2Address,\n  abi: uniswapQuoterV2ABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// UniswapV3SwapRouter\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x2626664c2603336E57B271c5C0b26F421741e481)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x101F443B4d1b059569D643917553c771E1b9663E)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7De04c96BE5159c3b5CeffC82aa176dc81281557)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x6B36d761981d82B1e07cF3c4daF4cB4615c4850a)\n */\nexport const uniswapV3SwapRouterABI = [\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct ISwapRouter.ExactInputParams',\n        type: 'tuple',\n        components: [\n          { name: 'path', internalType: 'bytes', type: 'bytes' },\n          { name: 'recipient', internalType: 'address', type: 'address' },\n          { name: 'amountIn', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'amountOutMinimum',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n        ],\n      },\n    ],\n    name: 'exactInput',\n    outputs: [{ name: 'amountOut', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct ISwapRouter.ExactInputSingleParams',\n        type: 'tuple',\n        components: [\n          { name: 'tokenIn', internalType: 'address', type: 'address' },\n          { name: 'tokenOut', internalType: 'address', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'recipient', internalType: 'address', type: 'address' },\n          { name: 'amountIn', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'amountOutMinimum',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'sqrtPriceLimitX96',\n            internalType: 'uint160',\n            type: 'uint160',\n          },\n        ],\n      },\n    ],\n    name: 'exactInputSingle',\n    outputs: [{ name: 'amountOut', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct ISwapRouter.ExactOutputParams',\n        type: 'tuple',\n        components: [\n          { name: 'path', internalType: 'bytes', type: 'bytes' },\n          { name: 'recipient', internalType: 'address', type: 'address' },\n          { name: 'amountOut', internalType: 'uint256', type: 'uint256' },\n          { name: 'amountInMaximum', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'exactOutput',\n    outputs: [{ name: 'amountIn', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct ISwapRouter.ExactOutputSingleParams',\n        type: 'tuple',\n        components: [\n          { name: 'tokenIn', internalType: 'address', type: 'address' },\n          { name: 'tokenOut', internalType: 'address', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'recipient', internalType: 'address', type: 'address' },\n          { name: 'amountOut', internalType: 'uint256', type: 'uint256' },\n          { name: 'amountInMaximum', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'sqrtPriceLimitX96',\n            internalType: 'uint160',\n            type: 'uint160',\n          },\n        ],\n      },\n    ],\n    name: 'exactOutputSingle',\n    outputs: [{ name: 'amountIn', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'amount0Delta', internalType: 'int256', type: 'int256' },\n      { name: 'amount1Delta', internalType: 'int256', type: 'int256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'uniswapV3SwapCallback',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x2626664c2603336E57B271c5C0b26F421741e481)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x101F443B4d1b059569D643917553c771E1b9663E)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7De04c96BE5159c3b5CeffC82aa176dc81281557)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x6B36d761981d82B1e07cF3c4daF4cB4615c4850a)\n */\nexport const uniswapV3SwapRouterAddress = {\n  1: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',\n  10: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',\n  8453: '0x2626664c2603336E57B271c5C0b26F421741e481',\n  42161: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',\n  81457: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',\n  84532: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n  421614: '0x101F443B4d1b059569D643917553c771E1b9663E',\n  7777777: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',\n  11155111: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',\n  11155420: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n  999999999: '0x6B36d761981d82B1e07cF3c4daF4cB4615c4850a',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x2626664c2603336E57B271c5C0b26F421741e481)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x101F443B4d1b059569D643917553c771E1b9663E)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7De04c96BE5159c3b5CeffC82aa176dc81281557)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x6B36d761981d82B1e07cF3c4daF4cB4615c4850a)\n */\nexport const uniswapV3SwapRouterConfig = {\n  address: uniswapV3SwapRouterAddress,\n  abi: uniswapV3SwapRouterABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// UniswapV4PoolManager\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x498581ff718922c3f8e6a244956af099b2652b2b)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408)\n */\nexport const uniswapV4PoolManagerABI = [\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'allowance',\n    outputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'approve',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'balanceOf',\n    outputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'burn',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'currency', internalType: 'Currency', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'clear',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'currency', internalType: 'Currency', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'collectProtocolFees',\n    outputs: [\n      { name: 'amountCollected', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'amount0', internalType: 'uint256', type: 'uint256' },\n      { name: 'amount1', internalType: 'uint256', type: 'uint256' },\n      { name: 'hookData', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'donate',\n    outputs: [{ name: '', internalType: 'BalanceDelta', type: 'int256' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'extsload',\n    outputs: [{ name: 'value', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'startSlot', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'nSlots', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'extsload',\n    outputs: [{ name: 'values', internalType: 'bytes32[]', type: 'bytes32[]' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'slots', internalType: 'bytes32[]', type: 'bytes32[]' }],\n    name: 'extsload',\n    outputs: [{ name: 'values', internalType: 'bytes32[]', type: 'bytes32[]' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'slots', internalType: 'bytes32[]', type: 'bytes32[]' }],\n    name: 'exttload',\n    outputs: [{ name: 'values', internalType: 'bytes32[]', type: 'bytes32[]' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'exttload',\n    outputs: [{ name: 'value', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'sqrtPriceX96', internalType: 'uint160', type: 'uint160' },\n    ],\n    name: 'initialize',\n    outputs: [{ name: 'tick', internalType: 'int24', type: 'int24' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'spender', internalType: 'address', type: 'address' },\n    ],\n    name: 'isOperator',\n    outputs: [{ name: 'approved', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'mint',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      {\n        name: 'params',\n        internalType: 'struct ModifyLiquidityParams',\n        type: 'tuple',\n        components: [\n          { name: 'tickLower', internalType: 'int24', type: 'int24' },\n          { name: 'tickUpper', internalType: 'int24', type: 'int24' },\n          { name: 'liquidityDelta', internalType: 'int256', type: 'int256' },\n          { name: 'salt', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n      { name: 'hookData', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'modifyLiquidity',\n    outputs: [\n      { name: 'callerDelta', internalType: 'BalanceDelta', type: 'int256' },\n      { name: 'feesAccrued', internalType: 'BalanceDelta', type: 'int256' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'protocolFeeController',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'currency', internalType: 'Currency', type: 'address' }],\n    name: 'protocolFeesAccrued',\n    outputs: [{ name: 'amount', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'approved', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'setOperator',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'newProtocolFee', internalType: 'uint24', type: 'uint24' },\n    ],\n    name: 'setProtocolFee',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'controller', internalType: 'address', type: 'address' }],\n    name: 'setProtocolFeeController',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'settle',\n    outputs: [{ name: 'paid', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'recipient', internalType: 'address', type: 'address' }],\n    name: 'settleFor',\n    outputs: [{ name: 'paid', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      {\n        name: 'params',\n        internalType: 'struct SwapParams',\n        type: 'tuple',\n        components: [\n          { name: 'zeroForOne', internalType: 'bool', type: 'bool' },\n          { name: 'amountSpecified', internalType: 'int256', type: 'int256' },\n          {\n            name: 'sqrtPriceLimitX96',\n            internalType: 'uint160',\n            type: 'uint160',\n          },\n        ],\n      },\n      { name: 'hookData', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'swap',\n    outputs: [\n      { name: 'swapDelta', internalType: 'BalanceDelta', type: 'int256' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'currency', internalType: 'Currency', type: 'address' }],\n    name: 'sync',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'currency', internalType: 'Currency', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'take',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'receiver', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'transfer',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'receiver', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'transferFrom',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'unlock',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'newDynamicLPFee', internalType: 'uint24', type: 'uint24' },\n    ],\n    name: 'updateDynamicLPFee',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'spender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'id', internalType: 'uint256', type: 'uint256', indexed: true },\n      {\n        name: 'amount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Approval',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'id', internalType: 'PoolId', type: 'bytes32', indexed: true },\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amount0',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'amount1',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Donate',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'id', internalType: 'PoolId', type: 'bytes32', indexed: true },\n      {\n        name: 'currency0',\n        internalType: 'Currency',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'currency1',\n        internalType: 'Currency',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'fee', internalType: 'uint24', type: 'uint24', indexed: false },\n      {\n        name: 'tickSpacing',\n        internalType: 'int24',\n        type: 'int24',\n        indexed: false,\n      },\n      {\n        name: 'hooks',\n        internalType: 'contract IHooks',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'sqrtPriceX96',\n        internalType: 'uint160',\n        type: 'uint160',\n        indexed: false,\n      },\n      { name: 'tick', internalType: 'int24', type: 'int24', indexed: false },\n    ],\n    name: 'Initialize',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'id', internalType: 'PoolId', type: 'bytes32', indexed: true },\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tickLower',\n        internalType: 'int24',\n        type: 'int24',\n        indexed: false,\n      },\n      {\n        name: 'tickUpper',\n        internalType: 'int24',\n        type: 'int24',\n        indexed: false,\n      },\n      {\n        name: 'liquidityDelta',\n        internalType: 'int256',\n        type: 'int256',\n        indexed: false,\n      },\n      {\n        name: 'salt',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n    ],\n    name: 'ModifyLiquidity',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'operator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'approved', internalType: 'bool', type: 'bool', indexed: false },\n    ],\n    name: 'OperatorSet',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'protocolFeeController',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'ProtocolFeeControllerUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'id', internalType: 'PoolId', type: 'bytes32', indexed: true },\n      {\n        name: 'protocolFee',\n        internalType: 'uint24',\n        type: 'uint24',\n        indexed: false,\n      },\n    ],\n    name: 'ProtocolFeeUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'id', internalType: 'PoolId', type: 'bytes32', indexed: true },\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'amount0',\n        internalType: 'int128',\n        type: 'int128',\n        indexed: false,\n      },\n      {\n        name: 'amount1',\n        internalType: 'int128',\n        type: 'int128',\n        indexed: false,\n      },\n      {\n        name: 'sqrtPriceX96',\n        internalType: 'uint160',\n        type: 'uint160',\n        indexed: false,\n      },\n      {\n        name: 'liquidity',\n        internalType: 'uint128',\n        type: 'uint128',\n        indexed: false,\n      },\n      { name: 'tick', internalType: 'int24', type: 'int24', indexed: false },\n      { name: 'fee', internalType: 'uint24', type: 'uint24', indexed: false },\n    ],\n    name: 'Swap',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      { name: 'id', internalType: 'uint256', type: 'uint256', indexed: true },\n      {\n        name: 'amount',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Transfer',\n  },\n  { type: 'error', inputs: [], name: 'AlreadyUnlocked' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'currency0', internalType: 'address', type: 'address' },\n      { name: 'currency1', internalType: 'address', type: 'address' },\n    ],\n    name: 'CurrenciesOutOfOrderOrEqual',\n  },\n  { type: 'error', inputs: [], name: 'CurrencyNotSettled' },\n  { type: 'error', inputs: [], name: 'InvalidCaller' },\n  { type: 'error', inputs: [], name: 'ManagerLocked' },\n  { type: 'error', inputs: [], name: 'MustClearExactPositiveDelta' },\n  { type: 'error', inputs: [], name: 'NonzeroNativeValue' },\n  { type: 'error', inputs: [], name: 'PoolNotInitialized' },\n  { type: 'error', inputs: [], name: 'ProtocolFeeCurrencySynced' },\n  {\n    type: 'error',\n    inputs: [{ name: 'fee', internalType: 'uint24', type: 'uint24' }],\n    name: 'ProtocolFeeTooLarge',\n  },\n  { type: 'error', inputs: [], name: 'SwapAmountCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],\n    name: 'TickSpacingTooLarge',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],\n    name: 'TickSpacingTooSmall',\n  },\n  { type: 'error', inputs: [], name: 'UnauthorizedDynamicLPFeeUpdate' },\n] as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x498581ff718922c3f8e6a244956af099b2652b2b)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408)\n */\nexport const uniswapV4PoolManagerAddress = {\n  8453: '0x498581fF718922c3f8e6A244956aF099B2652b2b',\n  84532: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',\n} as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x498581ff718922c3f8e6a244956af099b2652b2b)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408)\n */\nexport const uniswapV4PoolManagerConfig = {\n  address: uniswapV4PoolManagerAddress,\n  abi: uniswapV4PoolManagerABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// UniversalRouter\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x6ff5693b99212da76ad316178a184ab56d299b43)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x492E6456D9528771018DeB9E87ef7750EF184104)\n */\nexport const universalRouterABI = [\n  {\n    type: 'function',\n    inputs: [\n      { name: 'commands', internalType: 'bytes', type: 'bytes' },\n      { name: 'inputs', internalType: 'bytes[]', type: 'bytes[]' },\n      { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'execute',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  { type: 'error', inputs: [], name: 'ETHNotAccepted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'commandIndex', internalType: 'uint256', type: 'uint256' },\n      { name: 'message', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'ExecutionFailed',\n  },\n  { type: 'error', inputs: [], name: 'InvalidEthSender' },\n  { type: 'error', inputs: [], name: 'LengthMismatch' },\n  { type: 'error', inputs: [], name: 'TransactionDeadlinePassed' },\n] as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x6ff5693b99212da76ad316178a184ab56d299b43)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x492E6456D9528771018DeB9E87ef7750EF184104)\n */\nexport const universalRouterAddress = {\n  8453: '0x6fF5693b99212Da76ad316178A184AB56D299b43',\n  84532: '0x492E6456D9528771018DeB9E87ef7750EF184104',\n} as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x6ff5693b99212da76ad316178a184ab56d299b43)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x492E6456D9528771018DeB9E87ef7750EF184104)\n */\nexport const universalRouterConfig = {\n  address: universalRouterAddress,\n  abi: universalRouterABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// UpgradeGate\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n */\nexport const upgradeGateABI = [\n  { type: 'constructor', inputs: [], stateMutability: 'nonpayable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'cancelOwnershipTransfer',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '_initialOwner', internalType: 'address', type: 'address' },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'address', type: 'address' },\n    ],\n    name: 'isAllowedUpgrade',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'baseImpl', internalType: 'address', type: 'address' },\n      { name: 'upgradeImpl', internalType: 'address', type: 'address' },\n    ],\n    name: 'isRegisteredUpgradePath',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'baseImpls', internalType: 'address[]', type: 'address[]' },\n      { name: 'upgradeImpl', internalType: 'address', type: 'address' },\n    ],\n    name: 'registerUpgradePath',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'baseImpl', internalType: 'address', type: 'address' },\n      { name: 'upgradeImpl', internalType: 'address', type: 'address' },\n    ],\n    name: 'removeUpgradePath',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'resignOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '_newOwner', internalType: 'address', type: 'address' }],\n    name: 'safeTransferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '_newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'canceledOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerCanceled',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'pendingOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerPending',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'prevOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerUpdated',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'UpgradeGateSetup' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'baseImpl',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'upgradeImpl',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'UpgradeRegistered',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'baseImpl',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'upgradeImpl',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'UpgradeRemoved',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING',\n  },\n  { type: 'error', inputs: [], name: 'ONLY_OWNER' },\n  { type: 'error', inputs: [], name: 'ONLY_PENDING_OWNER' },\n  { type: 'error', inputs: [], name: 'OWNER_CANNOT_BE_ZERO_ADDRESS' },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n */\nexport const upgradeGateAddress = {\n  1: '0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900',\n  10: '0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900',\n  8453: '0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900',\n  42161: '0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900',\n  81457: '0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900',\n  84532: '0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900',\n  421614: '0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900',\n  7777777: '0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900',\n  11155111: '0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900',\n  168587773: '0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900)\n */\nexport const upgradeGateConfig = {\n  address: upgradeGateAddress,\n  abi: upgradeGateABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// WETH\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x82af49447d8a07e3bd95bd0d56f35241523fbab1)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x4300000000000000000000000000000000000004)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0xc556bae1e86b2ae9c22ea5e036b07e55e7596074)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x4200000000000000000000000000000000000006)\n */\nexport const wethABI = [\n  {\n    type: 'function',\n    inputs: [\n      { name: 'guy', internalType: 'address', type: 'address' },\n      { name: 'wad', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'approve',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'guy', internalType: 'address', type: 'address' }],\n    name: 'balanceOf',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'deposit',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'dst', internalType: 'address', type: 'address' },\n      { name: 'wad', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'transfer',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'src', internalType: 'address', type: 'address' },\n      { name: 'dst', internalType: 'address', type: 'address' },\n      { name: 'wad', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'transferFrom',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'wad', internalType: 'uint256', type: 'uint256' }],\n    name: 'withdraw',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x82af49447d8a07e3bd95bd0d56f35241523fbab1)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x4300000000000000000000000000000000000004)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0xc556bae1e86b2ae9c22ea5e036b07e55e7596074)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x4200000000000000000000000000000000000006)\n */\nexport const wethAddress = {\n  1: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n  10: '0x4200000000000000000000000000000000000006',\n  8453: '0x4200000000000000000000000000000000000006',\n  42161: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',\n  81457: '0x4300000000000000000000000000000000000004',\n  84532: '0x4200000000000000000000000000000000000006',\n  421614: '0xc556bAe1e86B2aE9c22eA5E036b07E55E7596074',\n  7777777: '0x4200000000000000000000000000000000000006',\n  11155111: '0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9',\n  11155420: '0x4200000000000000000000000000000000000006',\n  999999999: '0x4200000000000000000000000000000000000006',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x82af49447d8a07e3bd95bd0d56f35241523fbab1)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x4300000000000000000000000000000000000004)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0xc556bae1e86b2ae9c22ea5e036b07e55e7596074)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9)\n * - [__View Contract on Op Sepolia Blockscout__](https://optimism-sepolia.blockscout.com/address/0x4200000000000000000000000000000000000006)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x4200000000000000000000000000000000000006)\n */\nexport const wethConfig = { address: wethAddress, abi: wethABI } as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraAccountManager\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x0Ba958A449701907302e28F5955fa9d16dDC45c3)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777f7bA9ce74A5d7f058B30Ac824d940fB52)\n */\nexport const zoraAccountManagerABI = [\n  { type: 'constructor', inputs: [], stateMutability: 'nonpayable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'UPGRADE_INTERFACE_VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'encodedOwners', internalType: 'bytes[]', type: 'bytes[]' },\n      { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'createSmartWallet',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'entryPoint',\n    outputs: [\n      { name: '', internalType: 'contract IEntryPoint', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'encodedOwners', internalType: 'bytes[]', type: 'bytes[]' },\n      { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'getAddress',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'smartWallet', internalType: 'address', type: 'address' },\n      { name: 'key', internalType: 'uint192', type: 'uint192' },\n    ],\n    name: 'getKeyNonce',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'smartWallet', internalType: 'address', type: 'address' }],\n    name: 'getNonce',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'initialOwner', internalType: 'address', type: 'address' },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'smartWalletFactory',\n    outputs: [\n      {\n        name: '',\n        internalType: 'contract ICoinbaseSmartWalletFactory',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'smartWallet',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'baseOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'owners',\n        internalType: 'address[]',\n        type: 'address[]',\n        indexed: false,\n      },\n      {\n        name: 'nonce',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'ZoraSmartWalletCreated',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n] as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x0Ba958A449701907302e28F5955fa9d16dDC45c3)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777f7bA9ce74A5d7f058B30Ac824d940fB52)\n */\nexport const zoraAccountManagerAddress = {\n  8453: '0x0Ba958A449701907302e28F5955fa9d16dDC45c3',\n  7777777: '0x7777777f7bA9ce74A5d7f058B30Ac824d940fB52',\n} as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x0Ba958A449701907302e28F5955fa9d16dDC45c3)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777f7bA9ce74A5d7f058B30Ac824d940fB52)\n */\nexport const zoraAccountManagerConfig = {\n  address: zoraAccountManagerAddress,\n  abi: zoraAccountManagerABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraCreator1155FactoryImpl\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n */\nexport const zoraCreator1155FactoryImplABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: '_zora1155Impl',\n        internalType: 'contract IZoraCreator1155',\n        type: 'address',\n      },\n      {\n        name: '_merkleMinter',\n        internalType: 'contract IMinter1155',\n        type: 'address',\n      },\n      {\n        name: '_fixedPriceMinter',\n        internalType: 'contract IMinter1155',\n        type: 'address',\n      },\n      {\n        name: '_redeemMinterFactory',\n        internalType: 'contract IMinter1155',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'cancelOwnershipTransfer',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      {\n        name: 'defaultRoyaltyConfiguration',\n        internalType: 'struct ICreatorRoyaltiesControl.RoyaltyConfiguration',\n        type: 'tuple',\n        components: [\n          {\n            name: 'royaltyMintSchedule',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'royaltyRecipient',\n            internalType: 'address',\n            type: 'address',\n          },\n        ],\n      },\n      {\n        name: 'defaultAdmin',\n        internalType: 'address payable',\n        type: 'address',\n      },\n      { name: 'setupActions', internalType: 'bytes[]', type: 'bytes[]' },\n    ],\n    name: 'createContract',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      {\n        name: 'defaultRoyaltyConfiguration',\n        internalType: 'struct ICreatorRoyaltiesControl.RoyaltyConfiguration',\n        type: 'tuple',\n        components: [\n          {\n            name: 'royaltyMintSchedule',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'royaltyRecipient',\n            internalType: 'address',\n            type: 'address',\n          },\n        ],\n      },\n      {\n        name: 'defaultAdmin',\n        internalType: 'address payable',\n        type: 'address',\n      },\n      { name: 'setupActions', internalType: 'bytes[]', type: 'bytes[]' },\n    ],\n    name: 'createContractDeterministic',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'defaultMinters',\n    outputs: [\n      {\n        name: 'minters',\n        internalType: 'contract IMinter1155[]',\n        type: 'address[]',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'msgSender', internalType: 'address', type: 'address' },\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'contractAdmin', internalType: 'address', type: 'address' },\n    ],\n    name: 'deterministicContractAddress',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'msgSender', internalType: 'address', type: 'address' },\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'contractAdmin', internalType: 'address', type: 'address' },\n      { name: 'setupActions', internalType: 'bytes[]', type: 'bytes[]' },\n    ],\n    name: 'deterministicContractAddressWithSetupActions',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'fixedPriceMinter',\n    outputs: [\n      { name: '', internalType: 'contract IMinter1155', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'expectedContractAddress',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      {\n        name: 'defaultRoyaltyConfiguration',\n        internalType: 'struct ICreatorRoyaltiesControl.RoyaltyConfiguration',\n        type: 'tuple',\n        components: [\n          {\n            name: 'royaltyMintSchedule',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'royaltyRecipient',\n            internalType: 'address',\n            type: 'address',\n          },\n        ],\n      },\n      {\n        name: 'defaultAdmin',\n        internalType: 'address payable',\n        type: 'address',\n      },\n      { name: 'setupActions', internalType: 'bytes[]', type: 'bytes[]' },\n    ],\n    name: 'getOrCreateContractDeterministic',\n    outputs: [\n      {\n        name: 'calculatedContractAddress',\n        internalType: 'address',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '_initialOwner', internalType: 'address', type: 'address' },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'merkleMinter',\n    outputs: [\n      { name: '', internalType: 'contract IMinter1155', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'redeemMinterFactory',\n    outputs: [\n      { name: '', internalType: 'contract IMinter1155', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'resignOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '_newOwner', internalType: 'address', type: 'address' }],\n    name: 'safeTransferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '_newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'upgradeTo',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zora1155Impl',\n    outputs: [\n      { name: '', internalType: 'contract IZoraCreator1155', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousAdmin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'newAdmin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'AdminChanged',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'beacon',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'BeaconUpgraded',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'calculatedContractAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'ContractAlreadyExistsSkippingDeploy',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'FactorySetup' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'canceledOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerCanceled',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'pendingOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerPending',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'prevOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'newContract',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'creator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'defaultAdmin',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'contractURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      { name: 'name', internalType: 'string', type: 'string', indexed: false },\n      {\n        name: 'defaultRoyaltyConfiguration',\n        internalType: 'struct ICreatorRoyaltiesControl.RoyaltyConfiguration',\n        type: 'tuple',\n        components: [\n          {\n            name: 'royaltyMintSchedule',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'royaltyRecipient',\n            internalType: 'address',\n            type: 'address',\n          },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'SetupNewContract',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  { type: 'error', inputs: [], name: 'ADDRESS_DELEGATECALL_TO_NON_CONTRACT' },\n  { type: 'error', inputs: [], name: 'ADDRESS_LOW_LEVEL_CALL_FAILED' },\n  { type: 'error', inputs: [], name: 'Constructor_ImplCannotBeZero' },\n  { type: 'error', inputs: [], name: 'ERC1967_NEW_IMPL_NOT_CONTRACT' },\n  { type: 'error', inputs: [], name: 'ERC1967_NEW_IMPL_NOT_UUPS' },\n  { type: 'error', inputs: [], name: 'ERC1967_UNSUPPORTED_PROXIABLEUUID' },\n  {\n    type: 'error',\n    inputs: [\n      {\n        name: 'expectedContractAddress',\n        internalType: 'address',\n        type: 'address',\n      },\n      {\n        name: 'calculcatedContractAddress',\n        internalType: 'address',\n        type: 'address',\n      },\n    ],\n    name: 'ExpectedContractAddressDoesNotMatchCalculatedContractAddress',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'FUNCTION_MUST_BE_CALLED_THROUGH_ACTIVE_PROXY',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'FUNCTION_MUST_BE_CALLED_THROUGH_DELEGATECALL',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING',\n  },\n  { type: 'error', inputs: [], name: 'ONLY_OWNER' },\n  { type: 'error', inputs: [], name: 'ONLY_PENDING_OWNER' },\n  { type: 'error', inputs: [], name: 'OWNER_CANNOT_BE_ZERO_ADDRESS' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'UUPS_UPGRADEABLE_MUST_NOT_BE_CALLED_THROUGH_DELEGATECALL',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'string', type: 'string' },\n      { name: 'actual', internalType: 'string', type: 'string' },\n    ],\n    name: 'UpgradeToMismatchedContractName',\n  },\n  { type: 'error', inputs: [], name: 'ADDRESS_DELEGATECALL_TO_NON_CONTRACT' },\n  { type: 'error', inputs: [], name: 'ADDRESS_LOW_LEVEL_CALL_FAILED' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'user', internalType: 'address', type: 'address' },\n    ],\n    name: 'Burn_NotOwnerOrApproved',\n  },\n  { type: 'error', inputs: [], name: 'CREATOR_FUNDS_RECIPIENT_NOT_SET' },\n  {\n    type: 'error',\n    inputs: [{ name: 'reason', internalType: 'bytes', type: 'bytes' }],\n    name: 'CallFailed',\n  },\n  { type: 'error', inputs: [], name: 'Call_TokenIdMismatch' },\n  { type: 'error', inputs: [], name: 'CallerNotZoraCreator1155' },\n  { type: 'error', inputs: [], name: 'CanOnlyReduceMaxSupply' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'totalMinted', internalType: 'uint256', type: 'uint256' },\n      { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'CannotMintMoreTokens',\n  },\n  { type: 'error', inputs: [], name: 'CannotReduceMaxSupplyBelowMinted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'proposedAddress', internalType: 'address', type: 'address' },\n    ],\n    name: 'Config_TransferHookNotSupported',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_ACCOUNTS_AND_IDS_LENGTH_MISMATCH',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_ADDRESS_ZERO_IS_NOT_A_VALID_OWNER',\n  },\n  { type: 'error', inputs: [], name: 'ERC1155_BURN_AMOUNT_EXCEEDS_BALANCE' },\n  { type: 'error', inputs: [], name: 'ERC1155_BURN_FROM_ZERO_ADDRESS' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_CALLER_IS_NOT_TOKEN_OWNER_OR_APPROVED',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_ERC1155RECEIVER_REJECTED_TOKENS',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_IDS_AND_AMOUNTS_LENGTH_MISMATCH',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_INSUFFICIENT_BALANCE_FOR_TRANSFER',\n  },\n  { type: 'error', inputs: [], name: 'ERC1155_MINT_TO_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'ERC1155_MINT_TO_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'ERC1155_SETTING_APPROVAL_FOR_SELF' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_TRANSFER_TO_NON_ERC1155RECEIVER_IMPLEMENTER',\n  },\n  { type: 'error', inputs: [], name: 'ERC1155_TRANSFER_TO_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'ERC1967_NEW_IMPL_NOT_CONTRACT' },\n  { type: 'error', inputs: [], name: 'ERC1967_NEW_IMPL_NOT_UUPS' },\n  { type: 'error', inputs: [], name: 'ERC1967_UNSUPPORTED_PROXIABLEUUID' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ETHWithdrawFailed',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'FUNCTION_MUST_BE_CALLED_THROUGH_ACTIVE_PROXY',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'FUNCTION_MUST_BE_CALLED_THROUGH_DELEGATECALL',\n  },\n  { type: 'error', inputs: [], name: 'FirstMinterAddressZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n      { name: 'contractValue', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'FundsWithdrawInsolvent',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING',\n  },\n  { type: 'error', inputs: [], name: 'INVALID_ADDRESS_ZERO' },\n  { type: 'error', inputs: [], name: 'INVALID_ETH_AMOUNT' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'mintTo', internalType: 'address', type: 'address' },\n      { name: 'merkleProof', internalType: 'bytes32[]', type: 'bytes32[]' },\n      { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'InvalidMerkleProof',\n  },\n  { type: 'error', inputs: [], name: 'InvalidMintSchedule' },\n  { type: 'error', inputs: [], name: 'InvalidMintSchedule' },\n  { type: 'error', inputs: [], name: 'InvalidPremintVersion' },\n  { type: 'error', inputs: [], name: 'InvalidSignature' },\n  { type: 'error', inputs: [], name: 'InvalidSignatureVersion' },\n  {\n    type: 'error',\n    inputs: [{ name: 'magicValue', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'MintNotYetStarted' },\n  { type: 'error', inputs: [], name: 'Mint_InsolventSaleTransfer' },\n  { type: 'error', inputs: [], name: 'Mint_InvalidMintArrayLength' },\n  { type: 'error', inputs: [], name: 'Mint_TokenIDMintNotAllowed' },\n  { type: 'error', inputs: [], name: 'Mint_UnknownCommand' },\n  { type: 'error', inputs: [], name: 'Mint_ValueTransferFail' },\n  { type: 'error', inputs: [], name: 'MinterContractAlreadyExists' },\n  { type: 'error', inputs: [], name: 'MinterContractDoesNotExist' },\n  { type: 'error', inputs: [], name: 'NewOwnerNeedsToBeAdmin' },\n  {\n    type: 'error',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'NoRendererForToken',\n  },\n  { type: 'error', inputs: [], name: 'NonEthRedemption' },\n  { type: 'error', inputs: [], name: 'ONLY_CREATE_REFERRAL' },\n  { type: 'error', inputs: [], name: 'OnlyAllowedForRegisteredMinter' },\n  { type: 'error', inputs: [], name: 'OnlyAllowedForTimedSaleStrategy' },\n  { type: 'error', inputs: [], name: 'OnlyTransfersFromZoraMints' },\n  { type: 'error', inputs: [], name: 'PremintDeleted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ProtocolRewardsWithdrawFailed',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'renderer', internalType: 'address', type: 'address' }],\n    name: 'RendererNotValid',\n  },\n  { type: 'error', inputs: [], name: 'Renderer_NotValidRendererContract' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'targetContract', internalType: 'address', type: 'address' },\n    ],\n    name: 'Sale_CannotCallNonSalesContract',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'uint256', type: 'uint256' },\n      { name: 'actual', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'TokenIdMismatch',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'UUPS_UPGRADEABLE_MUST_NOT_BE_CALLED_THROUGH_DELEGATECALL',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n      { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserExceedsMintLimit',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'role', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserMissingRoleForToken',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'premintSignerContractFailedToRecoverSigner',\n  },\n  { type: 'error', inputs: [], name: 'premintSignerContractNotAContract' },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ERC1167FailedCreateClone' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  { type: 'error', inputs: [], name: 'EndTimeCannotBeInThePast' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyLaunched' },\n  { type: 'error', inputs: [], name: 'MarketMinimumNotReached' },\n  { type: 'error', inputs: [], name: 'MinimumMarketEthNotMet' },\n  { type: 'error', inputs: [], name: 'NeedsToBeAtLeastOneSaleToStartMarket' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'OnlyZoraRewardRecipient' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },\n  { type: 'error', inputs: [], name: 'RequestMintInvalidUseMint' },\n  { type: 'error', inputs: [], name: 'ResetSaleNotAvailable' },\n  { type: 'error', inputs: [], name: 'SaleAlreadySet' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  { type: 'error', inputs: [], name: 'SaleInProgress' },\n  { type: 'error', inputs: [], name: 'SaleNotSet' },\n  { type: 'error', inputs: [], name: 'SaleV2AlreadyStarted' },\n  { type: 'error', inputs: [], name: 'SaleV2Ended' },\n  { type: 'error', inputs: [], name: 'SaleV2NotSet' },\n  { type: 'error', inputs: [], name: 'StartTimeCannotBeAfterEndTime' },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ZoraCreator1155ContractNeedsToSupportReduceSupply',\n  },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n */\nexport const zoraCreator1155FactoryImplAddress = {\n  1: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n  10: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n  999: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n  8453: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n  42161: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n  81457: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n  84532: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n  421614: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n  7777777: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n  11155111: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n  168587773: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n  999999999: '0x777777C338d93e2C7adf08D102d45CA7CC4Ed021',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x777777C338d93e2C7adf08D102d45CA7CC4Ed021)\n */\nexport const zoraCreator1155FactoryImplConfig = {\n  address: zoraCreator1155FactoryImplAddress,\n  abi: zoraCreator1155FactoryImplABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraCreator1155Impl\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nexport const zoraCreator1155ImplABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      { name: '_mintFeeRecipient', internalType: 'address', type: 'address' },\n      { name: '_upgradeGate', internalType: 'address', type: 'address' },\n      { name: '_protocolRewards', internalType: 'address', type: 'address' },\n      { name: '_timedSaleStrategy', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  { type: 'receive', stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'CONTRACT_BASE_ID',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'PERMISSION_BIT_ADMIN',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'PERMISSION_BIT_FUNDS_MANAGER',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'PERMISSION_BIT_METADATA',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'PERMISSION_BIT_MINTER',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'PERMISSION_BIT_SALES',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'permissionBits', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'addPermission',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'adminMint',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'lastTokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'assumeLastTokenIdMatches',\n    outputs: [],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'balanceOf',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'accounts', internalType: 'address[]', type: 'address[]' },\n      { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    name: 'balanceOfBatch',\n    outputs: [\n      { name: 'batchBalances', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    name: 'burnBatch',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'callRenderer',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'salesConfig',\n        internalType: 'contract IMinter1155',\n        type: 'address',\n      },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'callSale',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'mintPrice', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'computeTotalReward',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'config',\n    outputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: '__gap1', internalType: 'uint96', type: 'uint96' },\n      {\n        name: 'fundsRecipient',\n        internalType: 'address payable',\n        type: 'address',\n      },\n      { name: '__gap2', internalType: 'uint96', type: 'uint96' },\n      {\n        name: 'transferHook',\n        internalType: 'contract ITransferHookReceiver',\n        type: 'address',\n      },\n      { name: '__gap3', internalType: 'uint96', type: 'uint96' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    name: 'createReferrals',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    name: 'customRenderers',\n    outputs: [\n      { name: '', internalType: 'contract IRenderer1155', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'premintConfig', internalType: 'bytes', type: 'bytes' },\n      { name: 'premintVersion', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n      { name: 'firstMinter', internalType: 'address', type: 'address' },\n      {\n        name: 'premintSignerContract',\n        internalType: 'address',\n        type: 'address',\n      },\n    ],\n    name: 'delegateSetupNewToken',\n    outputs: [{ name: 'newTokenId', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '', internalType: 'uint32', type: 'uint32' }],\n    name: 'delegatedTokenId',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    name: 'firstMinters',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'getCreatorRewardRecipient',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'getCustomRenderer',\n    outputs: [\n      {\n        name: 'customRenderer',\n        internalType: 'contract IRenderer1155',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'getRoyalties',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct ICreatorRoyaltiesControl.RoyaltyConfiguration',\n        type: 'tuple',\n        components: [\n          {\n            name: 'royaltyMintSchedule',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'royaltyRecipient',\n            internalType: 'address',\n            type: 'address',\n          },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'getTokenInfo',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IZoraCreator1155TypesV1.TokenData',\n        type: 'tuple',\n        components: [\n          { name: 'uri', internalType: 'string', type: 'string' },\n          { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n          { name: 'totalMinted', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'contractName', internalType: 'string', type: 'string' },\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n      {\n        name: 'defaultRoyaltyConfiguration',\n        internalType: 'struct ICreatorRoyaltiesControl.RoyaltyConfiguration',\n        type: 'tuple',\n        components: [\n          {\n            name: 'royaltyMintSchedule',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'royaltyRecipient',\n            internalType: 'address',\n            type: 'address',\n          },\n        ],\n      },\n      {\n        name: 'defaultAdmin',\n        internalType: 'address payable',\n        type: 'address',\n      },\n      { name: 'setupActions', internalType: 'bytes[]', type: 'bytes[]' },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'role', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'isAdminOrRole',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'operator', internalType: 'address', type: 'address' },\n    ],\n    name: 'isApprovedForAll',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    name: 'metadataRendererContract',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'minter', internalType: 'contract IMinter1155', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'rewardsRecipients',\n        internalType: 'address[]',\n        type: 'address[]',\n      },\n      { name: 'minterArguments', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'mint',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'mintFee',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],\n    name: 'multicall',\n    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'name',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'nextTokenId',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'uint256', type: 'uint256' },\n      { name: '', internalType: 'address', type: 'address' },\n    ],\n    name: 'permissions',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'newMaxSupply', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'reduceSupply',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'permissionBits', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'removePermission',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    name: 'royalties',\n    outputs: [\n      { name: 'royaltyMintSchedule', internalType: 'uint32', type: 'uint32' },\n      { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n      { name: 'royaltyRecipient', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'salePrice', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'royaltyInfo',\n    outputs: [\n      { name: 'receiver', internalType: 'address', type: 'address' },\n      { name: 'royaltyAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'safeBatchTransferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'safeTransferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'approved', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'setApprovalForAll',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'fundsRecipient',\n        internalType: 'address payable',\n        type: 'address',\n      },\n    ],\n    name: 'setFundsRecipient',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'setOwner',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'renderer',\n        internalType: 'contract IRenderer1155',\n        type: 'address',\n      },\n    ],\n    name: 'setTokenMetadataRenderer',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'transferHook',\n        internalType: 'contract ITransferHookReceiver',\n        type: 'address',\n      },\n    ],\n    name: 'setTransferHook',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newURI', internalType: 'string', type: 'string' },\n      { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'setupNewToken',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newURI', internalType: 'string', type: 'string' },\n      { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n      { name: 'createReferral', internalType: 'address', type: 'address' },\n    ],\n    name: 'setupNewTokenWithCreateReferral',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'supportedPremintSignatureVersions',\n    outputs: [{ name: '', internalType: 'string[]', type: 'string[]' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'symbol',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '_newURI', internalType: 'string', type: 'string' },\n      { name: '_newName', internalType: 'string', type: 'string' },\n    ],\n    name: 'updateContractMetadata',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'updateCreateReferral',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'newConfiguration',\n        internalType: 'struct ICreatorRoyaltiesControl.RoyaltyConfiguration',\n        type: 'tuple',\n        components: [\n          {\n            name: 'royaltyMintSchedule',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'royaltyRecipient',\n            internalType: 'address',\n            type: 'address',\n          },\n        ],\n      },\n    ],\n    name: 'updateRoyaltiesForToken',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: '_newURI', internalType: 'string', type: 'string' },\n    ],\n    name: 'updateTokenURI',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'upgradeTo',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'uri',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'withdraw',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousAdmin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'newAdmin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'AdminChanged',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'account',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'operator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'approved', internalType: 'bool', type: 'bool', indexed: false },\n    ],\n    name: 'ApprovalForAll',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'beacon',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'BeaconUpgraded',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'updater',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'updateType',\n        internalType: 'enum IZoraCreator1155.ConfigUpdate',\n        type: 'uint8',\n        indexed: true,\n      },\n      {\n        name: 'newConfig',\n        internalType: 'struct IZoraCreator1155TypesV1.ContractConfig',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: '__gap1', internalType: 'uint96', type: 'uint96' },\n          {\n            name: 'fundsRecipient',\n            internalType: 'address payable',\n            type: 'address',\n          },\n          { name: '__gap2', internalType: 'uint96', type: 'uint96' },\n          {\n            name: 'transferHook',\n            internalType: 'contract ITransferHookReceiver',\n            type: 'address',\n          },\n          { name: '__gap3', internalType: 'uint96', type: 'uint96' },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'ConfigUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'updater',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'uri', internalType: 'string', type: 'string', indexed: false },\n      { name: 'name', internalType: 'string', type: 'string', indexed: false },\n    ],\n    name: 'ContractMetadataUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'renderer',\n        internalType: 'contract IRenderer1155',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'ContractRendererUpdated',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'ContractURIUpdated' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'structHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'domainName',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'version',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'creator',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'signature',\n        internalType: 'bytes',\n        type: 'bytes',\n        indexed: false,\n      },\n    ],\n    name: 'CreatorAttribution',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'lastOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'minter',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'quantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'value',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Purchased',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'renderer',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'user', internalType: 'address', type: 'address', indexed: true },\n    ],\n    name: 'RendererUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'maxSupply',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'SetupNewToken',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'operator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'ids',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n      {\n        name: 'values',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n    ],\n    name: 'TransferBatch',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'operator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false },\n      {\n        name: 'value',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'TransferSingle',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'value', internalType: 'string', type: 'string', indexed: false },\n      { name: 'id', internalType: 'uint256', type: 'uint256', indexed: true },\n    ],\n    name: 'URI',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      { name: 'user', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'permissions',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n    ],\n    name: 'UpdatedPermissions',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      { name: 'user', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'configuration',\n        internalType: 'struct ICreatorRoyaltiesControl.RoyaltyConfiguration',\n        type: 'tuple',\n        components: [\n          {\n            name: 'royaltyMintSchedule',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'royaltyRecipient',\n            internalType: 'address',\n            type: 'address',\n          },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'UpdatedRoyalties',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'tokenData',\n        internalType: 'struct IZoraCreator1155TypesV1.TokenData',\n        type: 'tuple',\n        components: [\n          { name: 'uri', internalType: 'string', type: 'string' },\n          { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n          { name: 'totalMinted', internalType: 'uint256', type: 'uint256' },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'UpdatedToken',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  { type: 'error', inputs: [], name: 'ADDRESS_DELEGATECALL_TO_NON_CONTRACT' },\n  { type: 'error', inputs: [], name: 'ADDRESS_LOW_LEVEL_CALL_FAILED' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'user', internalType: 'address', type: 'address' },\n    ],\n    name: 'Burn_NotOwnerOrApproved',\n  },\n  { type: 'error', inputs: [], name: 'CREATOR_FUNDS_RECIPIENT_NOT_SET' },\n  {\n    type: 'error',\n    inputs: [{ name: 'reason', internalType: 'bytes', type: 'bytes' }],\n    name: 'CallFailed',\n  },\n  { type: 'error', inputs: [], name: 'Call_TokenIdMismatch' },\n  { type: 'error', inputs: [], name: 'CallerNotZoraCreator1155' },\n  { type: 'error', inputs: [], name: 'CanOnlyReduceMaxSupply' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'totalMinted', internalType: 'uint256', type: 'uint256' },\n      { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'CannotMintMoreTokens',\n  },\n  { type: 'error', inputs: [], name: 'CannotReduceMaxSupplyBelowMinted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'proposedAddress', internalType: 'address', type: 'address' },\n    ],\n    name: 'Config_TransferHookNotSupported',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_ACCOUNTS_AND_IDS_LENGTH_MISMATCH',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_ADDRESS_ZERO_IS_NOT_A_VALID_OWNER',\n  },\n  { type: 'error', inputs: [], name: 'ERC1155_BURN_AMOUNT_EXCEEDS_BALANCE' },\n  { type: 'error', inputs: [], name: 'ERC1155_BURN_FROM_ZERO_ADDRESS' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_CALLER_IS_NOT_TOKEN_OWNER_OR_APPROVED',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_ERC1155RECEIVER_REJECTED_TOKENS',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_IDS_AND_AMOUNTS_LENGTH_MISMATCH',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_INSUFFICIENT_BALANCE_FOR_TRANSFER',\n  },\n  { type: 'error', inputs: [], name: 'ERC1155_MINT_TO_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'ERC1155_MINT_TO_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'ERC1155_SETTING_APPROVAL_FOR_SELF' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ERC1155_TRANSFER_TO_NON_ERC1155RECEIVER_IMPLEMENTER',\n  },\n  { type: 'error', inputs: [], name: 'ERC1155_TRANSFER_TO_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'ERC1967_NEW_IMPL_NOT_CONTRACT' },\n  { type: 'error', inputs: [], name: 'ERC1967_NEW_IMPL_NOT_UUPS' },\n  { type: 'error', inputs: [], name: 'ERC1967_UNSUPPORTED_PROXIABLEUUID' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ETHWithdrawFailed',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'FUNCTION_MUST_BE_CALLED_THROUGH_ACTIVE_PROXY',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'FUNCTION_MUST_BE_CALLED_THROUGH_DELEGATECALL',\n  },\n  { type: 'error', inputs: [], name: 'FirstMinterAddressZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n      { name: 'contractValue', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'FundsWithdrawInsolvent',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING',\n  },\n  { type: 'error', inputs: [], name: 'INVALID_ADDRESS_ZERO' },\n  { type: 'error', inputs: [], name: 'INVALID_ETH_AMOUNT' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'mintTo', internalType: 'address', type: 'address' },\n      { name: 'merkleProof', internalType: 'bytes32[]', type: 'bytes32[]' },\n      { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'InvalidMerkleProof',\n  },\n  { type: 'error', inputs: [], name: 'InvalidMintSchedule' },\n  { type: 'error', inputs: [], name: 'InvalidMintSchedule' },\n  { type: 'error', inputs: [], name: 'InvalidPremintVersion' },\n  { type: 'error', inputs: [], name: 'InvalidSignature' },\n  { type: 'error', inputs: [], name: 'InvalidSignatureVersion' },\n  {\n    type: 'error',\n    inputs: [{ name: 'magicValue', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'MintNotYetStarted' },\n  { type: 'error', inputs: [], name: 'Mint_InsolventSaleTransfer' },\n  { type: 'error', inputs: [], name: 'Mint_InvalidMintArrayLength' },\n  { type: 'error', inputs: [], name: 'Mint_TokenIDMintNotAllowed' },\n  { type: 'error', inputs: [], name: 'Mint_UnknownCommand' },\n  { type: 'error', inputs: [], name: 'Mint_ValueTransferFail' },\n  { type: 'error', inputs: [], name: 'MinterContractAlreadyExists' },\n  { type: 'error', inputs: [], name: 'MinterContractDoesNotExist' },\n  { type: 'error', inputs: [], name: 'NewOwnerNeedsToBeAdmin' },\n  {\n    type: 'error',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'NoRendererForToken',\n  },\n  { type: 'error', inputs: [], name: 'NonEthRedemption' },\n  { type: 'error', inputs: [], name: 'ONLY_CREATE_REFERRAL' },\n  { type: 'error', inputs: [], name: 'OnlyAllowedForRegisteredMinter' },\n  { type: 'error', inputs: [], name: 'OnlyAllowedForTimedSaleStrategy' },\n  { type: 'error', inputs: [], name: 'OnlyTransfersFromZoraMints' },\n  { type: 'error', inputs: [], name: 'PremintDeleted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ProtocolRewardsWithdrawFailed',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'renderer', internalType: 'address', type: 'address' }],\n    name: 'RendererNotValid',\n  },\n  { type: 'error', inputs: [], name: 'Renderer_NotValidRendererContract' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'targetContract', internalType: 'address', type: 'address' },\n    ],\n    name: 'Sale_CannotCallNonSalesContract',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'uint256', type: 'uint256' },\n      { name: 'actual', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'TokenIdMismatch',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'UUPS_UPGRADEABLE_MUST_NOT_BE_CALLED_THROUGH_DELEGATECALL',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n      { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserExceedsMintLimit',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'role', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserMissingRoleForToken',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'premintSignerContractFailedToRecoverSigner',\n  },\n  { type: 'error', inputs: [], name: 'premintSignerContractNotAContract' },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ERC1167FailedCreateClone' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  { type: 'error', inputs: [], name: 'EndTimeCannotBeInThePast' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyLaunched' },\n  { type: 'error', inputs: [], name: 'MarketMinimumNotReached' },\n  { type: 'error', inputs: [], name: 'MinimumMarketEthNotMet' },\n  { type: 'error', inputs: [], name: 'NeedsToBeAtLeastOneSaleToStartMarket' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'OnlyZoraRewardRecipient' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },\n  { type: 'error', inputs: [], name: 'RequestMintInvalidUseMint' },\n  { type: 'error', inputs: [], name: 'ResetSaleNotAvailable' },\n  { type: 'error', inputs: [], name: 'SaleAlreadySet' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  { type: 'error', inputs: [], name: 'SaleInProgress' },\n  { type: 'error', inputs: [], name: 'SaleNotSet' },\n  { type: 'error', inputs: [], name: 'SaleV2AlreadyStarted' },\n  { type: 'error', inputs: [], name: 'SaleV2Ended' },\n  { type: 'error', inputs: [], name: 'SaleV2NotSet' },\n  { type: 'error', inputs: [], name: 'StartTimeCannotBeAfterEndTime' },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ZoraCreator1155ContractNeedsToSupportReduceSupply',\n  },\n] as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraCreator1155PremintExecutorImpl\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n */\nexport const zoraCreator1155PremintExecutorImplABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: '_factory',\n        internalType: 'contract IZoraCreator1155Factory',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'cancelOwnershipTransfer',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'contractConfig',\n        internalType: 'struct ContractCreationConfig',\n        type: 'tuple',\n        components: [\n          { name: 'contractAdmin', internalType: 'address', type: 'address' },\n          { name: 'contractURI', internalType: 'string', type: 'string' },\n          { name: 'contractName', internalType: 'string', type: 'string' },\n        ],\n      },\n    ],\n    name: 'getContractAddress',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'contractConfig',\n        internalType: 'struct ContractWithAdditionalAdminsCreationConfig',\n        type: 'tuple',\n        components: [\n          { name: 'contractAdmin', internalType: 'address', type: 'address' },\n          { name: 'contractURI', internalType: 'string', type: 'string' },\n          { name: 'contractName', internalType: 'string', type: 'string' },\n          {\n            name: 'additionalAdmins',\n            internalType: 'address[]',\n            type: 'address[]',\n          },\n        ],\n      },\n    ],\n    name: 'getContractWithAdditionalAdminsAddress',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '_initialOwner', internalType: 'address', type: 'address' },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'signer', internalType: 'address', type: 'address' },\n      {\n        name: 'premintContractConfigContractAdmin',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: 'contractAddress', internalType: 'address', type: 'address' },\n    ],\n    name: 'isAuthorizedToCreatePremint',\n    outputs: [{ name: 'isAuthorized', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'signer', internalType: 'address', type: 'address' },\n      {\n        name: 'premintContractConfigContractAdmin',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: 'contractAddress', internalType: 'address', type: 'address' },\n      {\n        name: 'additionalAdmins',\n        internalType: 'address[]',\n        type: 'address[]',\n      },\n    ],\n    name: 'isAuthorizedToCreatePremintWithAdditionalAdmins',\n    outputs: [{ name: 'isAuthorized', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'contractConfig',\n        internalType: 'struct ContractCreationConfig',\n        type: 'tuple',\n        components: [\n          { name: 'contractAdmin', internalType: 'address', type: 'address' },\n          { name: 'contractURI', internalType: 'string', type: 'string' },\n          { name: 'contractName', internalType: 'string', type: 'string' },\n        ],\n      },\n      {\n        name: 'premintConfig',\n        internalType: 'struct PremintConfig',\n        type: 'tuple',\n        components: [\n          {\n            name: 'tokenConfig',\n            internalType: 'struct TokenCreationConfig',\n            type: 'tuple',\n            components: [\n              { name: 'tokenURI', internalType: 'string', type: 'string' },\n              { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n              {\n                name: 'maxTokensPerAddress',\n                internalType: 'uint64',\n                type: 'uint64',\n              },\n              { name: 'pricePerToken', internalType: 'uint96', type: 'uint96' },\n              { name: 'mintStart', internalType: 'uint64', type: 'uint64' },\n              { name: 'mintDuration', internalType: 'uint64', type: 'uint64' },\n              {\n                name: 'royaltyMintSchedule',\n                internalType: 'uint32',\n                type: 'uint32',\n              },\n              { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n              {\n                name: 'royaltyRecipient',\n                internalType: 'address',\n                type: 'address',\n              },\n              {\n                name: 'fixedPriceMinter',\n                internalType: 'address',\n                type: 'address',\n              },\n            ],\n          },\n          { name: 'uid', internalType: 'uint32', type: 'uint32' },\n          { name: 'version', internalType: 'uint32', type: 'uint32' },\n          { name: 'deleted', internalType: 'bool', type: 'bool' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'isValidSignature',\n    outputs: [\n      { name: 'isValid', internalType: 'bool', type: 'bool' },\n      { name: 'contractAddress', internalType: 'address', type: 'address' },\n      { name: 'recoveredSigner', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'collectionAddress', internalType: 'address', type: 'address' },\n    ],\n    name: 'mintFee',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'contractConfig',\n        internalType: 'struct ContractWithAdditionalAdminsCreationConfig',\n        type: 'tuple',\n        components: [\n          { name: 'contractAdmin', internalType: 'address', type: 'address' },\n          { name: 'contractURI', internalType: 'string', type: 'string' },\n          { name: 'contractName', internalType: 'string', type: 'string' },\n          {\n            name: 'additionalAdmins',\n            internalType: 'address[]',\n            type: 'address[]',\n          },\n        ],\n      },\n      { name: 'premintCollection', internalType: 'address', type: 'address' },\n      {\n        name: 'encodedPremintConfig',\n        internalType: 'struct PremintConfigEncoded',\n        type: 'tuple',\n        components: [\n          { name: 'uid', internalType: 'uint32', type: 'uint32' },\n          { name: 'version', internalType: 'uint32', type: 'uint32' },\n          { name: 'deleted', internalType: 'bool', type: 'bool' },\n          { name: 'tokenConfig', internalType: 'bytes', type: 'bytes' },\n          {\n            name: 'premintConfigVersion',\n            internalType: 'bytes32',\n            type: 'bytes32',\n          },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n      { name: 'quantityToMint', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'mintArguments',\n        internalType: 'struct MintArguments',\n        type: 'tuple',\n        components: [\n          { name: 'mintRecipient', internalType: 'address', type: 'address' },\n          { name: 'mintComment', internalType: 'string', type: 'string' },\n          {\n            name: 'mintRewardsRecipients',\n            internalType: 'address[]',\n            type: 'address[]',\n          },\n        ],\n      },\n      { name: 'firstMinter', internalType: 'address', type: 'address' },\n      { name: 'signerContract', internalType: 'address', type: 'address' },\n    ],\n    name: 'premint',\n    outputs: [\n      {\n        name: 'premintResult',\n        internalType: 'struct PremintResult',\n        type: 'tuple',\n        components: [\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'createdNewContract', internalType: 'bool', type: 'bool' },\n        ],\n      },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'contractAddress', internalType: 'address', type: 'address' },\n      { name: 'uid', internalType: 'uint32', type: 'uint32' },\n    ],\n    name: 'premintStatus',\n    outputs: [\n      { name: 'contractCreated', internalType: 'bool', type: 'bool' },\n      { name: 'tokenIdForPremint', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'contractConfig',\n        internalType: 'struct ContractCreationConfig',\n        type: 'tuple',\n        components: [\n          { name: 'contractAdmin', internalType: 'address', type: 'address' },\n          { name: 'contractURI', internalType: 'string', type: 'string' },\n          { name: 'contractName', internalType: 'string', type: 'string' },\n        ],\n      },\n      {\n        name: 'premintConfig',\n        internalType: 'struct PremintConfig',\n        type: 'tuple',\n        components: [\n          {\n            name: 'tokenConfig',\n            internalType: 'struct TokenCreationConfig',\n            type: 'tuple',\n            components: [\n              { name: 'tokenURI', internalType: 'string', type: 'string' },\n              { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n              {\n                name: 'maxTokensPerAddress',\n                internalType: 'uint64',\n                type: 'uint64',\n              },\n              { name: 'pricePerToken', internalType: 'uint96', type: 'uint96' },\n              { name: 'mintStart', internalType: 'uint64', type: 'uint64' },\n              { name: 'mintDuration', internalType: 'uint64', type: 'uint64' },\n              {\n                name: 'royaltyMintSchedule',\n                internalType: 'uint32',\n                type: 'uint32',\n              },\n              { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n              {\n                name: 'royaltyRecipient',\n                internalType: 'address',\n                type: 'address',\n              },\n              {\n                name: 'fixedPriceMinter',\n                internalType: 'address',\n                type: 'address',\n              },\n            ],\n          },\n          { name: 'uid', internalType: 'uint32', type: 'uint32' },\n          { name: 'version', internalType: 'uint32', type: 'uint32' },\n          { name: 'deleted', internalType: 'bool', type: 'bool' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n      { name: 'quantityToMint', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'mintArguments',\n        internalType: 'struct MintArguments',\n        type: 'tuple',\n        components: [\n          { name: 'mintRecipient', internalType: 'address', type: 'address' },\n          { name: 'mintComment', internalType: 'string', type: 'string' },\n          {\n            name: 'mintRewardsRecipients',\n            internalType: 'address[]',\n            type: 'address[]',\n          },\n        ],\n      },\n    ],\n    name: 'premintV1',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct PremintResult',\n        type: 'tuple',\n        components: [\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'createdNewContract', internalType: 'bool', type: 'bool' },\n        ],\n      },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'contractConfig',\n        internalType: 'struct ContractCreationConfig',\n        type: 'tuple',\n        components: [\n          { name: 'contractAdmin', internalType: 'address', type: 'address' },\n          { name: 'contractURI', internalType: 'string', type: 'string' },\n          { name: 'contractName', internalType: 'string', type: 'string' },\n        ],\n      },\n      {\n        name: 'premintConfig',\n        internalType: 'struct PremintConfigV2',\n        type: 'tuple',\n        components: [\n          {\n            name: 'tokenConfig',\n            internalType: 'struct TokenCreationConfigV2',\n            type: 'tuple',\n            components: [\n              { name: 'tokenURI', internalType: 'string', type: 'string' },\n              { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n              {\n                name: 'maxTokensPerAddress',\n                internalType: 'uint64',\n                type: 'uint64',\n              },\n              { name: 'pricePerToken', internalType: 'uint96', type: 'uint96' },\n              { name: 'mintStart', internalType: 'uint64', type: 'uint64' },\n              { name: 'mintDuration', internalType: 'uint64', type: 'uint64' },\n              { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n              {\n                name: 'payoutRecipient',\n                internalType: 'address',\n                type: 'address',\n              },\n              {\n                name: 'fixedPriceMinter',\n                internalType: 'address',\n                type: 'address',\n              },\n              {\n                name: 'createReferral',\n                internalType: 'address',\n                type: 'address',\n              },\n            ],\n          },\n          { name: 'uid', internalType: 'uint32', type: 'uint32' },\n          { name: 'version', internalType: 'uint32', type: 'uint32' },\n          { name: 'deleted', internalType: 'bool', type: 'bool' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n      { name: 'quantityToMint', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'mintArguments',\n        internalType: 'struct MintArguments',\n        type: 'tuple',\n        components: [\n          { name: 'mintRecipient', internalType: 'address', type: 'address' },\n          { name: 'mintComment', internalType: 'string', type: 'string' },\n          {\n            name: 'mintRewardsRecipients',\n            internalType: 'address[]',\n            type: 'address[]',\n          },\n        ],\n      },\n    ],\n    name: 'premintV2',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct PremintResult',\n        type: 'tuple',\n        components: [\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'createdNewContract', internalType: 'bool', type: 'bool' },\n        ],\n      },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'resignOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '_newOwner', internalType: 'address', type: 'address' }],\n    name: 'safeTransferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'contractAddress', internalType: 'address', type: 'address' },\n    ],\n    name: 'supportedPremintSignatureVersions',\n    outputs: [{ name: 'versions', internalType: 'string[]', type: 'string[]' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: '_newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'upgradeTo',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zora1155Factory',\n    outputs: [\n      {\n        name: '',\n        internalType: 'contract IZoraCreator1155Factory',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousAdmin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'newAdmin',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'AdminChanged',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'beacon',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'BeaconUpgraded',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'canceledOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerCanceled',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'owner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'pendingOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerPending',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'prevOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnerUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'contractAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'createdNewContract',\n        internalType: 'bool',\n        type: 'bool',\n        indexed: true,\n      },\n      { name: 'uid', internalType: 'uint32', type: 'uint32', indexed: false },\n      {\n        name: 'contractConfig',\n        internalType: 'struct ContractCreationConfig',\n        type: 'tuple',\n        components: [\n          { name: 'contractAdmin', internalType: 'address', type: 'address' },\n          { name: 'contractURI', internalType: 'string', type: 'string' },\n          { name: 'contractName', internalType: 'string', type: 'string' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'tokenConfig',\n        internalType: 'struct TokenCreationConfig',\n        type: 'tuple',\n        components: [\n          { name: 'tokenURI', internalType: 'string', type: 'string' },\n          { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'maxTokensPerAddress',\n            internalType: 'uint64',\n            type: 'uint64',\n          },\n          { name: 'pricePerToken', internalType: 'uint96', type: 'uint96' },\n          { name: 'mintStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'mintDuration', internalType: 'uint64', type: 'uint64' },\n          {\n            name: 'royaltyMintSchedule',\n            internalType: 'uint32',\n            type: 'uint32',\n          },\n          { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n          {\n            name: 'royaltyRecipient',\n            internalType: 'address',\n            type: 'address',\n          },\n          {\n            name: 'fixedPriceMinter',\n            internalType: 'address',\n            type: 'address',\n          },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'minter',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'quantityMinted',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'Preminted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'contractAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'createdNewContract',\n        internalType: 'bool',\n        type: 'bool',\n        indexed: true,\n      },\n      { name: 'uid', internalType: 'uint32', type: 'uint32', indexed: false },\n      {\n        name: 'minter',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'quantityMinted',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'PremintedV2',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  { type: 'error', inputs: [], name: 'ADDRESS_DELEGATECALL_TO_NON_CONTRACT' },\n  { type: 'error', inputs: [], name: 'ADDRESS_LOW_LEVEL_CALL_FAILED' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'user', internalType: 'address', type: 'address' },\n    ],\n    name: 'Burn_NotOwnerOrApproved',\n  },\n  { type: 'error', inputs: [], name: 'CREATOR_FUNDS_RECIPIENT_NOT_SET' },\n  {\n    type: 'error',\n    inputs: [{ name: 'reason', internalType: 'bytes', type: 'bytes' }],\n    name: 'CallFailed',\n  },\n  { type: 'error', inputs: [], name: 'Call_TokenIdMismatch' },\n  { type: 'error', inputs: [], name: 'CallerNotZoraCreator1155' },\n  { type: 'error', inputs: [], name: 'CanOnlyReduceMaxSupply' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'totalMinted', internalType: 'uint256', type: 'uint256' },\n      { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'CannotMintMoreTokens',\n  },\n  { type: 'error', inputs: [], name: 'CannotReduceMaxSupplyBelowMinted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'proposedAddress', internalType: 'address', type: 'address' },\n    ],\n    name: 'Config_TransferHookNotSupported',\n  },\n  { type: 'error', inputs: [], name: 'ERC1155_MINT_TO_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'ERC1967_NEW_IMPL_NOT_CONTRACT' },\n  { type: 'error', inputs: [], name: 'ERC1967_NEW_IMPL_NOT_UUPS' },\n  { type: 'error', inputs: [], name: 'ERC1967_UNSUPPORTED_PROXIABLEUUID' },\n  { type: 'error', inputs: [], name: 'ERC20TransferSlippage' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ETHWithdrawFailed',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'FUNCTION_MUST_BE_CALLED_THROUGH_ACTIVE_PROXY',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'FUNCTION_MUST_BE_CALLED_THROUGH_DELEGATECALL',\n  },\n  { type: 'error', inputs: [], name: 'FirstMinterAddressZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n      { name: 'contractValue', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'FundsWithdrawInsolvent',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED',\n  },\n  { type: 'error', inputs: [], name: 'INITIALIZABLE_CONTRACT_IS_INITIALIZING' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING',\n  },\n  { type: 'error', inputs: [], name: 'INVALID_ADDRESS_ZERO' },\n  { type: 'error', inputs: [], name: 'INVALID_ETH_AMOUNT' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'mintTo', internalType: 'address', type: 'address' },\n      { name: 'merkleProof', internalType: 'bytes32[]', type: 'bytes32[]' },\n      { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'InvalidMerkleProof',\n  },\n  { type: 'error', inputs: [], name: 'InvalidMintSchedule' },\n  { type: 'error', inputs: [], name: 'InvalidPremintVersion' },\n  { type: 'error', inputs: [], name: 'InvalidSignature' },\n  { type: 'error', inputs: [], name: 'InvalidSignatureVersion' },\n  {\n    type: 'error',\n    inputs: [{ name: 'magicValue', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'MintNotYetStarted' },\n  { type: 'error', inputs: [], name: 'Mint_InsolventSaleTransfer' },\n  { type: 'error', inputs: [], name: 'Mint_InvalidMintArrayLength' },\n  { type: 'error', inputs: [], name: 'Mint_TokenIDMintNotAllowed' },\n  { type: 'error', inputs: [], name: 'Mint_UnknownCommand' },\n  { type: 'error', inputs: [], name: 'Mint_ValueTransferFail' },\n  { type: 'error', inputs: [], name: 'MinterContractAlreadyExists' },\n  { type: 'error', inputs: [], name: 'MinterContractDoesNotExist' },\n  { type: 'error', inputs: [], name: 'NewOwnerNeedsToBeAdmin' },\n  { type: 'error', inputs: [], name: 'NonEthRedemption' },\n  { type: 'error', inputs: [], name: 'ONLY_CREATE_REFERRAL' },\n  { type: 'error', inputs: [], name: 'ONLY_OWNER' },\n  { type: 'error', inputs: [], name: 'ONLY_PENDING_OWNER' },\n  { type: 'error', inputs: [], name: 'OWNER_CANNOT_BE_ZERO_ADDRESS' },\n  { type: 'error', inputs: [], name: 'OnlyAllowedForRegisteredMinter' },\n  { type: 'error', inputs: [], name: 'OnlyAllowedForTimedSaleStrategy' },\n  { type: 'error', inputs: [], name: 'OnlyTransfersFromZoraMints' },\n  { type: 'error', inputs: [], name: 'PremintDeleted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ProtocolRewardsWithdrawFailed',\n  },\n  { type: 'error', inputs: [], name: 'Renderer_NotValidRendererContract' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'targetContract', internalType: 'address', type: 'address' },\n    ],\n    name: 'Sale_CannotCallNonSalesContract',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'uint256', type: 'uint256' },\n      { name: 'actual', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'TokenIdMismatch',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'UUPS_UPGRADEABLE_MUST_NOT_BE_CALLED_THROUGH_DELEGATECALL',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'string', type: 'string' },\n      { name: 'actual', internalType: 'string', type: 'string' },\n    ],\n    name: 'UpgradeToMismatchedContractName',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n      { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserExceedsMintLimit',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'role', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserMissingRoleForToken',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'premintSignerContractFailedToRecoverSigner',\n  },\n  { type: 'error', inputs: [], name: 'premintSignerContractNotAContract' },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n */\nexport const zoraCreator1155PremintExecutorImplAddress = {\n  1: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n  10: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n  999: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n  8453: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n  42161: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n  81457: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n  84532: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n  421614: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n  7777777: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n  11155111: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n  168587773: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n  999999999: '0x7777773606e7e46C8Ba8B98C08f5cD218e31d340',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777773606e7e46C8Ba8B98C08f5cD218e31d340)\n */\nexport const zoraCreator1155PremintExecutorImplConfig = {\n  address: zoraCreator1155PremintExecutorImplAddress,\n  abi: zoraCreator1155PremintExecutorImplABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraCreatorFixedPriceSaleStrategy\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x3678862f04290E565cCA2EF163BAeb92Bb76790C)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x3EB144aee170BF62FdA1536e38aF51f08e34A5D0)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xd34872BE0cdb6b09d45FCa067B07f04a1A9aE1aE)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x3EB144aee170BF62FdA1536e38aF51f08e34A5D0)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x6d28164C3CE04A190D5F9f0f8881fc807EAD975A)\n */\nexport const zoraCreatorFixedPriceSaleStrategyABI = [\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenContract', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'wallet', internalType: 'address', type: 'address' },\n    ],\n    name: 'getMintedPerWallet',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'ethValueSent', internalType: 'uint256', type: 'uint256' },\n      { name: 'minterArguments', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'requestMint',\n    outputs: [\n      {\n        name: 'commands',\n        internalType: 'struct ICreatorCommands.CommandSet',\n        type: 'tuple',\n        components: [\n          {\n            name: 'commands',\n            internalType: 'struct ICreatorCommands.Command[]',\n            type: 'tuple[]',\n            components: [\n              {\n                name: 'method',\n                internalType: 'enum ICreatorCommands.CreatorActions',\n                type: 'uint8',\n              },\n              { name: 'args', internalType: 'bytes', type: 'bytes' },\n            ],\n          },\n          { name: 'at', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'resetSale',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenContract', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'sale',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct ZoraCreatorFixedPriceSaleStrategy.SalesConfig',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          {\n            name: 'maxTokensPerAddress',\n            internalType: 'uint64',\n            type: 'uint64',\n          },\n          { name: 'pricePerToken', internalType: 'uint96', type: 'uint96' },\n          { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'salesConfig',\n        internalType: 'struct ZoraCreatorFixedPriceSaleStrategy.SalesConfig',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          {\n            name: 'maxTokensPerAddress',\n            internalType: 'uint64',\n            type: 'uint64',\n          },\n          { name: 'pricePerToken', internalType: 'uint96', type: 'uint96' },\n          { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    name: 'setSale',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenContract',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'quantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'comment',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'MintComment',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'mediaContract',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'salesConfig',\n        internalType: 'struct ZoraCreatorFixedPriceSaleStrategy.SalesConfig',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          {\n            name: 'maxTokensPerAddress',\n            internalType: 'uint64',\n            type: 'uint64',\n          },\n          { name: 'pricePerToken', internalType: 'uint96', type: 'uint96' },\n          { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'SaleSet',\n  },\n  { type: 'error', inputs: [], name: 'CallerNotZoraCreator1155' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'mintTo', internalType: 'address', type: 'address' },\n      { name: 'merkleProof', internalType: 'bytes32[]', type: 'bytes32[]' },\n      { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'InvalidMerkleProof',\n  },\n  { type: 'error', inputs: [], name: 'MinterContractAlreadyExists' },\n  { type: 'error', inputs: [], name: 'MinterContractDoesNotExist' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n      { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserExceedsMintLimit',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x3678862f04290E565cCA2EF163BAeb92Bb76790C)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x3EB144aee170BF62FdA1536e38aF51f08e34A5D0)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xd34872BE0cdb6b09d45FCa067B07f04a1A9aE1aE)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x3EB144aee170BF62FdA1536e38aF51f08e34A5D0)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x6d28164C3CE04A190D5F9f0f8881fc807EAD975A)\n */\nexport const zoraCreatorFixedPriceSaleStrategyAddress = {\n  1: '0x04E2516A2c207E84a1839755675dfd8eF6302F0a',\n  10: '0x3678862f04290E565cCA2EF163BAeb92Bb76790C',\n  999: '0x04E2516A2c207E84a1839755675dfd8eF6302F0a',\n  8453: '0x04E2516A2c207E84a1839755675dfd8eF6302F0a',\n  42161: '0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21',\n  81457: '0x3EB144aee170BF62FdA1536e38aF51f08e34A5D0',\n  84532: '0xd34872BE0cdb6b09d45FCa067B07f04a1A9aE1aE',\n  421614: '0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21',\n  7777777: '0x04E2516A2c207E84a1839755675dfd8eF6302F0a',\n  11155111: '0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21',\n  168587773: '0x3EB144aee170BF62FdA1536e38aF51f08e34A5D0',\n  999999999: '0x6d28164C3CE04A190D5F9f0f8881fc807EAD975A',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x3678862f04290E565cCA2EF163BAeb92Bb76790C)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x3EB144aee170BF62FdA1536e38aF51f08e34A5D0)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0xd34872BE0cdb6b09d45FCa067B07f04a1A9aE1aE)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x04E2516A2c207E84a1839755675dfd8eF6302F0a)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x3EB144aee170BF62FdA1536e38aF51f08e34A5D0)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x6d28164C3CE04A190D5F9f0f8881fc807EAD975A)\n */\nexport const zoraCreatorFixedPriceSaleStrategyConfig = {\n  address: zoraCreatorFixedPriceSaleStrategyAddress,\n  abi: zoraCreatorFixedPriceSaleStrategyABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraCreatorMerkleMinterStrategy\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x899ce31dF6C6Af81203AcAaD285bF539234eF4b8)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xe770E6f19aecF8ef3145A50087999b5556aB3610)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0xB9C997FcC46a27331CC986cc2416ee99C1d506c3)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x3E8524770adD176bE381a0529E09f1c6c3502A5a)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0xe770E6f19aecF8ef3145A50087999b5556aB3610)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xe770E6f19aecF8ef3145A50087999b5556aB3610)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0xB9C997FcC46a27331CC986cc2416ee99C1d506c3)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x5e5fD4b758076BAD940db0284b711A67E8a3B88c)\n */\nexport const zoraCreatorMerkleMinterStrategyABI = [\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'allowedMerkles',\n    outputs: [\n      { name: 'presaleStart', internalType: 'uint64', type: 'uint64' },\n      { name: 'presaleEnd', internalType: 'uint64', type: 'uint64' },\n      { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n      { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenContract', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'wallet', internalType: 'address', type: 'address' },\n    ],\n    name: 'getMintedPerWallet',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'ethValueSent', internalType: 'uint256', type: 'uint256' },\n      { name: 'minterArguments', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'requestMint',\n    outputs: [\n      {\n        name: 'commands',\n        internalType: 'struct ICreatorCommands.CommandSet',\n        type: 'tuple',\n        components: [\n          {\n            name: 'commands',\n            internalType: 'struct ICreatorCommands.Command[]',\n            type: 'tuple[]',\n            components: [\n              {\n                name: 'method',\n                internalType: 'enum ICreatorCommands.CreatorActions',\n                type: 'uint8',\n              },\n              { name: 'args', internalType: 'bytes', type: 'bytes' },\n            ],\n          },\n          { name: 'at', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'resetSale',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenContract', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'sale',\n    outputs: [\n      {\n        name: '',\n        internalType:\n          'struct ZoraCreatorMerkleMinterStrategy.MerkleSaleSettings',\n        type: 'tuple',\n        components: [\n          { name: 'presaleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'presaleEnd', internalType: 'uint64', type: 'uint64' },\n          { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n          { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'merkleSaleSettings',\n        internalType:\n          'struct ZoraCreatorMerkleMinterStrategy.MerkleSaleSettings',\n        type: 'tuple',\n        components: [\n          { name: 'presaleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'presaleEnd', internalType: 'uint64', type: 'uint64' },\n          { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n          { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n        ],\n      },\n    ],\n    name: 'setSale',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'mediaContract',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'merkleSaleSettings',\n        internalType:\n          'struct ZoraCreatorMerkleMinterStrategy.MerkleSaleSettings',\n        type: 'tuple',\n        components: [\n          { name: 'presaleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'presaleEnd', internalType: 'uint64', type: 'uint64' },\n          { name: 'fundsRecipient', internalType: 'address', type: 'address' },\n          { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'SaleSet',\n  },\n  { type: 'error', inputs: [], name: 'CallerNotZoraCreator1155' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'mintTo', internalType: 'address', type: 'address' },\n      { name: 'merkleProof', internalType: 'bytes32[]', type: 'bytes32[]' },\n      { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'InvalidMerkleProof',\n  },\n  { type: 'error', inputs: [], name: 'MerkleClaimsExceeded' },\n  { type: 'error', inputs: [], name: 'MinterContractAlreadyExists' },\n  { type: 'error', inputs: [], name: 'MinterContractDoesNotExist' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n      { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserExceedsMintLimit',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x899ce31dF6C6Af81203AcAaD285bF539234eF4b8)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xe770E6f19aecF8ef3145A50087999b5556aB3610)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0xB9C997FcC46a27331CC986cc2416ee99C1d506c3)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x3E8524770adD176bE381a0529E09f1c6c3502A5a)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0xe770E6f19aecF8ef3145A50087999b5556aB3610)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xe770E6f19aecF8ef3145A50087999b5556aB3610)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0xB9C997FcC46a27331CC986cc2416ee99C1d506c3)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x5e5fD4b758076BAD940db0284b711A67E8a3B88c)\n */\nexport const zoraCreatorMerkleMinterStrategyAddress = {\n  1: '0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7',\n  10: '0x899ce31dF6C6Af81203AcAaD285bF539234eF4b8',\n  999: '0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7',\n  8453: '0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7',\n  42161: '0xe770E6f19aecF8ef3145A50087999b5556aB3610',\n  81457: '0xB9C997FcC46a27331CC986cc2416ee99C1d506c3',\n  84532: '0x3E8524770adD176bE381a0529E09f1c6c3502A5a',\n  421614: '0xe770E6f19aecF8ef3145A50087999b5556aB3610',\n  7777777: '0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7',\n  11155111: '0xe770E6f19aecF8ef3145A50087999b5556aB3610',\n  168587773: '0xB9C997FcC46a27331CC986cc2416ee99C1d506c3',\n  999999999: '0x5e5fD4b758076BAD940db0284b711A67E8a3B88c',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x899ce31dF6C6Af81203AcAaD285bF539234eF4b8)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0xe770E6f19aecF8ef3145A50087999b5556aB3610)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0xB9C997FcC46a27331CC986cc2416ee99C1d506c3)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x3E8524770adD176bE381a0529E09f1c6c3502A5a)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0xe770E6f19aecF8ef3145A50087999b5556aB3610)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xe770E6f19aecF8ef3145A50087999b5556aB3610)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0xB9C997FcC46a27331CC986cc2416ee99C1d506c3)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x5e5fD4b758076BAD940db0284b711A67E8a3B88c)\n */\nexport const zoraCreatorMerkleMinterStrategyConfig = {\n  address: zoraCreatorMerkleMinterStrategyAddress,\n  abi: zoraCreatorMerkleMinterStrategyABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraCreatorRedeemMinterFactory\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x1B28A04b7eB7b93f920ddF2021aa3fAE065395f2)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7A0dE1B1f5420Df5D946878fBe2cF109011BE614)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x805E0a08dE70f85C01F7848370d5e3fc08aAd0ea)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x7A0dE1B1f5420Df5D946878fBe2cF109011BE614)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x25cFb6dd9cDE8425e781d6718a29Ccbca3F038d6)\n */\nexport const zoraCreatorRedeemMinterFactoryABI = [\n  { type: 'constructor', inputs: [], stateMutability: 'nonpayable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'CONTRACT_BASE_ID',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'createMinterIfNoneExists',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '_creatorContract', internalType: 'address', type: 'address' },\n    ],\n    name: 'doesRedeemMinterExistForCreatorContract',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '_creatorContract', internalType: 'address', type: 'address' },\n    ],\n    name: 'getDeployedRedeemMinterForCreatorContract',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '_creatorContract', internalType: 'address', type: 'address' },\n    ],\n    name: 'predictMinterAddress',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'ethValueSent', internalType: 'uint256', type: 'uint256' },\n      { name: 'minterArguments', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'requestMint',\n    outputs: [\n      {\n        name: 'commands',\n        internalType: 'struct ICreatorCommands.CommandSet',\n        type: 'tuple',\n        components: [\n          {\n            name: 'commands',\n            internalType: 'struct ICreatorCommands.Command[]',\n            type: 'tuple[]',\n            components: [\n              {\n                name: 'method',\n                internalType: 'enum ICreatorCommands.CreatorActions',\n                type: 'uint8',\n              },\n              { name: 'args', internalType: 'bytes', type: 'bytes' },\n            ],\n          },\n          { name: 'at', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraRedeemMinterImplementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'creatorContract',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'minterContract',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'RedeemMinterDeployed',\n  },\n  { type: 'error', inputs: [], name: 'CallerNotZoraCreator1155' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'mintTo', internalType: 'address', type: 'address' },\n      { name: 'merkleProof', internalType: 'bytes32[]', type: 'bytes32[]' },\n      { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'InvalidMerkleProof',\n  },\n  { type: 'error', inputs: [], name: 'MinterContractAlreadyExists' },\n  { type: 'error', inputs: [], name: 'MinterContractDoesNotExist' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x1B28A04b7eB7b93f920ddF2021aa3fAE065395f2)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7A0dE1B1f5420Df5D946878fBe2cF109011BE614)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x805E0a08dE70f85C01F7848370d5e3fc08aAd0ea)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x7A0dE1B1f5420Df5D946878fBe2cF109011BE614)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x25cFb6dd9cDE8425e781d6718a29Ccbca3F038d6)\n */\nexport const zoraCreatorRedeemMinterFactoryAddress = {\n  1: '0x78964965cF77850224513a367f899435C5B69174',\n  10: '0x1B28A04b7eB7b93f920ddF2021aa3fAE065395f2',\n  999: '0x78964965cF77850224513a367f899435C5B69174',\n  8453: '0x78964965cF77850224513a367f899435C5B69174',\n  42161: '0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D',\n  81457: '0x7A0dE1B1f5420Df5D946878fBe2cF109011BE614',\n  84532: '0x805E0a08dE70f85C01F7848370d5e3fc08aAd0ea',\n  421614: '0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D',\n  7777777: '0x78964965cF77850224513a367f899435C5B69174',\n  11155111: '0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D',\n  168587773: '0x7A0dE1B1f5420Df5D946878fBe2cF109011BE614',\n  999999999: '0x25cFb6dd9cDE8425e781d6718a29Ccbca3F038d6',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x1B28A04b7eB7b93f920ddF2021aa3fAE065395f2)\n * - [__View Contract on Zora Goerli Testnet Explorer__](https://testnet.explorer.zora.energy/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x7A0dE1B1f5420Df5D946878fBe2cF109011BE614)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x805E0a08dE70f85C01F7848370d5e3fc08aAd0ea)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x78964965cF77850224513a367f899435C5B69174)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D)\n * - [__View Contract on Blast Sepolia Blastscan__](https://sepolia.blastscan.io/address/0x7A0dE1B1f5420Df5D946878fBe2cF109011BE614)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x25cFb6dd9cDE8425e781d6718a29Ccbca3F038d6)\n */\nexport const zoraCreatorRedeemMinterFactoryConfig = {\n  address: zoraCreatorRedeemMinterFactoryAddress,\n  abi: zoraCreatorRedeemMinterFactoryABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraLimitOrderBook\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777C783bAD88daCaf9A19E04238341E4497B)\n */\nexport const zoraLimitOrderBookABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      { name: 'poolManager_', internalType: 'address', type: 'address' },\n      {\n        name: 'zoraCoinVersionLookup_',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: 'zoraHookRegistry_', internalType: 'address', type: 'address' },\n      { name: 'owner_', internalType: 'address', type: 'address' },\n      { name: 'weth_', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  { type: 'receive', stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'maker', internalType: 'address', type: 'address' },\n      { name: 'coin', internalType: 'address', type: 'address' },\n    ],\n    name: 'balanceOf',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n      { name: 'orderSizes', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'orderTicks', internalType: 'int24[]', type: 'int24[]' },\n      { name: 'maker', internalType: 'address', type: 'address' },\n    ],\n    name: 'create',\n    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n      { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n      { name: 'startTick', internalType: 'int24', type: 'int24' },\n      { name: 'endTick', internalType: 'int24', type: 'int24' },\n      { name: 'maxFillCount', internalType: 'uint256', type: 'uint256' },\n      { name: 'fillReferral', internalType: 'address', type: 'address' },\n    ],\n    name: 'fill',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'batches',\n        internalType: 'struct IZoraLimitOrderBook.OrderBatch[]',\n        type: 'tuple[]',\n        components: [\n          {\n            name: 'key',\n            internalType: 'struct PoolKey',\n            type: 'tuple',\n            components: [\n              { name: 'currency0', internalType: 'Currency', type: 'address' },\n              { name: 'currency1', internalType: 'Currency', type: 'address' },\n              { name: 'fee', internalType: 'uint24', type: 'uint24' },\n              { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n              {\n                name: 'hooks',\n                internalType: 'contract IHooks',\n                type: 'address',\n              },\n            ],\n          },\n          { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n          { name: 'orderIds', internalType: 'bytes32[]', type: 'bytes32[]' },\n        ],\n      },\n      { name: 'fillReferral', internalType: 'address', type: 'address' },\n    ],\n    name: 'fill',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getMaxFillCount',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'caller', internalType: 'address', type: 'address' }],\n    name: 'isPermittedCaller',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'poolManager',\n    outputs: [\n      { name: '', internalType: 'contract IPoolManager', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'maxFillCount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'setMaxFillCount',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'callers', internalType: 'address[]', type: 'address[]' },\n      { name: 'permitted', internalType: 'bool[]', type: 'bool[]' },\n    ],\n    name: 'setPermittedCallers',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'unlockCallback',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'weth',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'orderIds', internalType: 'bytes32[]', type: 'bytes32[]' },\n      { name: 'coin', internalType: 'address', type: 'address' },\n      { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'withdraw',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraCoinVersionLookup',\n    outputs: [\n      {\n        name: '',\n        internalType: 'contract IDeployedCoinVersionLookup',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraHookRegistry',\n    outputs: [\n      { name: '', internalType: 'contract IZoraHookRegistry', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'maker',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'coin', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'isCurrency0',\n        internalType: 'bool',\n        type: 'bool',\n        indexed: false,\n      },\n      {\n        name: 'orderTick',\n        internalType: 'int24',\n        type: 'int24',\n        indexed: false,\n      },\n      {\n        name: 'currentTick',\n        internalType: 'int24',\n        type: 'int24',\n        indexed: false,\n      },\n      {\n        name: 'orderSize',\n        internalType: 'uint128',\n        type: 'uint128',\n        indexed: false,\n      },\n      {\n        name: 'orderId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n    ],\n    name: 'LimitOrderCreated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'maker',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'coinIn',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'coinOut',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'amountIn',\n        internalType: 'uint128',\n        type: 'uint128',\n        indexed: false,\n      },\n      {\n        name: 'amountOut',\n        internalType: 'uint128',\n        type: 'uint128',\n        indexed: false,\n      },\n      {\n        name: 'fillReferral',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'fillReferralAmount',\n        internalType: 'uint128',\n        type: 'uint128',\n        indexed: false,\n      },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      { name: 'tick', internalType: 'int24', type: 'int24', indexed: false },\n      {\n        name: 'orderId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n    ],\n    name: 'LimitOrderFilled',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'maker',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'coin', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'poolKeyHash',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'isCurrency0',\n        internalType: 'bool',\n        type: 'bool',\n        indexed: false,\n      },\n      { name: 'tick', internalType: 'int24', type: 'int24', indexed: false },\n      {\n        name: 'orderSize',\n        internalType: 'uint128',\n        type: 'uint128',\n        indexed: false,\n      },\n      {\n        name: 'orderId',\n        internalType: 'bytes32',\n        type: 'bytes32',\n        indexed: false,\n      },\n      {\n        name: 'isCancelled',\n        internalType: 'bool',\n        type: 'bool',\n        indexed: false,\n      },\n    ],\n    name: 'LimitOrderUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'maker',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'coin', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'newBalance',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'MakerBalanceUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'caller',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'permitted', internalType: 'bool', type: 'bool', indexed: false },\n    ],\n    name: 'PermittedCallerUpdated',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ArrayLengthMismatch' },\n  { type: 'error', inputs: [], name: 'CallerNotPermitted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'orderId', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n      { name: 'actualCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'CoinMismatch',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientForwardedFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientTransferFunds' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'startTick', internalType: 'int24', type: 'int24' },\n      { name: 'endTick', internalType: 'int24', type: 'int24' },\n      { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'InvalidFillWindow',\n  },\n  { type: 'error', inputs: [], name: 'InvalidOrder' },\n  { type: 'error', inputs: [], name: 'InvalidPoolKey' },\n  { type: 'error', inputs: [], name: 'MaxFillCountCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'withdrawn', internalType: 'uint256', type: 'uint256' },\n      { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MinAmountNotReached',\n  },\n  { type: 'error', inputs: [], name: 'NativeValueMismatch' },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  { type: 'error', inputs: [], name: 'OnlyZoraHook' },\n  { type: 'error', inputs: [], name: 'OrderClosed' },\n  { type: 'error', inputs: [], name: 'OrderFillable' },\n  { type: 'error', inputs: [], name: 'OrderNotMaker' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'PermittedCallersLengthMismatch' },\n  { type: 'error', inputs: [], name: 'RouterMsgSenderInvalid' },\n  { type: 'error', inputs: [], name: 'UnknownCallback' },\n  { type: 'error', inputs: [], name: 'UnlockedFillNotAllowed' },\n  { type: 'error', inputs: [], name: 'WethTransferFailed' },\n  { type: 'error', inputs: [], name: 'ZeroMaker' },\n  { type: 'error', inputs: [], name: 'ZeroOrderSize' },\n  { type: 'error', inputs: [], name: 'ZeroRealizedOrder' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'AlreadyOwner' },\n  { type: 'error', inputs: [], name: 'CannotMintZeroLiquidity' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'DopplerPoolMustHaveMoreThan2DiscoveryPositions',\n  },\n  { type: 'error', inputs: [], name: 'ECDSAInvalidSignature' },\n  {\n    type: 'error',\n    inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }],\n    name: 'ECDSAInvalidSignatureLength',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 's', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'ECDSAInvalidSignatureS',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'allowance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientAllowance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidApprover',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidReceiver',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSender',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'spender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSpender',\n  },\n  { type: 'error', inputs: [], name: 'ERC20TransferAmountMismatch' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'signer', internalType: 'address', type: 'address' },\n      { name: 'owner', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC2612InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'EthAmountMismatch' },\n  { type: 'error', inputs: [], name: 'EthAmountTooSmall' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'EthTransferInvalid' },\n  { type: 'error', inputs: [], name: 'InitialOrderSizeTooLarge' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientLiquidity' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidCurrency' },\n  { type: 'error', inputs: [], name: 'InvalidCurrencyLowerTick' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidMarketType' },\n  { type: 'error', inputs: [], name: 'InvalidPoolVersion' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tickLower', internalType: 'int24', type: 'int24' },\n      { name: 'tickUpper', internalType: 'int24', type: 'int24' },\n    ],\n    name: 'InvalidTickRangeMisordered',\n  },\n  { type: 'error', inputs: [], name: 'InvalidWethLowerTick' },\n  { type: 'error', inputs: [], name: 'LegacyPoolMustHaveOneDiscoveryPosition' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyGraduated' },\n  { type: 'error', inputs: [], name: 'MarketNotGraduated' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MaxShareToBeSoldExceeded',\n  },\n  { type: 'error', inputs: [], name: 'NameIsRequired' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotOwner' },\n  { type: 'error', inputs: [], name: 'NumDiscoveryPositionsOutOfRange' },\n  { type: 'error', inputs: [], name: 'OneOwnerRequired' },\n  { type: 'error', inputs: [], name: 'OnlyOwner' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'pool', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyPool',\n  },\n  { type: 'error', inputs: [], name: 'OnlyWeth' },\n  { type: 'error', inputs: [], name: 'OwnerCannotBeAddressZero' },\n  { type: 'error', inputs: [], name: 'SlippageBoundsExceeded' },\n  { type: 'error', inputs: [], name: 'UseRevokeOwnershipToRemoveSelf' },\n  { type: 'error', inputs: [], name: 'CoinVersionLookupCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'HookNotImplemented' },\n  {\n    type: 'error',\n    inputs: [{ name: 'callbackId', internalType: 'uint8', type: 'uint8' }],\n    name: 'InvalidCallbackId',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'newHook', internalType: 'address', type: 'address' }],\n    name: 'InvalidNewHook',\n  },\n  {\n    type: 'error',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n    ],\n    name: 'NoCoinForHook',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'coin', internalType: 'address', type: 'address' }],\n    name: 'NotACoin',\n  },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyCoin',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'SafeCastOverflow' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'TrustedMsgSenderLookupCannotBeZeroAddress',\n  },\n  { type: 'error', inputs: [], name: 'UpgradeGateCannotBeZeroAddress' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'oldHook', internalType: 'address', type: 'address' },\n      { name: 'newHook', internalType: 'address', type: 'address' },\n    ],\n    name: 'UpgradePathNotRegistered',\n  },\n  { type: 'error', inputs: [], name: 'ZoraHookRegistryCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'ZoraLimitOrderBookCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'AlreadyUnlocked' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'currency0', internalType: 'address', type: 'address' },\n      { name: 'currency1', internalType: 'address', type: 'address' },\n    ],\n    name: 'CurrenciesOutOfOrderOrEqual',\n  },\n  { type: 'error', inputs: [], name: 'CurrencyNotSettled' },\n  { type: 'error', inputs: [], name: 'InvalidCaller' },\n  { type: 'error', inputs: [], name: 'ManagerLocked' },\n  { type: 'error', inputs: [], name: 'MustClearExactPositiveDelta' },\n  { type: 'error', inputs: [], name: 'NonzeroNativeValue' },\n  { type: 'error', inputs: [], name: 'PoolNotInitialized' },\n  { type: 'error', inputs: [], name: 'ProtocolFeeCurrencySynced' },\n  {\n    type: 'error',\n    inputs: [{ name: 'fee', internalType: 'uint24', type: 'uint24' }],\n    name: 'ProtocolFeeTooLarge',\n  },\n  { type: 'error', inputs: [], name: 'SwapAmountCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],\n    name: 'TickSpacingTooLarge',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],\n    name: 'TickSpacingTooSmall',\n  },\n  { type: 'error', inputs: [], name: 'UnauthorizedDynamicLPFeeUpdate' },\n] as const\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777C783bAD88daCaf9A19E04238341E4497B)\n */\nexport const zoraLimitOrderBookAddress = {\n  8453: '0x7777777C783bAD88daCaf9A19E04238341E4497B',\n} as const\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777C783bAD88daCaf9A19E04238341E4497B)\n */\nexport const zoraLimitOrderBookConfig = {\n  address: zoraLimitOrderBookAddress,\n  abi: zoraLimitOrderBookABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraMints1155\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777d57c1C6e472fa379b7b3B6c6ba3835073)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777d57c1C6e472fa379b7b3B6c6ba3835073)\n */\nexport const zoraMints1155ABI = [\n  { type: 'constructor', inputs: [], stateMutability: 'nonpayable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'ETH_ADDRESS',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'MINIMUM_ERC20_PRICE',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'MINIMUM_ETH_PRICE',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'NAME',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'authority',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'balanceOf',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'balanceOfAccount',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'accounts', internalType: 'address[]', type: 'address[]' },\n      { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    name: 'balanceOfBatch',\n    outputs: [{ name: '', internalType: 'uint256[]', type: 'uint256[]' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'tokenConfig',\n        internalType: 'struct TokenConfig',\n        type: 'tuple',\n        components: [\n          { name: 'price', internalType: 'uint256', type: 'uint256' },\n          { name: 'tokenAddress', internalType: 'address', type: 'address' },\n          { name: 'redeemHandler', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    name: 'createToken',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'eip712Domain',\n    outputs: [\n      { name: 'fields', internalType: 'bytes1', type: 'bytes1' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'version', internalType: 'string', type: 'string' },\n      { name: 'chainId', internalType: 'uint256', type: 'uint256' },\n      { name: 'verifyingContract', internalType: 'address', type: 'address' },\n      { name: 'salt', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getManager',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'getTokenConfig',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct TokenConfig',\n        type: 'tuple',\n        components: [\n          { name: 'price', internalType: 'uint256', type: 'uint256' },\n          { name: 'tokenAddress', internalType: 'address', type: 'address' },\n          { name: 'redeemHandler', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitBatch',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'hashPermitBatch',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitSingle',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'hashPermitSingle',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'operator', internalType: 'address', type: 'address' },\n    ],\n    name: 'isApprovedForAll',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'isConsumingScheduledOp',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitBatch',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'isValidSignatureTransferBatch',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitSingle',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'isValidSignatureTransferSingle',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'tokenAddress', internalType: 'address', type: 'address' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'mintTokenWithERC20',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'mintTokenWithEth',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'name',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'nonceUsed',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n      { name: 'newBaseURI', internalType: 'string', type: 'string' },\n    ],\n    name: 'notifyURIsUpdated',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newUri', internalType: 'string', type: 'string' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'notifyUpdatedTokenURI',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitSingle',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitSafeTransfer',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitBatch',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitSafeTransferBatch',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'redeem',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct Redemption',\n        type: 'tuple',\n        components: [\n          { name: 'tokenAddress', internalType: 'address', type: 'address' },\n          { name: 'valueRedeemed', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'redeemBatch',\n    outputs: [\n      {\n        name: 'redemptions',\n        internalType: 'struct Redemption[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'tokenAddress', internalType: 'address', type: 'address' },\n          { name: 'valueRedeemed', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'values', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'safeBatchTransferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'safeTransferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'approved', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'setApprovalForAll',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newAuthority', internalType: 'address', type: 'address' },\n    ],\n    name: 'setAuthority',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'symbol',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'tokenExists',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'tokenPrice',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'call', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'transferBatchToManagerAndCall',\n    outputs: [{ name: 'callReturn', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'uri',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'account',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'operator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'approved', internalType: 'bool', type: 'bool', indexed: false },\n    ],\n    name: 'ApprovalForAll',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'authority',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'AuthorityUpdated',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'ContractURIUpdated' },\n  { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'price',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'tokenAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'TokenCreated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'operator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'ids',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n      {\n        name: 'values',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n    ],\n    name: 'TransferBatch',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'operator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false },\n      {\n        name: 'value',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'TransferSingle',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'value', internalType: 'string', type: 'string', indexed: false },\n      { name: 'id', internalType: 'uint256', type: 'uint256', indexed: true },\n    ],\n    name: 'URI',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'contractURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'baseURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'URIsUpdated',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'authority', internalType: 'address', type: 'address' }],\n    name: 'AccessManagedInvalidAuthority',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'delay', internalType: 'uint32', type: 'uint32' },\n    ],\n    name: 'AccessManagedRequiredDelay',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'caller', internalType: 'address', type: 'address' }],\n    name: 'AccessManagedUnauthorized',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'lengthA', internalType: 'uint256', type: 'uint256' },\n      { name: 'lengthB', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ArrayLengthMismatch',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'returnData', internalType: 'bytes', type: 'bytes' }],\n    name: 'CallFailed',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC1155InsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],\n    name: 'ERC1155InvalidApprover',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'idsLength', internalType: 'uint256', type: 'uint256' },\n      { name: 'valuesLength', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC1155InvalidArrayLength',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'operator', internalType: 'address', type: 'address' }],\n    name: 'ERC1155InvalidOperator',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],\n    name: 'ERC1155InvalidReceiver',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],\n    name: 'ERC1155InvalidSender',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'owner', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1155MissingApprovalForAll',\n  },\n  { type: 'error', inputs: [], name: 'ERC20TransferSlippage' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  { type: 'error', inputs: [], name: 'ETHTransferFailed' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'IncorrectAmountSent' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidRecipient' },\n  { type: 'error', inputs: [], name: 'InvalidShortString' },\n  { type: 'error', inputs: [], name: 'InvalidSignature' },\n  { type: 'error', inputs: [], name: 'InvalidTokenPrice' },\n  { type: 'error', inputs: [], name: 'NoUriForNonexistentToken' },\n  {\n    type: 'error',\n    inputs: [{ name: 'handler', internalType: 'address', type: 'address' }],\n    name: 'NotARedeemHandler',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'str', internalType: 'string', type: 'string' }],\n    name: 'StringTooLong',\n  },\n  { type: 'error', inputs: [], name: 'TokenAlreadyCreated' },\n  { type: 'error', inputs: [], name: 'TokenDoesNotExist' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'storedTokenAddress', internalType: 'address', type: 'address' },\n      {\n        name: 'expectedTokenAddress',\n        internalType: 'address',\n        type: 'address',\n      },\n    ],\n    name: 'TokenMismatch',\n  },\n  { type: 'error', inputs: [], name: 'TokenNotMintable' },\n] as const\n\n/**\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777d57c1C6e472fa379b7b3B6c6ba3835073)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777d57c1C6e472fa379b7b3B6c6ba3835073)\n */\nexport const zoraMints1155Address = {\n  7777777: '0x7777777d57c1C6e472fa379b7b3B6c6ba3835073',\n  999999999: '0x7777777d57c1C6e472fa379b7b3B6c6ba3835073',\n} as const\n\n/**\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777d57c1C6e472fa379b7b3B6c6ba3835073)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777d57c1C6e472fa379b7b3B6c6ba3835073)\n */\nexport const zoraMints1155Config = {\n  address: zoraMints1155Address,\n  abi: zoraMints1155ABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraMintsManagerImpl\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777770cA269366c7208aFcF36FE2C6F7f7608B)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777770cA269366c7208aFcF36FE2C6F7f7608B)\n */\nexport const zoraMintsManagerImplABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: '_premintExecutor',\n        internalType: 'contract IZoraCreator1155PremintExecutorAllVersions',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'UPGRADE_INTERFACE_VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'callFrom', internalType: 'address', type: 'address' },\n      { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'call', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'callWithTransferTokens',\n    outputs: [\n      { name: 'success', internalType: 'bool', type: 'bool' },\n      { name: 'result', internalType: 'bytes', type: 'bytes' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'bytes4', type: 'bytes4' },\n    ],\n    name: 'canCall',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'zoraCreator1155Contract',\n        internalType: 'contract IMintWithSparks',\n        type: 'address',\n      },\n      { name: 'minter', internalType: 'contract IMinter1155', type: 'address' },\n      {\n        name: 'zoraCreator1155TokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n      {\n        name: 'collectMintArguments',\n        internalType: 'struct ICollectWithZoraSparks.CollectMintArguments',\n        type: 'tuple',\n        components: [\n          {\n            name: 'mintRewardsRecipients',\n            internalType: 'address[]',\n            type: 'address[]',\n          },\n          { name: 'minterArguments', internalType: 'bytes', type: 'bytes' },\n          { name: 'mintComment', internalType: 'string', type: 'string' },\n        ],\n      },\n    ],\n    name: 'collect',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'contractConfig',\n        internalType: 'struct ContractWithAdditionalAdminsCreationConfig',\n        type: 'tuple',\n        components: [\n          { name: 'contractAdmin', internalType: 'address', type: 'address' },\n          { name: 'contractURI', internalType: 'string', type: 'string' },\n          { name: 'contractName', internalType: 'string', type: 'string' },\n          {\n            name: 'additionalAdmins',\n            internalType: 'address[]',\n            type: 'address[]',\n          },\n        ],\n      },\n      { name: 'tokenContract', internalType: 'address', type: 'address' },\n      {\n        name: 'premintConfig',\n        internalType: 'struct PremintConfigEncoded',\n        type: 'tuple',\n        components: [\n          { name: 'uid', internalType: 'uint32', type: 'uint32' },\n          { name: 'version', internalType: 'uint32', type: 'uint32' },\n          { name: 'deleted', internalType: 'bool', type: 'bool' },\n          { name: 'tokenConfig', internalType: 'bytes', type: 'bytes' },\n          {\n            name: 'premintConfigVersion',\n            internalType: 'bytes32',\n            type: 'bytes32',\n          },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n      {\n        name: 'mintArguments',\n        internalType: 'struct MintArguments',\n        type: 'tuple',\n        components: [\n          { name: 'mintRecipient', internalType: 'address', type: 'address' },\n          { name: 'mintComment', internalType: 'string', type: 'string' },\n          {\n            name: 'mintRewardsRecipients',\n            internalType: 'address[]',\n            type: 'address[]',\n          },\n        ],\n      },\n      { name: 'firstMinter', internalType: 'address', type: 'address' },\n      { name: 'signerContract', internalType: 'address', type: 'address' },\n    ],\n    name: 'collectPremint',\n    outputs: [\n      {\n        name: 'result',\n        internalType: 'struct PremintResult',\n        type: 'tuple',\n        components: [\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'createdNewContract', internalType: 'bool', type: 'bool' },\n        ],\n      },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'contractConfig',\n        internalType: 'struct ContractCreationConfig',\n        type: 'tuple',\n        components: [\n          { name: 'contractAdmin', internalType: 'address', type: 'address' },\n          { name: 'contractURI', internalType: 'string', type: 'string' },\n          { name: 'contractName', internalType: 'string', type: 'string' },\n        ],\n      },\n      {\n        name: 'premintConfig',\n        internalType: 'struct PremintConfigV2',\n        type: 'tuple',\n        components: [\n          {\n            name: 'tokenConfig',\n            internalType: 'struct TokenCreationConfigV2',\n            type: 'tuple',\n            components: [\n              { name: 'tokenURI', internalType: 'string', type: 'string' },\n              { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n              {\n                name: 'maxTokensPerAddress',\n                internalType: 'uint64',\n                type: 'uint64',\n              },\n              { name: 'pricePerToken', internalType: 'uint96', type: 'uint96' },\n              { name: 'mintStart', internalType: 'uint64', type: 'uint64' },\n              { name: 'mintDuration', internalType: 'uint64', type: 'uint64' },\n              { name: 'royaltyBPS', internalType: 'uint32', type: 'uint32' },\n              {\n                name: 'payoutRecipient',\n                internalType: 'address',\n                type: 'address',\n              },\n              {\n                name: 'fixedPriceMinter',\n                internalType: 'address',\n                type: 'address',\n              },\n              {\n                name: 'createReferral',\n                internalType: 'address',\n                type: 'address',\n              },\n            ],\n          },\n          { name: 'uid', internalType: 'uint32', type: 'uint32' },\n          { name: 'version', internalType: 'uint32', type: 'uint32' },\n          { name: 'deleted', internalType: 'bool', type: 'bool' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n      {\n        name: 'mintArguments',\n        internalType: 'struct MintArguments',\n        type: 'tuple',\n        components: [\n          { name: 'mintRecipient', internalType: 'address', type: 'address' },\n          { name: 'mintComment', internalType: 'string', type: 'string' },\n          {\n            name: 'mintRewardsRecipients',\n            internalType: 'address[]',\n            type: 'address[]',\n          },\n        ],\n      },\n      { name: 'signerContract', internalType: 'address', type: 'address' },\n    ],\n    name: 'collectPremintV2',\n    outputs: [\n      {\n        name: 'result',\n        internalType: 'struct PremintResult',\n        type: 'tuple',\n        components: [\n          { name: 'contractAddress', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'createdNewContract', internalType: 'bool', type: 'bool' },\n        ],\n      },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'tokenConfig',\n        internalType: 'struct TokenConfig',\n        type: 'tuple',\n        components: [\n          { name: 'price', internalType: 'uint256', type: 'uint256' },\n          { name: 'tokenAddress', internalType: 'address', type: 'address' },\n          { name: 'redeemHandler', internalType: 'address', type: 'address' },\n        ],\n      },\n      { name: 'defaultMintable', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'createToken',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'minterArguments', internalType: 'bytes', type: 'bytes' }],\n    name: 'decodeMintRecipientAndComment',\n    outputs: [\n      { name: 'mintTo', internalType: 'address', type: 'address' },\n      { name: 'mintComment', internalType: 'string', type: 'string' },\n    ],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getEthPrice',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'defaultOwner', internalType: 'address', type: 'address' },\n      { name: 'zoraSparksSalt', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'zoraSparksCreationCode', internalType: 'bytes', type: 'bytes' },\n      { name: 'initialEthTokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'initialEthTokenPrice',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n      { name: 'newBaseURI', internalType: 'string', type: 'string' },\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n    ],\n    name: 'initialize',\n    outputs: [\n      {\n        name: 'mints',\n        internalType: 'contract IZoraSparks1155',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenAddress', internalType: 'address', type: 'address' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'mintWithERC20',\n    outputs: [\n      { name: 'mintableTokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'mintWithEth',\n    outputs: [\n      { name: 'mintableTokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'mintableEthToken',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'values', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC1155BatchReceived',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'onERC1155Received',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenAddress', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'setDefaultMintable',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n      { name: 'newBaseURI', internalType: 'string', type: 'string' },\n      {\n        name: 'tokenIdsToNotifyUpdate',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n      },\n    ],\n    name: 'setMetadataURIs',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'uri',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraSparks1155',\n    outputs: [\n      { name: '', internalType: 'contract IZoraSparks1155', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'tokenIds',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: true,\n      },\n      {\n        name: 'quantities',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n      {\n        name: 'zoraCreator1155Contract',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'zoraCreator1155TokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n    ],\n    name: 'Collected',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'tokenAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'DefaultMintableTokenSet',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenContract',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'quantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'comment',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'MintComment',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'contractURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'baseURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'URIsUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'lengthA', internalType: 'uint256', type: 'uint256' },\n      { name: 'lengthB', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ArrayLengthMismatch',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'user', internalType: 'address', type: 'address' },\n    ],\n    name: 'Burn_NotOwnerOrApproved',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'reason', internalType: 'bytes', type: 'bytes' }],\n    name: 'CallFailed',\n  },\n  { type: 'error', inputs: [], name: 'Call_TokenIdMismatch' },\n  { type: 'error', inputs: [], name: 'CallerNotZoraCreator1155' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'totalMinted', internalType: 'uint256', type: 'uint256' },\n      { name: 'maxSupply', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'CannotMintMoreTokens',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'proposedAddress', internalType: 'address', type: 'address' },\n    ],\n    name: 'Config_TransferHookNotSupported',\n  },\n  { type: 'error', inputs: [], name: 'Create2EmptyBytecode' },\n  { type: 'error', inputs: [], name: 'Create2FailedDeployment' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'Create2InsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'DefaultOwnerCannotBeZero' },\n  { type: 'error', inputs: [], name: 'ERC1155BatchReceivedCallFailed' },\n  { type: 'error', inputs: [], name: 'ERC1155_MINT_TO_ZERO_ADDRESS' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  { type: 'error', inputs: [], name: 'ERC20TransferSlippage' },\n  { type: 'error', inputs: [], name: 'ETHTransferFailed' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ETHWithdrawFailed',\n  },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'FirstMinterAddressZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n      { name: 'contractValue', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'FundsWithdrawInsolvent',\n  },\n  { type: 'error', inputs: [], name: 'IncorrectAmountSent' },\n  { type: 'error', inputs: [], name: 'InvalidAdminAction' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'mintTo', internalType: 'address', type: 'address' },\n      { name: 'merkleProof', internalType: 'bytes32[]', type: 'bytes32[]' },\n      { name: 'merkleRoot', internalType: 'bytes32', type: 'bytes32' },\n    ],\n    name: 'InvalidMerkleProof',\n  },\n  { type: 'error', inputs: [], name: 'InvalidMintSchedule' },\n  { type: 'error', inputs: [], name: 'InvalidOwnerForAssociatedZoraSparks' },\n  { type: 'error', inputs: [], name: 'InvalidPremintVersion' },\n  { type: 'error', inputs: [], name: 'InvalidRecipient' },\n  { type: 'error', inputs: [], name: 'InvalidSignature' },\n  { type: 'error', inputs: [], name: 'InvalidSignatureVersion' },\n  {\n    type: 'error',\n    inputs: [{ name: 'magicValue', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'InvalidTokenPrice' },\n  { type: 'error', inputs: [], name: 'MintNotYetStarted' },\n  { type: 'error', inputs: [], name: 'MintWithSparksNotSupportedOnContract' },\n  { type: 'error', inputs: [], name: 'Mint_InsolventSaleTransfer' },\n  { type: 'error', inputs: [], name: 'Mint_InvalidMintArrayLength' },\n  { type: 'error', inputs: [], name: 'Mint_TokenIDMintNotAllowed' },\n  { type: 'error', inputs: [], name: 'Mint_UnknownCommand' },\n  { type: 'error', inputs: [], name: 'Mint_ValueTransferFail' },\n  { type: 'error', inputs: [], name: 'MinterContractAlreadyExists' },\n  { type: 'error', inputs: [], name: 'MinterContractDoesNotExist' },\n  { type: 'error', inputs: [], name: 'NewOwnerNeedsToBeAdmin' },\n  { type: 'error', inputs: [], name: 'NoTokensTransferred' },\n  { type: 'error', inputs: [], name: 'NoUriForNonexistentToken' },\n  { type: 'error', inputs: [], name: 'NonEthRedemption' },\n  {\n    type: 'error',\n    inputs: [{ name: 'handler', internalType: 'address', type: 'address' }],\n    name: 'NotARedeemHandler',\n  },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotSelfCall' },\n  { type: 'error', inputs: [], name: 'NotZoraSparks1155' },\n  { type: 'error', inputs: [], name: 'OnlyTransfersFromZoraSparks' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'PremintDeleted' },\n  { type: 'error', inputs: [], name: 'PremintExecutorCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'amount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ProtocolRewardsWithdrawFailed',\n  },\n  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },\n  { type: 'error', inputs: [], name: 'Renderer_NotValidRendererContract' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'targetContract', internalType: 'address', type: 'address' },\n    ],\n    name: 'Sale_CannotCallNonSalesContract',\n  },\n  { type: 'error', inputs: [], name: 'TokenAlreadyCreated' },\n  { type: 'error', inputs: [], name: 'TokenDoesNotExist' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'uint256', type: 'uint256' },\n      { name: 'actual', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'TokenIdMismatch',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'storedTokenAddress', internalType: 'address', type: 'address' },\n      {\n        name: 'expectedTokenAddress',\n        internalType: 'address',\n        type: 'address',\n      },\n    ],\n    name: 'TokenMismatch',\n  },\n  { type: 'error', inputs: [], name: 'TokenNotMintable' },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'selector', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'UnknownUserAction',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'string', type: 'string' },\n      { name: 'actual', internalType: 'string', type: 'string' },\n    ],\n    name: 'UpgradeToMismatchedContractName',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n      { name: 'requestedAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserExceedsMintLimit',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'user', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'role', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'UserMissingRoleForToken',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'premintSignerContractFailedToRecoverSigner',\n  },\n  { type: 'error', inputs: [], name: 'premintSignerContractNotAContract' },\n] as const\n\n/**\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777770cA269366c7208aFcF36FE2C6F7f7608B)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777770cA269366c7208aFcF36FE2C6F7f7608B)\n */\nexport const zoraMintsManagerImplAddress = {\n  7777777: '0x77777770cA269366c7208aFcF36FE2C6F7f7608B',\n  999999999: '0x77777770cA269366c7208aFcF36FE2C6F7f7608B',\n} as const\n\n/**\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777770cA269366c7208aFcF36FE2C6F7f7608B)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777770cA269366c7208aFcF36FE2C6F7f7608B)\n */\nexport const zoraMintsManagerImplConfig = {\n  address: zoraMintsManagerImplAddress,\n  abi: zoraMintsManagerImplABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraRouter\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0x77777777Eb762Cf86F634763e79d17dE44330887)\n */\nexport const zoraRouterABI = [\n  {\n    type: 'constructor',\n    inputs: [\n      {\n        name: 'poolManager_',\n        internalType: 'contract IPoolManager',\n        type: 'address',\n      },\n      {\n        name: 'zoraLimitOrderBook_',\n        internalType: 'contract IZoraLimitOrderBook',\n        type: 'address',\n      },\n      {\n        name: 'swapRouter_',\n        internalType: 'contract ISwapRouter',\n        type: 'address',\n      },\n      { name: 'permit2_', internalType: 'address', type: 'address' },\n      { name: 'owner_', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  { type: 'receive', stateMutability: 'payable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'getLimitOrderConfig',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct LimitOrderConfig',\n        type: 'tuple',\n        components: [\n          { name: 'multiples', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'percentages', internalType: 'uint256[]', type: 'uint256[]' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'msgSender',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'poolManager',\n    outputs: [\n      { name: '', internalType: 'contract IPoolManager', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'config',\n        internalType: 'struct LimitOrderConfig',\n        type: 'tuple',\n        components: [\n          { name: 'multiples', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'percentages', internalType: 'uint256[]', type: 'uint256[]' },\n        ],\n      },\n    ],\n    name: 'setLimitOrderConfig',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'swapRouter',\n    outputs: [\n      { name: '', internalType: 'contract ISwapRouter', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'params',\n        internalType: 'struct SwapWithLimitOrders.SwapWithLimitOrdersParams',\n        type: 'tuple',\n        components: [\n          { name: 'recipient', internalType: 'address', type: 'address' },\n          {\n            name: 'limitOrderConfig',\n            internalType: 'struct LimitOrderConfig',\n            type: 'tuple',\n            components: [\n              {\n                name: 'multiples',\n                internalType: 'uint256[]',\n                type: 'uint256[]',\n              },\n              {\n                name: 'percentages',\n                internalType: 'uint256[]',\n                type: 'uint256[]',\n              },\n            ],\n          },\n          { name: 'inputCurrency', internalType: 'address', type: 'address' },\n          { name: 'inputAmount', internalType: 'uint256', type: 'uint256' },\n          { name: 'v3Route', internalType: 'bytes', type: 'bytes' },\n          {\n            name: 'v4Route',\n            internalType: 'struct PoolKey[]',\n            type: 'tuple[]',\n            components: [\n              { name: 'currency0', internalType: 'Currency', type: 'address' },\n              { name: 'currency1', internalType: 'Currency', type: 'address' },\n              { name: 'fee', internalType: 'uint24', type: 'uint24' },\n              { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n              {\n                name: 'hooks',\n                internalType: 'contract IHooks',\n                type: 'address',\n              },\n            ],\n          },\n          { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'swapWithLimitOrders',\n    outputs: [{ name: 'delta', internalType: 'BalanceDelta', type: 'int256' }],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],\n    name: 'unlockCallback',\n    outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraLimitOrderBook',\n    outputs: [\n      {\n        name: '',\n        internalType: 'contract IZoraLimitOrderBook',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'multiples',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n      {\n        name: 'percentages',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n    ],\n    name: 'LimitOrderConfigUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'recipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'poolKey',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'tickBeforeSwap',\n        internalType: 'int24',\n        type: 'int24',\n        indexed: false,\n      },\n      {\n        name: 'tickAfterSwap',\n        internalType: 'int24',\n        type: 'int24',\n        indexed: false,\n      },\n      {\n        name: 'amount0',\n        internalType: 'int128',\n        type: 'int128',\n        indexed: false,\n      },\n      {\n        name: 'amount1',\n        internalType: 'int128',\n        type: 'int128',\n        indexed: false,\n      },\n      {\n        name: 'sqrtPriceX96',\n        internalType: 'uint160',\n        type: 'uint160',\n        indexed: false,\n      },\n      {\n        name: 'orders',\n        internalType: 'struct SwapWithLimitOrders.CreatedOrder[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'orderId', internalType: 'bytes32', type: 'bytes32' },\n          { name: 'multiple', internalType: 'uint256', type: 'uint256' },\n          { name: 'percentage', internalType: 'uint256', type: 'uint256' },\n        ],\n        indexed: false,\n      },\n    ],\n    name: 'SwapWithLimitOrdersExecuted',\n  },\n  { type: 'error', inputs: [], name: 'EmptyV4Route' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'inputAmount', internalType: 'uint256', type: 'uint256' },\n      { name: 'availableAmount', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InsufficientInputCurrency',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientOutputAmount' },\n  { type: 'error', inputs: [], name: 'InsufficientTransferFunds' },\n  { type: 'error', inputs: [], name: 'InvalidLimitOrderConfig' },\n  { type: 'error', inputs: [], name: 'InvalidMultiple' },\n  { type: 'error', inputs: [], name: 'InvalidPercent' },\n  { type: 'error', inputs: [], name: 'LengthMismatch' },\n  { type: 'error', inputs: [], name: 'OnlyPoolManager' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'PercentOverflow' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  { type: 'error', inputs: [], name: 'UnsafeCast' },\n  { type: 'error', inputs: [], name: 'V3RouteDoesNotConnectToV4RouteStart' },\n  { type: 'error', inputs: [], name: 'ZeroSwapDelta' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ArrayLengthMismatch' },\n  { type: 'error', inputs: [], name: 'CallerNotPermitted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'orderId', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n      { name: 'actualCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'CoinMismatch',\n  },\n  { type: 'error', inputs: [], name: 'InsufficientForwardedFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientTransferFunds' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'startTick', internalType: 'int24', type: 'int24' },\n      { name: 'endTick', internalType: 'int24', type: 'int24' },\n      { name: 'isCurrency0', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'InvalidFillWindow',\n  },\n  { type: 'error', inputs: [], name: 'InvalidOrder' },\n  { type: 'error', inputs: [], name: 'InvalidPoolKey' },\n  { type: 'error', inputs: [], name: 'MaxFillCountCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'withdrawn', internalType: 'uint256', type: 'uint256' },\n      { name: 'minAmountOut', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MinAmountNotReached',\n  },\n  { type: 'error', inputs: [], name: 'NativeValueMismatch' },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  { type: 'error', inputs: [], name: 'OnlyZoraHook' },\n  { type: 'error', inputs: [], name: 'OrderClosed' },\n  { type: 'error', inputs: [], name: 'OrderFillable' },\n  { type: 'error', inputs: [], name: 'OrderNotMaker' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'PermittedCallersLengthMismatch' },\n  { type: 'error', inputs: [], name: 'RouterMsgSenderInvalid' },\n  { type: 'error', inputs: [], name: 'UnknownCallback' },\n  { type: 'error', inputs: [], name: 'UnlockedFillNotAllowed' },\n  { type: 'error', inputs: [], name: 'WethTransferFailed' },\n  { type: 'error', inputs: [], name: 'ZeroMaker' },\n  { type: 'error', inputs: [], name: 'ZeroOrderSize' },\n  { type: 'error', inputs: [], name: 'ZeroRealizedOrder' },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'AlreadyOwner' },\n  { type: 'error', inputs: [], name: 'CannotMintZeroLiquidity' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'DopplerPoolMustHaveMoreThan2DiscoveryPositions',\n  },\n  { type: 'error', inputs: [], name: 'ECDSAInvalidSignature' },\n  {\n    type: 'error',\n    inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }],\n    name: 'ECDSAInvalidSignatureLength',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 's', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'ECDSAInvalidSignatureS',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'spender', internalType: 'address', type: 'address' },\n      { name: 'allowance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientAllowance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC20InsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidApprover',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidReceiver',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSender',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'spender', internalType: 'address', type: 'address' }],\n    name: 'ERC20InvalidSpender',\n  },\n  { type: 'error', inputs: [], name: 'ERC20TransferAmountMismatch' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'signer', internalType: 'address', type: 'address' },\n      { name: 'owner', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC2612InvalidSigner',\n  },\n  { type: 'error', inputs: [], name: 'EthAmountMismatch' },\n  { type: 'error', inputs: [], name: 'EthAmountTooSmall' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'EthTransferInvalid' },\n  { type: 'error', inputs: [], name: 'InitialOrderSizeTooLarge' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InsufficientLiquidity' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidCurrency' },\n  { type: 'error', inputs: [], name: 'InvalidCurrencyLowerTick' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidMarketType' },\n  { type: 'error', inputs: [], name: 'InvalidPoolVersion' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'tickLower', internalType: 'int24', type: 'int24' },\n      { name: 'tickUpper', internalType: 'int24', type: 'int24' },\n    ],\n    name: 'InvalidTickRangeMisordered',\n  },\n  { type: 'error', inputs: [], name: 'InvalidWethLowerTick' },\n  { type: 'error', inputs: [], name: 'LegacyPoolMustHaveOneDiscoveryPosition' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyGraduated' },\n  { type: 'error', inputs: [], name: 'MarketNotGraduated' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'limit', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'MaxShareToBeSoldExceeded',\n  },\n  { type: 'error', inputs: [], name: 'NameIsRequired' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'NotOwner' },\n  { type: 'error', inputs: [], name: 'NumDiscoveryPositionsOutOfRange' },\n  { type: 'error', inputs: [], name: 'OneOwnerRequired' },\n  { type: 'error', inputs: [], name: 'OnlyOwner' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'pool', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyPool',\n  },\n  { type: 'error', inputs: [], name: 'OnlyWeth' },\n  { type: 'error', inputs: [], name: 'OwnerCannotBeAddressZero' },\n  { type: 'error', inputs: [], name: 'SlippageBoundsExceeded' },\n  { type: 'error', inputs: [], name: 'UseRevokeOwnershipToRemoveSelf' },\n  { type: 'error', inputs: [], name: 'CoinVersionLookupCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'EthTransferFailed' },\n  { type: 'error', inputs: [], name: 'HookNotImplemented' },\n  {\n    type: 'error',\n    inputs: [{ name: 'callbackId', internalType: 'uint8', type: 'uint8' }],\n    name: 'InvalidCallbackId',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'newHook', internalType: 'address', type: 'address' }],\n    name: 'InvalidNewHook',\n  },\n  {\n    type: 'error',\n    inputs: [\n      {\n        name: 'key',\n        internalType: 'struct PoolKey',\n        type: 'tuple',\n        components: [\n          { name: 'currency0', internalType: 'Currency', type: 'address' },\n          { name: 'currency1', internalType: 'Currency', type: 'address' },\n          { name: 'fee', internalType: 'uint24', type: 'uint24' },\n          { name: 'tickSpacing', internalType: 'int24', type: 'int24' },\n          { name: 'hooks', internalType: 'contract IHooks', type: 'address' },\n        ],\n      },\n    ],\n    name: 'NoCoinForHook',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'coin', internalType: 'address', type: 'address' }],\n    name: 'NotACoin',\n  },\n  { type: 'error', inputs: [], name: 'NotPoolManager' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'expectedCoin', internalType: 'address', type: 'address' },\n    ],\n    name: 'OnlyCoin',\n  },\n  { type: 'error', inputs: [], name: 'PathMustHaveAtLeastOneStep' },\n  { type: 'error', inputs: [], name: 'SafeCastOverflow' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'TrustedMsgSenderLookupCannotBeZeroAddress',\n  },\n  { type: 'error', inputs: [], name: 'UpgradeGateCannotBeZeroAddress' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'oldHook', internalType: 'address', type: 'address' },\n      { name: 'newHook', internalType: 'address', type: 'address' },\n    ],\n    name: 'UpgradePathNotRegistered',\n  },\n  { type: 'error', inputs: [], name: 'ZoraHookRegistryCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'ZoraLimitOrderBookCannotBeZeroAddress' },\n  { type: 'error', inputs: [], name: 'AlreadyUnlocked' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'currency0', internalType: 'address', type: 'address' },\n      { name: 'currency1', internalType: 'address', type: 'address' },\n    ],\n    name: 'CurrenciesOutOfOrderOrEqual',\n  },\n  { type: 'error', inputs: [], name: 'CurrencyNotSettled' },\n  { type: 'error', inputs: [], name: 'InvalidCaller' },\n  { type: 'error', inputs: [], name: 'ManagerLocked' },\n  { type: 'error', inputs: [], name: 'MustClearExactPositiveDelta' },\n  { type: 'error', inputs: [], name: 'NonzeroNativeValue' },\n  { type: 'error', inputs: [], name: 'PoolNotInitialized' },\n  { type: 'error', inputs: [], name: 'ProtocolFeeCurrencySynced' },\n  {\n    type: 'error',\n    inputs: [{ name: 'fee', internalType: 'uint24', type: 'uint24' }],\n    name: 'ProtocolFeeTooLarge',\n  },\n  { type: 'error', inputs: [], name: 'SwapAmountCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],\n    name: 'TickSpacingTooLarge',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'tickSpacing', internalType: 'int24', type: 'int24' }],\n    name: 'TickSpacingTooSmall',\n  },\n  { type: 'error', inputs: [], name: 'UnauthorizedDynamicLPFeeUpdate' },\n  { type: 'error', inputs: [], name: 'ETHNotAccepted' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'commandIndex', internalType: 'uint256', type: 'uint256' },\n      { name: 'message', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'ExecutionFailed',\n  },\n  { type: 'error', inputs: [], name: 'InvalidEthSender' },\n  { type: 'error', inputs: [], name: 'LengthMismatch' },\n  { type: 'error', inputs: [], name: 'TransactionDeadlinePassed' },\n] as const\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0x77777777Eb762Cf86F634763e79d17dE44330887)\n */\nexport const zoraRouterAddress = {\n  8453: '0x77777777Eb762Cf86F634763e79d17dE44330887',\n} as const\n\n/**\n * [__View Contract on Base Basescan__](https://basescan.org/address/0x77777777Eb762Cf86F634763e79d17dE44330887)\n */\nexport const zoraRouterConfig = {\n  address: zoraRouterAddress,\n  abi: zoraRouterABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraSparks1155\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n */\nexport const zoraSparks1155ABI = [\n  { type: 'constructor', inputs: [], stateMutability: 'nonpayable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'ETH_ADDRESS',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'MINIMUM_ERC20_PRICE',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'MINIMUM_ETH_PRICE',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'NAME',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'authority',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'balanceOf',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'balanceOfAccount',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'accounts', internalType: 'address[]', type: 'address[]' },\n      { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    name: 'balanceOfBatch',\n    outputs: [{ name: '', internalType: 'uint256[]', type: 'uint256[]' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'tokenConfig',\n        internalType: 'struct TokenConfig',\n        type: 'tuple',\n        components: [\n          { name: 'price', internalType: 'uint256', type: 'uint256' },\n          { name: 'tokenAddress', internalType: 'address', type: 'address' },\n          { name: 'redeemHandler', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    name: 'createToken',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'eip712Domain',\n    outputs: [\n      { name: 'fields', internalType: 'bytes1', type: 'bytes1' },\n      { name: 'name', internalType: 'string', type: 'string' },\n      { name: 'version', internalType: 'string', type: 'string' },\n      { name: 'chainId', internalType: 'uint256', type: 'uint256' },\n      { name: 'verifyingContract', internalType: 'address', type: 'address' },\n      { name: 'salt', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'getTokenConfig',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct TokenConfig',\n        type: 'tuple',\n        components: [\n          { name: 'price', internalType: 'uint256', type: 'uint256' },\n          { name: 'tokenAddress', internalType: 'address', type: 'address' },\n          { name: 'redeemHandler', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitBatch',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'hashPermitBatch',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitSingle',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    name: 'hashPermitSingle',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'operator', internalType: 'address', type: 'address' },\n    ],\n    name: 'isApprovedForAll',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'isConsumingScheduledOp',\n    outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitBatch',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'isValidSignatureTransferBatch',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitSingle',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'isValidSignatureTransferSingle',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'tokenAddress', internalType: 'address', type: 'address' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'mintTokenWithERC20',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'mintTokenWithEth',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'name',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'owner', internalType: 'address', type: 'address' },\n      { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'nonceUsed',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n      { name: 'newBaseURI', internalType: 'string', type: 'string' },\n    ],\n    name: 'notifyURIsUpdated',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newUri', internalType: 'string', type: 'string' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'notifyUpdatedTokenURI',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitSingle',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n          { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitSafeTransfer',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      {\n        name: 'permit',\n        internalType: 'struct IZoraSparks1155Managed.PermitBatch',\n        type: 'tuple',\n        components: [\n          { name: 'owner', internalType: 'address', type: 'address' },\n          { name: 'to', internalType: 'address', type: 'address' },\n          { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n          { name: 'safeTransferData', internalType: 'bytes', type: 'bytes' },\n          { name: 'deadline', internalType: 'uint256', type: 'uint256' },\n          { name: 'nonce', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n      { name: 'signature', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'permitSafeTransferBatch',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'redeem',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct Redemption',\n        type: 'tuple',\n        components: [\n          { name: 'tokenAddress', internalType: 'address', type: 'address' },\n          { name: 'valueRedeemed', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenIds', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'quantities', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'redeemBatch',\n    outputs: [\n      {\n        name: 'redemptions',\n        internalType: 'struct Redemption[]',\n        type: 'tuple[]',\n        components: [\n          { name: 'tokenAddress', internalType: 'address', type: 'address' },\n          { name: 'valueRedeemed', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'values', internalType: 'uint256[]', type: 'uint256[]' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'safeBatchTransferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'from', internalType: 'address', type: 'address' },\n      { name: 'to', internalType: 'address', type: 'address' },\n      { name: 'id', internalType: 'uint256', type: 'uint256' },\n      { name: 'value', internalType: 'uint256', type: 'uint256' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'safeTransferFrom',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'approved', internalType: 'bool', type: 'bool' },\n    ],\n    name: 'setApprovalForAll',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newAuthority', internalType: 'address', type: 'address' },\n    ],\n    name: 'setAuthority',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'symbol',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'tokenExists',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'tokenPrice',\n    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'uri',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'account',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'operator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'approved', internalType: 'bool', type: 'bool', indexed: false },\n    ],\n    name: 'ApprovalForAll',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'authority',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'AuthorityUpdated',\n  },\n  { type: 'event', anonymous: false, inputs: [], name: 'ContractURIUpdated' },\n  { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'price',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'tokenAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'TokenCreated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'operator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      {\n        name: 'ids',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n      {\n        name: 'values',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n    ],\n    name: 'TransferBatch',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'from',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      { name: 'to', internalType: 'address', type: 'address', indexed: false },\n      {\n        name: 'tokenIds',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n      {\n        name: 'quantities',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n        indexed: false,\n      },\n      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },\n    ],\n    name: 'TransferBatchWithData',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'operator',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      { name: 'from', internalType: 'address', type: 'address', indexed: true },\n      { name: 'to', internalType: 'address', type: 'address', indexed: true },\n      { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false },\n      {\n        name: 'value',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'TransferSingle',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'from',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      { name: 'to', internalType: 'address', type: 'address', indexed: false },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'quantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },\n    ],\n    name: 'TransferSingleWithData',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      { name: 'value', internalType: 'string', type: 'string', indexed: false },\n      { name: 'id', internalType: 'uint256', type: 'uint256', indexed: true },\n    ],\n    name: 'URI',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'contractURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'baseURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'URIsUpdated',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'authority', internalType: 'address', type: 'address' }],\n    name: 'AccessManagedInvalidAuthority',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: 'delay', internalType: 'uint32', type: 'uint32' },\n    ],\n    name: 'AccessManagedRequiredDelay',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'caller', internalType: 'address', type: 'address' }],\n    name: 'AccessManagedUnauthorized',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'lengthA', internalType: 'uint256', type: 'uint256' },\n      { name: 'lengthB', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ArrayLengthMismatch',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'returnData', internalType: 'bytes', type: 'bytes' }],\n    name: 'CallFailed',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'sender', internalType: 'address', type: 'address' },\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC1155InsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'approver', internalType: 'address', type: 'address' }],\n    name: 'ERC1155InvalidApprover',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'idsLength', internalType: 'uint256', type: 'uint256' },\n      { name: 'valuesLength', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ERC1155InvalidArrayLength',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'operator', internalType: 'address', type: 'address' }],\n    name: 'ERC1155InvalidOperator',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'receiver', internalType: 'address', type: 'address' }],\n    name: 'ERC1155InvalidReceiver',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'sender', internalType: 'address', type: 'address' }],\n    name: 'ERC1155InvalidSender',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'operator', internalType: 'address', type: 'address' },\n      { name: 'owner', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1155MissingApprovalForAll',\n  },\n  { type: 'error', inputs: [], name: 'ERC20TransferSlippage' },\n  {\n    type: 'error',\n    inputs: [{ name: 'deadline', internalType: 'uint256', type: 'uint256' }],\n    name: 'ERC2612ExpiredSignature',\n  },\n  { type: 'error', inputs: [], name: 'ETHTransferFailed' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'IncorrectAmountSent' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'account', internalType: 'address', type: 'address' },\n      { name: 'currentNonce', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'InvalidAccountNonce',\n  },\n  { type: 'error', inputs: [], name: 'InvalidRecipient' },\n  { type: 'error', inputs: [], name: 'InvalidShortString' },\n  { type: 'error', inputs: [], name: 'InvalidSignature' },\n  { type: 'error', inputs: [], name: 'InvalidTokenPrice' },\n  { type: 'error', inputs: [], name: 'NoUriForNonexistentToken' },\n  {\n    type: 'error',\n    inputs: [{ name: 'handler', internalType: 'address', type: 'address' }],\n    name: 'NotARedeemHandler',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'str', internalType: 'string', type: 'string' }],\n    name: 'StringTooLong',\n  },\n  { type: 'error', inputs: [], name: 'TokenAlreadyCreated' },\n  { type: 'error', inputs: [], name: 'TokenDoesNotExist' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'storedTokenAddress', internalType: 'address', type: 'address' },\n      {\n        name: 'expectedTokenAddress',\n        internalType: 'address',\n        type: 'address',\n      },\n    ],\n    name: 'TokenMismatch',\n  },\n  { type: 'error', inputs: [], name: 'TokenNotMintable' },\n] as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n */\nexport const zoraSparks1155Address = {\n  8453: '0x7777777b3eA6C126942BB14dD5C3C11D365C385D',\n  84532: '0x7777777b3eA6C126942BB14dD5C3C11D365C385D',\n  7777777: '0x7777777b3eA6C126942BB14dD5C3C11D365C385D',\n  999999999: '0x7777777b3eA6C126942BB14dD5C3C11D365C385D',\n} as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x7777777b3eA6C126942BB14dD5C3C11D365C385D)\n */\nexport const zoraSparks1155Config = {\n  address: zoraSparks1155Address,\n  abi: zoraSparks1155ABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// ZoraSparksManagerImpl\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n */\nexport const zoraSparksManagerImplABI = [\n  { type: 'constructor', inputs: [], stateMutability: 'nonpayable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'UPGRADE_INTERFACE_VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'caller', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'bytes4', type: 'bytes4' },\n    ],\n    name: 'canCall',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'tokenConfig',\n        internalType: 'struct TokenConfig',\n        type: 'tuple',\n        components: [\n          { name: 'price', internalType: 'uint256', type: 'uint256' },\n          { name: 'tokenAddress', internalType: 'address', type: 'address' },\n          { name: 'redeemHandler', internalType: 'address', type: 'address' },\n        ],\n      },\n    ],\n    name: 'createToken',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'defaultOwner', internalType: 'address', type: 'address' },\n      { name: 'zoraSparksSalt', internalType: 'bytes32', type: 'bytes32' },\n      { name: 'zoraSparksCreationCode', internalType: 'bytes', type: 'bytes' },\n      { name: 'initialEthTokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'initialEthTokenPrice',\n        internalType: 'uint256',\n        type: 'uint256',\n      },\n      { name: 'newBaseURI', internalType: 'string', type: 'string' },\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n    ],\n    name: 'initialize',\n    outputs: [\n      {\n        name: 'sparks',\n        internalType: 'contract IZoraSparks1155',\n        type: 'address',\n      },\n    ],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'tokenAddress', internalType: 'address', type: 'address' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'mintWithERC20',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'recipient', internalType: 'address', type: 'address' },\n    ],\n    name: 'mintWithEth',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newContractURI', internalType: 'string', type: 'string' },\n      { name: 'newBaseURI', internalType: 'string', type: 'string' },\n      {\n        name: 'tokenIdsToNotifyUpdate',\n        internalType: 'uint256[]',\n        type: 'uint256[]',\n      },\n    ],\n    name: 'setMetadataURIs',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],\n    name: 'uri',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'zoraSparks1155',\n    outputs: [\n      { name: '', internalType: 'contract IZoraSparks1155', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'contractURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n      {\n        name: 'baseURI',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'URIsUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'lengthA', internalType: 'uint256', type: 'uint256' },\n      { name: 'lengthB', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'ArrayLengthMismatch',\n  },\n  { type: 'error', inputs: [], name: 'Create2EmptyBytecode' },\n  { type: 'error', inputs: [], name: 'Create2FailedDeployment' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'balance', internalType: 'uint256', type: 'uint256' },\n      { name: 'needed', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'Create2InsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'DefaultOwnerCannotBeZero' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  { type: 'error', inputs: [], name: 'ERC20TransferSlippage' },\n  { type: 'error', inputs: [], name: 'ETHTransferFailed' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'IncorrectAmountSent' },\n  { type: 'error', inputs: [], name: 'InvalidAdminAction' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'InvalidOwnerForAssociatedZoraSparks' },\n  { type: 'error', inputs: [], name: 'InvalidRecipient' },\n  { type: 'error', inputs: [], name: 'InvalidTokenPrice' },\n  { type: 'error', inputs: [], name: 'NoUriForNonexistentToken' },\n  {\n    type: 'error',\n    inputs: [{ name: 'handler', internalType: 'address', type: 'address' }],\n    name: 'NotARedeemHandler',\n  },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'PremintExecutorCannotBeZero' },\n  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },\n  {\n    type: 'error',\n    inputs: [{ name: 'token', internalType: 'address', type: 'address' }],\n    name: 'SafeERC20FailedOperation',\n  },\n  { type: 'error', inputs: [], name: 'TokenAlreadyCreated' },\n  { type: 'error', inputs: [], name: 'TokenDoesNotExist' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'storedTokenAddress', internalType: 'address', type: 'address' },\n      {\n        name: 'expectedTokenAddress',\n        internalType: 'address',\n        type: 'address',\n      },\n    ],\n    name: 'TokenMismatch',\n  },\n  { type: 'error', inputs: [], name: 'TokenNotMintable' },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'expected', internalType: 'string', type: 'string' },\n      { name: 'actual', internalType: 'string', type: 'string' },\n    ],\n    name: 'UpgradeToMismatchedContractName',\n  },\n] as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n */\nexport const zoraSparksManagerImplAddress = {\n  8453: '0x77777779acd6a96C0c57272112921A0b833c38fD',\n  84532: '0x77777779acd6a96C0c57272112921A0b833c38fD',\n  7777777: '0x77777779acd6a96C0c57272112921A0b833c38fD',\n  999999999: '0x77777779acd6a96C0c57272112921A0b833c38fD',\n} as const\n\n/**\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x77777779acd6a96C0c57272112921A0b833c38fD)\n */\nexport const zoraSparksManagerImplConfig = {\n  address: zoraSparksManagerImplAddress,\n  abi: zoraSparksManagerImplABI,\n} as const\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// zoraTimedSaleStrategy\n//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n */\nexport const zoraTimedSaleStrategyABI = [\n  { type: 'constructor', inputs: [], stateMutability: 'nonpayable' },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'UPGRADE_INTERFACE_VERSION',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'acceptOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'collection', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'erc20zAddress', internalType: 'address', type: 'address' },\n    ],\n    name: 'calculateERC20zActivate',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IZoraTimedSaleStrategy.ERC20zActivate',\n        type: 'tuple',\n        components: [\n          {\n            name: 'finalTotalERC20ZSupply',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'erc20Reserve', internalType: 'uint256', type: 'uint256' },\n          { name: 'erc20Liquidity', internalType: 'uint256', type: 'uint256' },\n          { name: 'excessERC20', internalType: 'uint256', type: 'uint256' },\n          { name: 'excessERC1155', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'additionalERC1155ToMint',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'final1155Supply', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'quantity', internalType: 'uint256', type: 'uint256' }],\n    name: 'computeRewards',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IZoraTimedSaleStrategy.RewardsSettings',\n        type: 'tuple',\n        components: [\n          { name: 'totalReward', internalType: 'uint256', type: 'uint256' },\n          { name: 'creatorReward', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'createReferralReward',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'mintReferralReward',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'marketReward', internalType: 'uint256', type: 'uint256' },\n          { name: 'zoraReward', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'quantity', internalType: 'uint256', type: 'uint256' }],\n    name: 'computeRewardsV2',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IZoraTimedSaleStrategy.RewardsSettings',\n        type: 'tuple',\n        components: [\n          { name: 'totalReward', internalType: 'uint256', type: 'uint256' },\n          { name: 'creatorReward', internalType: 'uint256', type: 'uint256' },\n          {\n            name: 'createReferralReward',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          {\n            name: 'mintReferralReward',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'marketReward', internalType: 'uint256', type: 'uint256' },\n          { name: 'zoraReward', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractName',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractURI',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'contractVersion',\n    outputs: [{ name: '', internalType: 'string', type: 'string' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'erc20zImpl',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'collection', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'getCreateReferral',\n    outputs: [\n      { name: 'createReferral', internalType: 'address', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'implementation',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '_defaultOwner', internalType: 'address', type: 'address' },\n      {\n        name: '_zoraRewardRecipient',\n        internalType: 'address',\n        type: 'address',\n      },\n      { name: '_erc20zImpl', internalType: 'address', type: 'address' },\n      {\n        name: '_protocolRewards',\n        internalType: 'contract IProtocolRewards',\n        type: 'address',\n      },\n    ],\n    name: 'initialize',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'collection', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'launchMarket',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'mintTo', internalType: 'address', type: 'address' },\n      { name: 'quantity', internalType: 'uint256', type: 'uint256' },\n      { name: 'collection', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'mintReferral', internalType: 'address', type: 'address' },\n      { name: 'comment', internalType: 'string', type: 'string' },\n    ],\n    name: 'mint',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'owner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'pendingOwner',\n    outputs: [{ name: '', internalType: 'address', type: 'address' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'protocolRewards',\n    outputs: [\n      { name: '', internalType: 'contract IProtocolRewards', type: 'address' },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'proxiableUUID',\n    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [],\n    name: 'renounceOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: '', internalType: 'address', type: 'address' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n      { name: '', internalType: 'uint256', type: 'uint256' },\n      { name: '', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'requestMint',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct ICreatorCommands.CommandSet',\n        type: 'tuple',\n        components: [\n          {\n            name: 'commands',\n            internalType: 'struct ICreatorCommands.Command[]',\n            type: 'tuple[]',\n            components: [\n              {\n                name: 'method',\n                internalType: 'enum ICreatorCommands.CreatorActions',\n                type: 'uint8',\n              },\n              { name: 'args', internalType: 'bytes', type: 'bytes' },\n            ],\n          },\n          { name: 'at', internalType: 'uint256', type: 'uint256' },\n        ],\n      },\n    ],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'collection', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'sale',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IZoraTimedSaleStrategy.SaleStorage',\n        type: 'tuple',\n        components: [\n          {\n            name: 'erc20zAddress',\n            internalType: 'address payable',\n            type: 'address',\n          },\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'poolAddress', internalType: 'address', type: 'address' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          { name: 'secondaryActivated', internalType: 'bool', type: 'bool' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'collection', internalType: 'address', type: 'address' },\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n    ],\n    name: 'saleV2',\n    outputs: [\n      {\n        name: '',\n        internalType: 'struct IZoraTimedSaleStrategy.SaleData',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'marketCountdown', internalType: 'uint64', type: 'uint64' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          { name: 'secondaryActivated', internalType: 'bool', type: 'bool' },\n          {\n            name: 'minimumMarketEth',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'poolAddress', internalType: 'address', type: 'address' },\n          {\n            name: 'erc20zAddress',\n            internalType: 'address payable',\n            type: 'address',\n          },\n          { name: 'name', internalType: 'string', type: 'string' },\n          { name: 'symbol', internalType: 'string', type: 'string' },\n        ],\n      },\n    ],\n    stateMutability: 'view',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'salesConfig',\n        internalType: 'struct IZoraTimedSaleStrategy.SalesConfig',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          { name: 'name', internalType: 'string', type: 'string' },\n          { name: 'symbol', internalType: 'string', type: 'string' },\n        ],\n      },\n    ],\n    name: 'setSale',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      {\n        name: 'salesConfig',\n        internalType: 'struct IZoraTimedSaleStrategy.SalesConfigV2',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'marketCountdown', internalType: 'uint64', type: 'uint64' },\n          {\n            name: 'minimumMarketEth',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'name', internalType: 'string', type: 'string' },\n          { name: 'symbol', internalType: 'string', type: 'string' },\n        ],\n      },\n    ],\n    name: 'setSaleV2',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'recipient', internalType: 'address', type: 'address' }],\n    name: 'setZoraRewardRecipient',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],\n    name: 'supportsInterface',\n    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],\n    stateMutability: 'pure',\n  },\n  {\n    type: 'function',\n    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],\n    name: 'transferOwnership',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'amount0Delta', internalType: 'int256', type: 'int256' },\n      { name: 'amount1Delta', internalType: 'int256', type: 'int256' },\n      { name: '', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'uniswapV3SwapCallback',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'tokenId', internalType: 'uint256', type: 'uint256' },\n      { name: 'newStartTime', internalType: 'uint64', type: 'uint64' },\n      { name: 'newMarketCountdown', internalType: 'uint64', type: 'uint64' },\n    ],\n    name: 'updateSale',\n    outputs: [],\n    stateMutability: 'nonpayable',\n  },\n  {\n    type: 'function',\n    inputs: [\n      { name: 'newImplementation', internalType: 'address', type: 'address' },\n      { name: 'data', internalType: 'bytes', type: 'bytes' },\n    ],\n    name: 'upgradeToAndCall',\n    outputs: [],\n    stateMutability: 'payable',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'version',\n        internalType: 'uint64',\n        type: 'uint64',\n        indexed: false,\n      },\n    ],\n    name: 'Initialized',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'collection',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'erc20zAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'poolAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n    ],\n    name: 'MarketLaunched',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'sender',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'collection',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'quantity',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'comment',\n        internalType: 'string',\n        type: 'string',\n        indexed: false,\n      },\n    ],\n    name: 'MintComment',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferStarted',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'previousOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newOwner',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'OwnershipTransferred',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'collection',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'salesConfig',\n        internalType: 'struct IZoraTimedSaleStrategy.SalesConfig',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          { name: 'name', internalType: 'string', type: 'string' },\n          { name: 'symbol', internalType: 'string', type: 'string' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'erc20zAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'poolAddress',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'mintFee',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'SaleSet',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'collection',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'saleData',\n        internalType: 'struct IZoraTimedSaleStrategy.SaleData',\n        type: 'tuple',\n        components: [\n          { name: 'saleStart', internalType: 'uint64', type: 'uint64' },\n          { name: 'marketCountdown', internalType: 'uint64', type: 'uint64' },\n          { name: 'saleEnd', internalType: 'uint64', type: 'uint64' },\n          { name: 'secondaryActivated', internalType: 'bool', type: 'bool' },\n          {\n            name: 'minimumMarketEth',\n            internalType: 'uint256',\n            type: 'uint256',\n          },\n          { name: 'poolAddress', internalType: 'address', type: 'address' },\n          {\n            name: 'erc20zAddress',\n            internalType: 'address payable',\n            type: 'address',\n          },\n          { name: 'name', internalType: 'string', type: 'string' },\n          { name: 'symbol', internalType: 'string', type: 'string' },\n        ],\n        indexed: false,\n      },\n      {\n        name: 'mintFee',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'SaleSetV2',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'implementation',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'Upgraded',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'prevRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'newRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n    ],\n    name: 'ZoraRewardRecipientUpdated',\n  },\n  {\n    type: 'event',\n    anonymous: false,\n    inputs: [\n      {\n        name: 'collection',\n        internalType: 'address',\n        type: 'address',\n        indexed: true,\n      },\n      {\n        name: 'tokenId',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: true,\n      },\n      {\n        name: 'creator',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'creatorReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'createReferral',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'createReferralReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'mintReferral',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'mintReferralReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'market',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'marketReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n      {\n        name: 'zoraRecipient',\n        internalType: 'address',\n        type: 'address',\n        indexed: false,\n      },\n      {\n        name: 'zoraReward',\n        internalType: 'uint256',\n        type: 'uint256',\n        indexed: false,\n      },\n    ],\n    name: 'ZoraTimedSaleStrategyRewards',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'target', internalType: 'address', type: 'address' }],\n    name: 'AddressEmptyCode',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'AddressInsufficientBalance',\n  },\n  { type: 'error', inputs: [], name: 'AddressZero' },\n  { type: 'error', inputs: [], name: 'ERC1167FailedCreateClone' },\n  {\n    type: 'error',\n    inputs: [\n      { name: 'implementation', internalType: 'address', type: 'address' },\n    ],\n    name: 'ERC1967InvalidImplementation',\n  },\n  { type: 'error', inputs: [], name: 'ERC1967NonPayable' },\n  { type: 'error', inputs: [], name: 'EndTimeCannotBeInThePast' },\n  { type: 'error', inputs: [], name: 'FailedInnerCall' },\n  { type: 'error', inputs: [], name: 'InsufficientFunds' },\n  { type: 'error', inputs: [], name: 'InvalidInitialization' },\n  { type: 'error', inputs: [], name: 'MarketAlreadyLaunched' },\n  { type: 'error', inputs: [], name: 'MarketMinimumNotReached' },\n  { type: 'error', inputs: [], name: 'MinimumMarketEthNotMet' },\n  { type: 'error', inputs: [], name: 'NeedsToBeAtLeastOneSaleToStartMarket' },\n  { type: 'error', inputs: [], name: 'NotInitializing' },\n  { type: 'error', inputs: [], name: 'OnlyZoraRewardRecipient' },\n  {\n    type: 'error',\n    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],\n    name: 'OwnableInvalidOwner',\n  },\n  {\n    type: 'error',\n    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],\n    name: 'OwnableUnauthorizedAccount',\n  },\n  { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' },\n  { type: 'error', inputs: [], name: 'RequestMintInvalidUseMint' },\n  { type: 'error', inputs: [], name: 'ResetSaleNotAvailable' },\n  { type: 'error', inputs: [], name: 'SaleAlreadySet' },\n  { type: 'error', inputs: [], name: 'SaleEnded' },\n  { type: 'error', inputs: [], name: 'SaleHasNotStarted' },\n  { type: 'error', inputs: [], name: 'SaleInProgress' },\n  { type: 'error', inputs: [], name: 'SaleNotSet' },\n  { type: 'error', inputs: [], name: 'SaleV2AlreadyStarted' },\n  { type: 'error', inputs: [], name: 'SaleV2Ended' },\n  { type: 'error', inputs: [], name: 'SaleV2NotSet' },\n  { type: 'error', inputs: [], name: 'StartTimeCannotBeAfterEndTime' },\n  { type: 'error', inputs: [], name: 'UUPSUnauthorizedCallContext' },\n  {\n    type: 'error',\n    inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }],\n    name: 'UUPSUnsupportedProxiableUUID',\n  },\n  { type: 'error', inputs: [], name: 'WrongValueSent' },\n  {\n    type: 'error',\n    inputs: [],\n    name: 'ZoraCreator1155ContractNeedsToSupportReduceSupply',\n  },\n] as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n */\nexport const zoraTimedSaleStrategyAddress = {\n  1: '0x777777722D078c97c6ad07d9f36801e653E356Ae',\n  10: '0x777777722D078c97c6ad07d9f36801e653E356Ae',\n  8453: '0x777777722D078c97c6ad07d9f36801e653E356Ae',\n  42161: '0x777777722D078c97c6ad07d9f36801e653E356Ae',\n  81457: '0x777777722D078c97c6ad07d9f36801e653E356Ae',\n  84532: '0x777777722D078c97c6ad07d9f36801e653E356Ae',\n  421614: '0x777777722D078c97c6ad07d9f36801e653E356Ae',\n  7777777: '0x777777722D078c97c6ad07d9f36801e653E356Ae',\n  11155111: '0x777777722D078c97c6ad07d9f36801e653E356Ae',\n  999999999: '0x777777722D078c97c6ad07d9f36801e653E356Ae',\n} as const\n\n/**\n * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Op Mainnet Optimism Explorer__](https://optimistic.etherscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Base Basescan__](https://basescan.org/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Blast Blastscan__](https://blastscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Base Sepolia Basescan__](https://sepolia.basescan.org/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Zora Explorer__](https://explorer.zora.energy/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n * - [__View Contract on Zora Sepolia Zora Sepolia Explorer__](https://sepolia.explorer.zora.energy//address/0x777777722D078c97c6ad07d9f36801e653E356Ae)\n */\nexport const zoraTimedSaleStrategyConfig = {\n  address: zoraTimedSaleStrategyAddress,\n  abi: zoraTimedSaleStrategyABI,\n} as const\n","import { etherUnits } from '../../constants/unit.js'\nimport type { ErrorType } from '../../errors/utils.js'\n\nimport { type ParseUnitsErrorType, parseUnits } from './parseUnits.js'\n\nexport type ParseEtherErrorType = ParseUnitsErrorType | ErrorType\n\n/**\n * Converts a string representation of ether to numerical wei.\n *\n * - Docs: https://viem.sh/docs/utilities/parseEther\n *\n * @example\n * import { parseEther } from 'viem'\n *\n * parseEther('420')\n * // 420000000000000000000n\n */\nexport function parseEther(ether: string, unit: 'wei' | 'gwei' = 'wei') {\n  return parseUnits(ether, etherUnits[unit])\n}\n","import { BaseError } from './base.js'\n\nexport type InvalidDecimalNumberErrorType = InvalidDecimalNumberError & {\n  name: 'InvalidDecimalNumberError'\n}\nexport class InvalidDecimalNumberError extends BaseError {\n  constructor({ value }: { value: string }) {\n    super(`Number \\`${value}\\` is not a valid decimal number.`, {\n      name: 'InvalidDecimalNumberError',\n    })\n  }\n}\n","import { InvalidDecimalNumberError } from '../../errors/unit.js'\nimport type { ErrorType } from '../../errors/utils.js'\n\nexport type ParseUnitsErrorType = ErrorType\n\n/**\n * Multiplies a string representation of a number by a given exponent of base 10 (10exponent).\n *\n * - Docs: https://viem.sh/docs/utilities/parseUnits\n *\n * @example\n * import { parseUnits } from 'viem'\n *\n * parseUnits('420', 9)\n * // 420000000000n\n */\nexport function parseUnits(value: string, decimals: number) {\n  if (!/^(-?)([0-9]*)\\.?([0-9]*)$/.test(value))\n    throw new InvalidDecimalNumberError({ value })\n\n  let [integer, fraction = '0'] = value.split('.')\n\n  const negative = integer.startsWith('-')\n  if (negative) integer = integer.slice(1)\n\n  // trim trailing zeros.\n  fraction = fraction.replace(/(0+)$/, '')\n\n  // round off if the fraction is larger than the number of decimals.\n  if (decimals === 0) {\n    if (Math.round(Number(`.${fraction}`)) === 1)\n      integer = `${BigInt(integer) + 1n}`\n    fraction = ''\n  } else if (fraction.length > decimals) {\n    const [left, unit, right] = [\n      fraction.slice(0, decimals - 1),\n      fraction.slice(decimals - 1, decimals),\n      fraction.slice(decimals),\n    ]\n\n    const rounded = Math.round(Number(`${unit}.${right}`))\n    if (rounded > 9)\n      fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0')\n    else fraction = `${left}${rounded}`\n\n    if (fraction.length > decimals) {\n      fraction = fraction.slice(1)\n      integer = `${BigInt(integer) + 1n}`\n    }\n\n    fraction = fraction.slice(0, decimals)\n  } else {\n    fraction = fraction.padEnd(decimals, '0')\n  }\n\n  return BigInt(`${negative ? '-' : ''}${integer}${fraction}`)\n}\n","// biome-ignore lint/performance/noBarrelFile: entrypoint module\nexport {\n  type Abi,\n  type AbiEvent,\n  type AbiFunction,\n  type AbiParameter,\n  type AbiParameterKind,\n  type AbiParameterToPrimitiveType,\n  type AbiStateMutability,\n  type Address,\n  CircularReferenceError,\n  InvalidAbiItemError,\n  InvalidAbiParameterError,\n  InvalidAbiParametersError,\n  InvalidAbiTypeParameterError,\n  InvalidFunctionModifierError,\n  InvalidModifierError,\n  InvalidParameterError,\n  InvalidParenthesisError,\n  InvalidSignatureError,\n  InvalidStructSignatureError,\n  type Narrow,\n  type ParseAbi,\n  type ParseAbiItem,\n  type ParseAbiParameter,\n  type ParseAbiParameters,\n  parseAbi,\n  parseAbiItem,\n  parseAbiParameter,\n  parseAbiParameters,\n  SolidityProtectedKeywordError,\n  type TypedData,\n  type TypedDataDomain,\n  type TypedDataParameter,\n  UnknownSignatureError,\n  UnknownTypeError,\n} from 'abitype'\nexport type {\n  BlockOverrides,\n  Rpc as RpcBlockOverrides,\n} from 'ox/BlockOverrides'\nexport type { EntryPointVersion } from './account-abstraction/types/entryPointVersion.js'\nexport type {\n  RpcEstimateUserOperationGasReturnType,\n  RpcGetUserOperationByHashReturnType,\n  RpcUserOperation,\n  RpcUserOperationReceipt,\n  RpcUserOperationRequest,\n} from './account-abstraction/types/rpc.js'\nexport type {\n  EstimateUserOperationGasReturnType,\n  GetUserOperationByHashReturnType,\n  PackedUserOperation,\n  UserOperation,\n  UserOperationReceipt,\n  UserOperationRequest,\n} from './account-abstraction/types/userOperation.js'\nexport type {\n  Account,\n  AccountSource,\n  CustomSource,\n  HDAccount,\n  HDOptions,\n  JsonRpcAccount,\n  LocalAccount,\n  PrivateKeyAccount,\n} from './accounts/types.js'\nexport type {\n  GetEnsAddressErrorType,\n  GetEnsAddressParameters,\n  GetEnsAddressReturnType,\n} from './actions/ens/getEnsAddress.js'\nexport type {\n  GetEnsAvatarErrorType,\n  GetEnsAvatarParameters,\n  GetEnsAvatarReturnType,\n} from './actions/ens/getEnsAvatar.js'\nexport type {\n  GetEnsNameErrorType,\n  GetEnsNameParameters,\n  GetEnsNameReturnType,\n} from './actions/ens/getEnsName.js'\nexport type {\n  GetEnsResolverErrorType,\n  GetEnsResolverParameters,\n  GetEnsResolverReturnType,\n} from './actions/ens/getEnsResolver.js'\nexport type {\n  GetEnsTextErrorType,\n  GetEnsTextParameters,\n  GetEnsTextReturnType,\n} from './actions/ens/getEnsText.js'\nexport {\n  type GetContractErrorType,\n  type GetContractParameters,\n  type GetContractReturnType,\n  getContract,\n} from './actions/getContract.js'\nexport type {\n  CallErrorType,\n  CallParameters,\n  CallReturnType,\n} from './actions/public/call.js'\nexport type {\n  CreateAccessListErrorType,\n  CreateAccessListParameters,\n  CreateAccessListReturnType,\n} from './actions/public/createAccessList.js'\nexport type {\n  CreateBlockFilterErrorType,\n  CreateBlockFilterReturnType,\n} from './actions/public/createBlockFilter.js'\nexport type {\n  CreateContractEventFilterErrorType,\n  CreateContractEventFilterParameters,\n  CreateContractEventFilterReturnType,\n} from './actions/public/createContractEventFilter.js'\nexport type {\n  CreateEventFilterErrorType,\n  CreateEventFilterParameters,\n  CreateEventFilterReturnType,\n} from './actions/public/createEventFilter.js'\nexport type {\n  CreatePendingTransactionFilterErrorType,\n  CreatePendingTransactionFilterReturnType,\n} from './actions/public/createPendingTransactionFilter.js'\nexport type {\n  EstimateContractGasErrorType,\n  EstimateContractGasParameters,\n  EstimateContractGasReturnType,\n} from './actions/public/estimateContractGas.js'\nexport type {\n  EstimateFeesPerGasErrorType,\n  EstimateFeesPerGasParameters,\n  EstimateFeesPerGasReturnType,\n} from './actions/public/estimateFeesPerGas.js'\nexport type {\n  EstimateGasErrorType,\n  EstimateGasParameters,\n  EstimateGasReturnType,\n} from './actions/public/estimateGas.js'\nexport type {\n  EstimateMaxPriorityFeePerGasErrorType,\n  EstimateMaxPriorityFeePerGasParameters,\n  EstimateMaxPriorityFeePerGasReturnType,\n} from './actions/public/estimateMaxPriorityFeePerGas.js'\nexport type {\n  FillTransactionErrorType,\n  FillTransactionParameters,\n  FillTransactionReturnType,\n} from './actions/public/fillTransaction.js'\nexport type {\n  GetBalanceErrorType,\n  GetBalanceParameters,\n  GetBalanceReturnType,\n} from './actions/public/getBalance.js'\nexport type {\n  GetBlobBaseFeeErrorType,\n  GetBlobBaseFeeReturnType,\n} from './actions/public/getBlobBaseFee.js'\nexport type {\n  GetBlockErrorType,\n  GetBlockParameters,\n  GetBlockReturnType,\n} from './actions/public/getBlock.js'\nexport type {\n  GetBlockNumberErrorType,\n  GetBlockNumberParameters,\n  GetBlockNumberReturnType,\n} from './actions/public/getBlockNumber.js'\nexport type {\n  GetBlockReceiptsErrorType,\n  GetBlockReceiptsParameters,\n  GetBlockReceiptsReturnType,\n} from './actions/public/getBlockReceipts.js'\nexport type {\n  GetBlockTransactionCountErrorType,\n  GetBlockTransactionCountParameters,\n  GetBlockTransactionCountReturnType,\n} from './actions/public/getBlockTransactionCount.js'\nexport type {\n  GetChainIdErrorType,\n  GetChainIdReturnType,\n} from './actions/public/getChainId.js'\nexport type {\n  /** @deprecated Use `GetCodeErrorType` instead */\n  GetCodeErrorType as GetBytecodeErrorType,\n  GetCodeErrorType,\n  /** @deprecated Use `GetCodeParameters` instead */\n  GetCodeParameters as GetBytecodeParameters,\n  GetCodeParameters,\n  /** @deprecated Use `GetCodeReturnType` instead  */\n  GetCodeReturnType as GetBytecodeReturnType,\n  GetCodeReturnType,\n} from './actions/public/getCode.js'\nexport type {\n  GetContractEventsErrorType,\n  GetContractEventsParameters,\n  GetContractEventsReturnType,\n} from './actions/public/getContractEvents.js'\nexport type {\n  GetDelegationErrorType,\n  GetDelegationParameters,\n  GetDelegationReturnType,\n} from './actions/public/getDelegation.js'\nexport type {\n  GetEip712DomainErrorType,\n  GetEip712DomainParameters,\n  GetEip712DomainReturnType,\n} from './actions/public/getEip712Domain.js'\nexport type {\n  GetFeeHistoryErrorType,\n  GetFeeHistoryParameters,\n  GetFeeHistoryReturnType,\n} from './actions/public/getFeeHistory.js'\nexport type {\n  GetFilterChangesErrorType,\n  GetFilterChangesParameters,\n  GetFilterChangesReturnType,\n} from './actions/public/getFilterChanges.js'\nexport type {\n  GetFilterLogsErrorType,\n  GetFilterLogsParameters,\n  GetFilterLogsReturnType,\n} from './actions/public/getFilterLogs.js'\nexport type {\n  GetGasPriceErrorType,\n  GetGasPriceReturnType,\n} from './actions/public/getGasPrice.js'\nexport type {\n  GetLogsErrorType,\n  GetLogsParameters,\n  GetLogsReturnType,\n} from './actions/public/getLogs.js'\nexport type {\n  GetProofErrorType,\n  GetProofParameters,\n  GetProofReturnType,\n} from './actions/public/getProof.js'\nexport type {\n  GetStorageAtErrorType,\n  GetStorageAtParameters,\n  GetStorageAtReturnType,\n} from './actions/public/getStorageAt.js'\nexport type {\n  GetTransactionErrorType,\n  GetTransactionParameters,\n  GetTransactionReturnType,\n} from './actions/public/getTransaction.js'\nexport type {\n  GetTransactionConfirmationsErrorType,\n  GetTransactionConfirmationsParameters,\n  GetTransactionConfirmationsReturnType,\n} from './actions/public/getTransactionConfirmations.js'\nexport type {\n  GetTransactionCountErrorType,\n  GetTransactionCountParameters,\n  GetTransactionCountReturnType,\n} from './actions/public/getTransactionCount.js'\nexport type {\n  GetTransactionReceiptErrorType,\n  GetTransactionReceiptParameters,\n  GetTransactionReceiptReturnType,\n} from './actions/public/getTransactionReceipt.js'\nexport type {\n  MulticallErrorType,\n  MulticallParameters,\n  MulticallReturnType,\n} from './actions/public/multicall.js'\nexport type {\n  ReadContractErrorType,\n  ReadContractParameters,\n  ReadContractReturnType,\n} from './actions/public/readContract.js'\nexport type {\n  SimulateBlocksErrorType,\n  SimulateBlocksParameters,\n  SimulateBlocksReturnType,\n} from './actions/public/simulateBlocks.js'\nexport type {\n  SimulateCallsErrorType,\n  SimulateCallsParameters,\n  SimulateCallsReturnType,\n} from './actions/public/simulateCalls.js'\nexport type {\n  GetMutabilityAwareValue,\n  SimulateContractErrorType,\n  SimulateContractParameters,\n  SimulateContractReturnType,\n} from './actions/public/simulateContract.js'\nexport type {\n  UninstallFilterErrorType,\n  UninstallFilterParameters,\n  UninstallFilterReturnType,\n} from './actions/public/uninstallFilter.js'\nexport type {\n  VerifyHashErrorType as VerifyHashActionErrorType,\n  VerifyHashParameters as VerifyHashActionParameters,\n  VerifyHashReturnType as VerifyHashActionReturnType,\n} from './actions/public/verifyHash.js'\nexport type {\n  VerifyMessageErrorType as VerifyMessageActionErrorType,\n  VerifyMessageParameters as VerifyMessageActionParameters,\n  VerifyMessageReturnType as VerifyMessageActionReturnType,\n} from './actions/public/verifyMessage.js'\nexport type {\n  VerifyTypedDataErrorType as VerifyTypedDataActionErrorType,\n  VerifyTypedDataParameters as VerifyTypedDataActionParameters,\n  VerifyTypedDataReturnType as VerifyTypedDataActionReturnType,\n} from './actions/public/verifyTypedData.js'\nexport type {\n  ReplacementReason,\n  ReplacementReturnType,\n  WaitForTransactionReceiptErrorType,\n  WaitForTransactionReceiptParameters,\n  WaitForTransactionReceiptReturnType,\n} from './actions/public/waitForTransactionReceipt.js'\nexport type {\n  OnBlockNumberFn,\n  OnBlockNumberParameter,\n  WatchBlockNumberErrorType,\n  WatchBlockNumberParameters,\n  WatchBlockNumberReturnType,\n} from './actions/public/watchBlockNumber.js'\nexport type {\n  OnBlock,\n  OnBlockParameter,\n  WatchBlocksErrorType,\n  WatchBlocksParameters,\n  WatchBlocksReturnType,\n} from './actions/public/watchBlocks.js'\nexport type {\n  WatchContractEventErrorType,\n  WatchContractEventOnLogsFn,\n  WatchContractEventOnLogsParameter,\n  WatchContractEventParameters,\n  WatchContractEventReturnType,\n} from './actions/public/watchContractEvent.js'\nexport type {\n  WatchEventErrorType,\n  WatchEventOnLogsFn,\n  WatchEventOnLogsParameter,\n  WatchEventParameters,\n  WatchEventReturnType,\n} from './actions/public/watchEvent.js'\nexport type {\n  OnTransactionsFn,\n  OnTransactionsParameter,\n  WatchPendingTransactionsErrorType,\n  WatchPendingTransactionsParameters,\n  WatchPendingTransactionsReturnType,\n} from './actions/public/watchPendingTransactions.js'\nexport type {\n  DropTransactionErrorType,\n  DropTransactionParameters,\n} from './actions/test/dropTransaction.js'\nexport type {\n  DumpStateErrorType,\n  DumpStateReturnType,\n} from './actions/test/dumpState.js'\nexport type {\n  GetAutomineErrorType,\n  GetAutomineReturnType,\n} from './actions/test/getAutomine.js'\nexport type {\n  GetTxpoolContentErrorType,\n  GetTxpoolContentReturnType,\n} from './actions/test/getTxpoolContent.js'\nexport type {\n  GetTxpoolStatusErrorType,\n  GetTxpoolStatusReturnType,\n} from './actions/test/getTxpoolStatus.js'\nexport type {\n  ImpersonateAccountErrorType,\n  ImpersonateAccountParameters,\n} from './actions/test/impersonateAccount.js'\nexport type {\n  IncreaseTimeErrorType,\n  IncreaseTimeParameters,\n} from './actions/test/increaseTime.js'\nexport type {\n  InspectTxpoolErrorType,\n  InspectTxpoolReturnType,\n} from './actions/test/inspectTxpool.js'\nexport type {\n  LoadStateErrorType,\n  LoadStateParameters,\n  LoadStateReturnType,\n} from './actions/test/loadState.js'\nexport type { MineErrorType, MineParameters } from './actions/test/mine.js'\nexport type { RemoveBlockTimestampIntervalErrorType } from './actions/test/removeBlockTimestampInterval.js'\nexport type { ResetErrorType, ResetParameters } from './actions/test/reset.js'\nexport type {\n  RevertErrorType,\n  RevertParameters,\n} from './actions/test/revert.js'\nexport type {\n  SendUnsignedTransactionErrorType,\n  SendUnsignedTransactionParameters,\n  SendUnsignedTransactionReturnType,\n} from './actions/test/sendUnsignedTransaction.js'\nexport type { SetAutomineErrorType } from './actions/test/setAutomine.js'\nexport type {\n  SetBalanceErrorType,\n  SetBalanceParameters,\n} from './actions/test/setBalance.js'\nexport type {\n  SetBlockGasLimitErrorType,\n  SetBlockGasLimitParameters,\n} from './actions/test/setBlockGasLimit.js'\nexport type {\n  SetBlockTimestampIntervalErrorType,\n  SetBlockTimestampIntervalParameters,\n} from './actions/test/setBlockTimestampInterval.js'\nexport type {\n  SetCodeErrorType,\n  SetCodeParameters,\n} from './actions/test/setCode.js'\nexport type {\n  SetCoinbaseErrorType,\n  SetCoinbaseParameters,\n} from './actions/test/setCoinbase.js'\nexport type {\n  SetIntervalMiningErrorType,\n  SetIntervalMiningParameters,\n} from './actions/test/setIntervalMining.js'\nexport type { SetLoggingEnabledErrorType } from './actions/test/setLoggingEnabled.js'\nexport type {\n  SetMinGasPriceErrorType,\n  SetMinGasPriceParameters,\n} from './actions/test/setMinGasPrice.js'\nexport type {\n  SetNextBlockBaseFeePerGasErrorType,\n  SetNextBlockBaseFeePerGasParameters,\n} from './actions/test/setNextBlockBaseFeePerGas.js'\nexport type {\n  SetNextBlockTimestampErrorType,\n  SetNextBlockTimestampParameters,\n} from './actions/test/setNextBlockTimestamp.js'\nexport type {\n  SetNonceErrorType,\n  SetNonceParameters,\n} from './actions/test/setNonce.js'\nexport type { SetRpcUrlErrorType } from './actions/test/setRpcUrl.js'\nexport type {\n  SetStorageAtErrorType,\n  SetStorageAtParameters,\n} from './actions/test/setStorageAt.js'\nexport type { SnapshotErrorType } from './actions/test/snapshot.js'\nexport type {\n  StopImpersonatingAccountErrorType,\n  StopImpersonatingAccountParameters,\n} from './actions/test/stopImpersonatingAccount.js'\nexport type {\n  AddChainErrorType,\n  AddChainParameters,\n} from './actions/wallet/addChain.js'\nexport type {\n  DeployContractErrorType,\n  DeployContractParameters,\n  DeployContractReturnType,\n} from './actions/wallet/deployContract.js'\nexport type {\n  GetAddressesErrorType,\n  GetAddressesReturnType,\n} from './actions/wallet/getAddresses.js'\nexport type {\n  GetCallsStatusErrorType,\n  GetCallsStatusParameters,\n  GetCallsStatusReturnType,\n} from './actions/wallet/getCallsStatus.js'\nexport type {\n  GetCapabilitiesErrorType,\n  GetCapabilitiesParameters,\n  GetCapabilitiesReturnType,\n} from './actions/wallet/getCapabilities.js'\nexport type {\n  GetPermissionsErrorType,\n  GetPermissionsReturnType,\n} from './actions/wallet/getPermissions.js'\nexport type {\n  PrepareAuthorizationErrorType,\n  PrepareAuthorizationParameters,\n  PrepareAuthorizationReturnType,\n} from './actions/wallet/prepareAuthorization.js'\nexport type {\n  PrepareTransactionRequestErrorType,\n  PrepareTransactionRequestParameters,\n  PrepareTransactionRequestParameterType,\n  PrepareTransactionRequestRequest,\n  PrepareTransactionRequestReturnType,\n} from './actions/wallet/prepareTransactionRequest.js'\nexport type {\n  RequestAddressesErrorType,\n  RequestAddressesReturnType,\n} from './actions/wallet/requestAddresses.js'\nexport type {\n  RequestPermissionsErrorType,\n  RequestPermissionsParameters,\n  RequestPermissionsReturnType,\n} from './actions/wallet/requestPermissions.js'\nexport type {\n  SendCallsErrorType,\n  SendCallsParameters,\n  SendCallsReturnType,\n} from './actions/wallet/sendCalls.js'\nexport type {\n  SendCallsSyncErrorType,\n  SendCallsSyncParameters,\n  SendCallsSyncReturnType,\n} from './actions/wallet/sendCallsSync.js'\nexport type {\n  SendRawTransactionErrorType,\n  SendRawTransactionParameters,\n  SendRawTransactionReturnType,\n} from './actions/wallet/sendRawTransaction.js'\nexport type {\n  SendRawTransactionSyncErrorType,\n  SendRawTransactionSyncParameters,\n  SendRawTransactionSyncReturnType,\n} from './actions/wallet/sendRawTransactionSync.js'\nexport type {\n  SendTransactionErrorType,\n  SendTransactionParameters,\n  SendTransactionRequest,\n  SendTransactionReturnType,\n} from './actions/wallet/sendTransaction.js'\nexport type {\n  SendTransactionSyncErrorType,\n  SendTransactionSyncParameters,\n  SendTransactionSyncRequest,\n  SendTransactionSyncReturnType,\n} from './actions/wallet/sendTransactionSync.js'\nexport type {\n  ShowCallsStatusErrorType,\n  ShowCallsStatusParameters,\n  ShowCallsStatusReturnType,\n} from './actions/wallet/showCallsStatus.js'\nexport type {\n  SignAuthorizationErrorType,\n  SignAuthorizationParameters,\n  SignAuthorizationReturnType,\n} from './actions/wallet/signAuthorization.js'\nexport type {\n  SignMessageErrorType,\n  SignMessageParameters,\n  SignMessageReturnType,\n} from './actions/wallet/signMessage.js'\nexport type {\n  SignTransactionErrorType,\n  SignTransactionParameters,\n  SignTransactionRequest,\n  SignTransactionReturnType,\n} from './actions/wallet/signTransaction.js'\nexport type {\n  SignTypedDataErrorType,\n  SignTypedDataParameters,\n  SignTypedDataReturnType,\n} from './actions/wallet/signTypedData.js'\nexport type {\n  SwitchChainErrorType,\n  SwitchChainParameters,\n} from './actions/wallet/switchChain.js'\nexport type {\n  WaitForCallsStatusErrorType,\n  WaitForCallsStatusParameters,\n  WaitForCallsStatusReturnType,\n  WaitForCallsStatusTimeoutErrorType,\n} from './actions/wallet/waitForCallsStatus.js'\nexport { WaitForCallsStatusTimeoutError } from './actions/wallet/waitForCallsStatus.js'\nexport type {\n  WatchAssetErrorType,\n  WatchAssetParameters,\n  WatchAssetReturnType,\n} from './actions/wallet/watchAsset.js'\nexport type {\n  WriteContractErrorType,\n  WriteContractParameters,\n  WriteContractReturnType,\n} from './actions/wallet/writeContract.js'\nexport type {\n  WriteContractSyncErrorType,\n  WriteContractSyncParameters,\n  WriteContractSyncReturnType,\n} from './actions/wallet/writeContractSync.js'\nexport {\n  type Client,\n  type ClientConfig,\n  type CreateClientErrorType,\n  createClient,\n  type MulticallBatchOptions,\n  rpcSchema,\n} from './clients/createClient.js'\nexport {\n  type CreatePublicClientErrorType,\n  createPublicClient,\n  type PublicClient,\n  type PublicClientConfig,\n} from './clients/createPublicClient.js'\nexport {\n  type CreateTestClientErrorType,\n  createTestClient,\n  type TestClient,\n  type TestClientConfig,\n} from './clients/createTestClient.js'\nexport {\n  type CreateWalletClientErrorType,\n  createWalletClient,\n  type WalletClient,\n  type WalletClientConfig,\n} from './clients/createWalletClient.js'\nexport {\n  type PublicActions,\n  publicActions,\n} from './clients/decorators/public.js'\nexport {\n  type TestActions,\n  testActions,\n} from './clients/decorators/test.js'\nexport {\n  type WalletActions,\n  walletActions,\n} from './clients/decorators/wallet.js'\nexport {\n  type CreateTransportErrorType,\n  createTransport,\n  type Transport,\n  type TransportConfig,\n} from './clients/transports/createTransport.js'\nexport {\n  type CustomTransport,\n  type CustomTransportConfig,\n  type CustomTransportErrorType,\n  custom,\n} from './clients/transports/custom.js'\nexport {\n  type FallbackTransport,\n  type FallbackTransportConfig,\n  type FallbackTransportErrorType,\n  fallback,\n  shouldThrow,\n} from './clients/transports/fallback.js'\nexport {\n  type HttpTransport,\n  type HttpTransportConfig,\n  type HttpTransportErrorType,\n  http,\n} from './clients/transports/http.js'\nexport {\n  type WebSocketTransport,\n  type WebSocketTransportConfig,\n  type WebSocketTransportErrorType,\n  webSocket,\n} from './clients/transports/webSocket.js'\nexport {\n  erc20Abi,\n  erc20Abi_bytes32,\n  erc721Abi,\n  erc1155Abi,\n  erc4626Abi,\n  erc6492SignatureValidatorAbi,\n  /** @deprecated use `erc6492SignatureValidatorAbi` instead. */\n  erc6492SignatureValidatorAbi as universalSignatureValidatorAbi,\n  multicall3Abi,\n} from './constants/abis.js'\nexport { ethAddress, zeroAddress } from './constants/address.js'\nexport { zeroHash } from './constants/bytes.js'\nexport {\n  deploylessCallViaBytecodeBytecode,\n  deploylessCallViaFactoryBytecode,\n  erc6492SignatureValidatorByteCode,\n  /** @deprecated use `erc6492SignatureValidatorByteCode` instead. */\n  erc6492SignatureValidatorByteCode as universalSignatureValidatorByteCode,\n} from './constants/contracts.js'\nexport {\n  maxInt8,\n  maxInt16,\n  maxInt24,\n  maxInt32,\n  maxInt40,\n  maxInt48,\n  maxInt56,\n  maxInt64,\n  maxInt72,\n  maxInt80,\n  maxInt88,\n  maxInt96,\n  maxInt104,\n  maxInt112,\n  maxInt120,\n  maxInt128,\n  maxInt136,\n  maxInt144,\n  maxInt152,\n  maxInt160,\n  maxInt168,\n  maxInt176,\n  maxInt184,\n  maxInt192,\n  maxInt200,\n  maxInt208,\n  maxInt216,\n  maxInt224,\n  maxInt232,\n  maxInt240,\n  maxInt248,\n  maxInt256,\n  maxUint8,\n  maxUint16,\n  maxUint24,\n  maxUint32,\n  maxUint40,\n  maxUint48,\n  maxUint56,\n  maxUint64,\n  maxUint72,\n  maxUint80,\n  maxUint88,\n  maxUint96,\n  maxUint104,\n  maxUint112,\n  maxUint120,\n  maxUint128,\n  maxUint136,\n  maxUint144,\n  maxUint152,\n  maxUint160,\n  maxUint168,\n  maxUint176,\n  maxUint184,\n  maxUint192,\n  maxUint200,\n  maxUint208,\n  maxUint216,\n  maxUint224,\n  maxUint232,\n  maxUint240,\n  maxUint248,\n  maxUint256,\n  minInt8,\n  minInt16,\n  minInt24,\n  minInt32,\n  minInt40,\n  minInt48,\n  minInt56,\n  minInt64,\n  minInt72,\n  minInt80,\n  minInt88,\n  minInt96,\n  minInt104,\n  minInt112,\n  minInt120,\n  minInt128,\n  minInt136,\n  minInt144,\n  minInt152,\n  minInt160,\n  minInt168,\n  minInt176,\n  minInt184,\n  minInt192,\n  minInt200,\n  minInt208,\n  minInt216,\n  minInt224,\n  minInt232,\n  minInt240,\n  minInt248,\n  minInt256,\n} from './constants/number.js'\nexport { presignMessagePrefix } from './constants/strings.js'\nexport { etherUnits, gweiUnits, weiUnits } from './constants/unit.js'\nexport {\n  AbiConstructorNotFoundError,\n  type AbiConstructorNotFoundErrorType,\n  AbiConstructorParamsNotFoundError,\n  type AbiConstructorParamsNotFoundErrorType,\n  AbiDecodingDataSizeInvalidError,\n  type AbiDecodingDataSizeInvalidErrorType,\n  AbiDecodingDataSizeTooSmallError,\n  type AbiDecodingDataSizeTooSmallErrorType,\n  AbiDecodingZeroDataError,\n  type AbiDecodingZeroDataErrorType,\n  AbiEncodingArrayLengthMismatchError,\n  type AbiEncodingArrayLengthMismatchErrorType,\n  AbiEncodingBytesSizeMismatchError,\n  type AbiEncodingBytesSizeMismatchErrorType,\n  AbiEncodingLengthMismatchError,\n  type AbiEncodingLengthMismatchErrorType,\n  AbiErrorInputsNotFoundError,\n  type AbiErrorInputsNotFoundErrorType,\n  AbiErrorNotFoundError,\n  type AbiErrorNotFoundErrorType,\n  AbiErrorSignatureNotFoundError,\n  type AbiErrorSignatureNotFoundErrorType,\n  AbiEventNotFoundError,\n  type AbiEventNotFoundErrorType,\n  AbiEventSignatureEmptyTopicsError,\n  type AbiEventSignatureEmptyTopicsErrorType,\n  AbiEventSignatureNotFoundError,\n  type AbiEventSignatureNotFoundErrorType,\n  AbiFunctionNotFoundError,\n  type AbiFunctionNotFoundErrorType,\n  AbiFunctionOutputsNotFoundError,\n  type AbiFunctionOutputsNotFoundErrorType,\n  AbiFunctionSignatureNotFoundError,\n  type AbiFunctionSignatureNotFoundErrorType,\n  BytesSizeMismatchError,\n  type BytesSizeMismatchErrorType,\n  DecodeLogDataMismatch,\n  type DecodeLogDataMismatchErrorType,\n  DecodeLogTopicsMismatch,\n  type DecodeLogTopicsMismatchErrorType,\n  InvalidAbiDecodingTypeError,\n  type InvalidAbiDecodingTypeErrorType,\n  InvalidAbiEncodingTypeError,\n  type InvalidAbiEncodingTypeErrorType,\n  InvalidArrayError,\n  type InvalidArrayErrorType,\n  InvalidDefinitionTypeError,\n  type InvalidDefinitionTypeErrorType,\n  UnsupportedPackedAbiType,\n  type UnsupportedPackedAbiTypeErrorType,\n} from './errors/abi.js'\nexport {\n  InvalidAddressError,\n  type InvalidAddressErrorType,\n} from './errors/address.js'\nexport { BaseError, type BaseErrorType, setErrorConfig } from './errors/base.js'\nexport {\n  BlockNotFoundError,\n  type BlockNotFoundErrorType,\n} from './errors/block.js'\nexport {\n  BundleFailedError,\n  type BundleFailedErrorType,\n} from './errors/calls.js'\nexport {\n  ChainDoesNotSupportContract,\n  type ChainDoesNotSupportContractErrorType,\n  ChainMismatchError,\n  type ChainMismatchErrorType,\n  ChainNotFoundError,\n  type ChainNotFoundErrorType,\n  ClientChainNotConfiguredError,\n  type ClientChainNotConfiguredErrorType,\n  InvalidChainIdError,\n  type InvalidChainIdErrorType,\n} from './errors/chain.js'\nexport {\n  CallExecutionError,\n  type CallExecutionErrorType,\n  ContractFunctionExecutionError,\n  type ContractFunctionExecutionErrorType,\n  ContractFunctionRevertedError,\n  type ContractFunctionRevertedErrorType,\n  ContractFunctionZeroDataError,\n  type ContractFunctionZeroDataErrorType,\n  CounterfactualDeploymentFailedError,\n  type CounterfactualDeploymentFailedErrorType,\n  RawContractError,\n  type RawContractErrorType,\n} from './errors/contract.js'\nexport {\n  SizeExceedsPaddingSizeError,\n  type SizeExceedsPaddingSizeErrorType,\n  SliceOffsetOutOfBoundsError,\n  type SliceOffsetOutOfBoundsErrorType,\n} from './errors/data.js'\nexport {\n  IntegerOutOfRangeError,\n  type IntegerOutOfRangeErrorType,\n  InvalidBytesBooleanError,\n  type InvalidBytesBooleanErrorType,\n  InvalidHexBooleanError,\n  type InvalidHexBooleanErrorType,\n  InvalidHexValueError,\n  type InvalidHexValueErrorType,\n  SizeOverflowError,\n  type SizeOverflowErrorType,\n} from './errors/encoding.js'\nexport {\n  type EnsAvatarInvalidMetadataError,\n  type EnsAvatarInvalidMetadataErrorType,\n  EnsAvatarInvalidNftUriError,\n  type EnsAvatarInvalidNftUriErrorType,\n  EnsAvatarUnsupportedNamespaceError,\n  type EnsAvatarUnsupportedNamespaceErrorType,\n  EnsAvatarUriResolutionError,\n  type EnsAvatarUriResolutionErrorType,\n  EnsInvalidChainIdError,\n  type EnsInvalidChainIdErrorType,\n} from './errors/ens.js'\nexport {\n  EstimateGasExecutionError,\n  type EstimateGasExecutionErrorType,\n} from './errors/estimateGas.js'\nexport {\n  BaseFeeScalarError,\n  type BaseFeeScalarErrorType,\n  Eip1559FeesNotSupportedError,\n  type Eip1559FeesNotSupportedErrorType,\n  MaxFeePerGasTooLowError,\n  type MaxFeePerGasTooLowErrorType,\n} from './errors/fee.js'\nexport {\n  FilterTypeNotSupportedError,\n  type FilterTypeNotSupportedErrorType,\n} from './errors/log.js'\nexport {\n  ExecutionRevertedError,\n  type ExecutionRevertedErrorType,\n  FeeCapTooHighError,\n  type FeeCapTooHighErrorType,\n  FeeCapTooLowError,\n  type FeeCapTooLowErrorType,\n  InsufficientFundsError,\n  type InsufficientFundsErrorType,\n  IntrinsicGasTooHighError,\n  type IntrinsicGasTooHighErrorType,\n  IntrinsicGasTooLowError,\n  type IntrinsicGasTooLowErrorType,\n  NonceMaxValueError,\n  type NonceMaxValueErrorType,\n  NonceTooHighError,\n  type NonceTooHighErrorType,\n  NonceTooLowError,\n  type NonceTooLowErrorType,\n  TipAboveFeeCapError,\n  type TipAboveFeeCapErrorType,\n  TransactionTypeNotSupportedError,\n  type TransactionTypeNotSupportedErrorType,\n  UnknownNodeError,\n  type UnknownNodeErrorType,\n} from './errors/node.js'\nexport {\n  HttpRequestError,\n  type HttpRequestErrorType,\n  RpcRequestError,\n  type RpcRequestErrorType,\n  SocketClosedError,\n  type SocketClosedErrorType,\n  TimeoutError,\n  type TimeoutErrorType,\n  WebSocketRequestError,\n  type WebSocketRequestErrorType,\n} from './errors/request.js'\nexport {\n  AtomicityNotSupportedError,\n  type AtomicityNotSupportedErrorType,\n  AtomicReadyWalletRejectedUpgradeError,\n  type AtomicReadyWalletRejectedUpgradeErrorType,\n  BundleTooLargeError,\n  type BundleTooLargeErrorType,\n  ChainDisconnectedError,\n  type ChainDisconnectedErrorType,\n  DuplicateIdError,\n  type DuplicateIdErrorType,\n  InternalRpcError,\n  type InternalRpcErrorType,\n  InvalidInputRpcError,\n  type InvalidInputRpcErrorType,\n  InvalidParamsRpcError,\n  type InvalidParamsRpcErrorType,\n  InvalidRequestRpcError,\n  type InvalidRequestRpcErrorType,\n  JsonRpcVersionUnsupportedError,\n  type JsonRpcVersionUnsupportedErrorType,\n  LimitExceededRpcError,\n  type LimitExceededRpcErrorType,\n  MethodNotFoundRpcError,\n  type MethodNotFoundRpcErrorType,\n  MethodNotSupportedRpcError,\n  type MethodNotSupportedRpcErrorType,\n  ParseRpcError,\n  type ParseRpcErrorType,\n  ProviderDisconnectedError,\n  type ProviderDisconnectedErrorType,\n  ProviderRpcError,\n  type ProviderRpcErrorCode,\n  type ProviderRpcErrorType,\n  ResourceNotFoundRpcError,\n  type ResourceNotFoundRpcErrorType,\n  ResourceUnavailableRpcError,\n  type ResourceUnavailableRpcErrorType,\n  RpcError,\n  type RpcErrorCode,\n  type RpcErrorType,\n  SwitchChainError,\n  TransactionRejectedRpcError,\n  type TransactionRejectedRpcErrorType,\n  UnauthorizedProviderError,\n  type UnauthorizedProviderErrorType,\n  UnknownBundleIdError,\n  type UnknownBundleIdErrorType,\n  UnknownRpcError,\n  type UnknownRpcErrorType,\n  UnsupportedChainIdError,\n  type UnsupportedChainIdErrorType,\n  UnsupportedNonOptionalCapabilityError,\n  type UnsupportedNonOptionalCapabilityErrorType,\n  UnsupportedProviderMethodError,\n  type UnsupportedProviderMethodErrorType,\n  UserRejectedRequestError,\n  type UserRejectedRequestErrorType,\n} from './errors/rpc.js'\nexport {\n  AccountStateConflictError,\n  type AccountStateConflictErrorType,\n  StateAssignmentConflictError,\n  type StateAssignmentConflictErrorType,\n} from './errors/stateOverride.js'\nexport {\n  FeeConflictError,\n  type FeeConflictErrorType,\n  InvalidLegacyVError,\n  type InvalidLegacyVErrorType,\n  InvalidSerializableTransactionError,\n  type InvalidSerializableTransactionErrorType,\n  InvalidSerializedTransactionError,\n  type InvalidSerializedTransactionErrorType,\n  InvalidSerializedTransactionTypeError,\n  type InvalidSerializedTransactionTypeErrorType,\n  InvalidStorageKeySizeError,\n  type InvalidStorageKeySizeErrorType,\n  TransactionExecutionError,\n  type TransactionExecutionErrorType,\n  TransactionNotFoundError,\n  type TransactionNotFoundErrorType,\n  TransactionReceiptNotFoundError,\n  type TransactionReceiptNotFoundErrorType,\n  WaitForTransactionReceiptTimeoutError,\n  type WaitForTransactionReceiptTimeoutErrorType,\n} from './errors/transaction.js'\nexport {\n  UrlRequiredError,\n  type UrlRequiredErrorType,\n} from './errors/transport.js'\nexport {\n  InvalidDomainError,\n  type InvalidDomainErrorType,\n  InvalidPrimaryTypeError,\n  type InvalidPrimaryTypeErrorType,\n  InvalidStructTypeError,\n  type InvalidStructTypeErrorType,\n} from './errors/typedData.js'\nexport {\n  InvalidDecimalNumberError,\n  type InvalidDecimalNumberErrorType,\n} from './errors/unit.js'\nexport type {\n  DeriveAccount,\n  HDKey,\n  ParseAccount,\n} from './types/account.js'\nexport type {\n  Authorization,\n  AuthorizationList,\n  AuthorizationRequest,\n  SerializedAuthorization,\n  SerializedAuthorizationList,\n  SignedAuthorization,\n  SignedAuthorizationList,\n} from './types/authorization.js'\nexport type {\n  Block,\n  BlockIdentifier,\n  BlockNumber,\n  BlockTag,\n  Uncle,\n} from './types/block.js'\nexport type { Call, Calls } from './types/calls.js'\nexport type {\n  Capabilities,\n  /** @deprecated Use `Capabilities` instead. */\n  Capabilities as WalletCapabilities,\n  CapabilitiesSchema,\n  /** @deprecated Use `ChainIdToCapabilities` instead. */\n  ChainIdToCapabilities as WalletCapabilitiesRecord,\n  ChainIdToCapabilities,\n  ExtractCapabilities,\n} from './types/capabilities.js'\nexport type {\n  Chain,\n  ChainConfig,\n  ChainContract,\n  ChainEstimateFeesPerGasFn,\n  ChainEstimateFeesPerGasFnParameters,\n  ChainFees,\n  ChainFeesFnParameters,\n  ChainFormatter,\n  ChainFormatters,\n  ChainMaxPriorityFeePerGasFn,\n  ChainSerializers,\n  DeriveChain,\n  ExtractChainFormatterExclude,\n  ExtractChainFormatterParameters,\n  ExtractChainFormatterReturnType,\n  GetChainParameter,\n} from './types/chain.js'\nexport type {\n  AbiEventParametersToPrimitiveTypes,\n  AbiEventParameterToPrimitiveType,\n  AbiEventTopicToPrimitiveType,\n  AbiItem,\n  AbiItemArgs,\n  AbiItemName,\n  ContractConstructorArgs,\n  ContractErrorArgs,\n  ContractErrorName,\n  ContractEventArgs,\n  ContractEventArgsFromTopics,\n  ContractEventName,\n  ContractFunctionArgs,\n  ContractFunctionName,\n  ContractFunctionParameters,\n  ContractFunctionReturnType,\n  EventDefinition,\n  ExtractAbiFunctionForArgs,\n  ExtractAbiItem,\n  ExtractAbiItemForArgs,\n  ExtractAbiItemNames,\n  GetEventArgs,\n  GetValue,\n  LogTopicType,\n  MaybeAbiEventName,\n  MaybeExtractEventArgsFromAbi,\n  UnionWiden,\n  Widen,\n} from './types/contract.js'\nexport type { DataSuffix } from './types/dataSuffix.js'\nexport type {\n  AddEthereumChainParameter,\n  BundlerRpcSchema,\n  DebugBundlerRpcSchema,\n  EIP1193EventMap,\n  EIP1193Events,\n  EIP1193Parameters,\n  EIP1193Provider,\n  EIP1193RequestFn,\n  EIP1193RequestOptions,\n  EIP1474Methods,\n  NetworkSync,\n  PaymasterRpcSchema,\n  ProviderConnectInfo,\n  ProviderMessage,\n  ProviderRpcErrorType as EIP1193ProviderRpcErrorType,\n  PublicRpcSchema,\n  RpcSchema,\n  RpcSchemaOverride,\n  TestRpcSchema,\n  WalletCallReceipt,\n  WalletGetAssetsParameters,\n  WalletGetAssetsReturnType,\n  WalletGetCallsStatusReturnType,\n  WalletGrantPermissionsParameters,\n  WalletGrantPermissionsReturnType,\n  WalletPermission,\n  WalletPermissionCaveat,\n  WalletRpcSchema,\n  WalletSendCallsParameters,\n  WalletSendCallsReturnType,\n  WatchAssetParams,\n} from './types/eip1193.js'\nexport { ProviderRpcError as EIP1193ProviderRpcError } from './types/eip1193.js'\nexport type { BlobSidecar, BlobSidecars } from './types/eip4844.js'\nexport type { AssetGateway, AssetGatewayUrls } from './types/ens.js'\nexport type {\n  FeeHistory,\n  FeeValues,\n  FeeValuesEIP1559,\n  FeeValuesEIP4844,\n  FeeValuesLegacy,\n  FeeValuesType,\n} from './types/fee.js'\nexport type { Filter, FilterType } from './types/filter.js'\nexport type { GetTransactionRequestKzgParameter, Kzg } from './types/kzg.js'\nexport type { Log } from './types/log.js'\nexport type {\n  ByteArray,\n  CompactSignature,\n  Hash,\n  Hex,\n  LogTopic,\n  SignableMessage,\n  Signature,\n} from './types/misc.js'\nexport type {\n  MulticallContracts,\n  MulticallResponse,\n  MulticallResults,\n} from './types/multicall.js'\nexport type { Register, ResolvedRegister } from './types/register.js'\nexport type {\n  Index,\n  Quantity,\n  RpcAccountStateOverride,\n  RpcAuthorization,\n  RpcAuthorizationList,\n  RpcBlock,\n  RpcBlockIdentifier,\n  RpcBlockNumber,\n  RpcFeeHistory,\n  RpcFeeValues,\n  RpcLog,\n  RpcProof,\n  RpcStateMapping,\n  RpcStateOverride,\n  RpcTransaction,\n  RpcTransactionReceipt,\n  RpcTransactionRequest,\n  RpcUncle,\n  Status,\n} from './types/rpc.js'\nexport type {\n  StateMapping,\n  StateOverride,\n} from './types/stateOverride.js'\nexport type {\n  AccessList,\n  Transaction,\n  TransactionBase,\n  TransactionEIP1559,\n  TransactionEIP2930,\n  TransactionEIP4844,\n  TransactionEIP7702,\n  TransactionLegacy,\n  TransactionReceipt,\n  TransactionRequest,\n  TransactionRequestBase,\n  TransactionRequestEIP1559,\n  TransactionRequestEIP2930,\n  TransactionRequestEIP4844,\n  TransactionRequestEIP7702,\n  TransactionRequestGeneric,\n  TransactionRequestLegacy,\n  TransactionSerializable,\n  TransactionSerializableBase,\n  TransactionSerializableEIP1559,\n  TransactionSerializableEIP2930,\n  TransactionSerializableEIP4844,\n  TransactionSerializableEIP7702,\n  TransactionSerializableGeneric,\n  TransactionSerializableLegacy,\n  TransactionSerialized,\n  TransactionSerializedEIP1559,\n  TransactionSerializedEIP2930,\n  TransactionSerializedEIP4844,\n  TransactionSerializedEIP7702,\n  TransactionSerializedGeneric,\n  TransactionSerializedLegacy,\n  TransactionType,\n} from './types/transaction.js'\nexport type { GetPollOptions, GetTransportConfig } from './types/transport.js'\nexport type {\n  EIP712DomainDefinition,\n  MessageDefinition,\n  TypedDataDefinition,\n} from './types/typedData.js'\nexport type {\n  Assign,\n  Branded,\n  Evaluate,\n  ExactPartial,\n  ExactRequired,\n  IsNarrowable,\n  IsNever,\n  IsUndefined,\n  IsUnion,\n  LooseOmit,\n  MaybePartial,\n  MaybePromise,\n  MaybeRequired,\n  Mutable,\n  NoInfer,\n  NoUndefined,\n  Omit,\n  OneOf,\n  Or,\n  PartialBy,\n  Prettify,\n  RequiredBy,\n  Some,\n  UnionEvaluate,\n  UnionLooseOmit,\n  UnionOmit,\n  UnionPartialBy,\n  UnionPick,\n  UnionRequiredBy,\n  UnionToTuple,\n  ValueOf,\n} from './types/utils.js'\nexport type { Withdrawal } from './types/withdrawal.js'\nexport {\n  type DecodeAbiParametersErrorType,\n  type DecodeAbiParametersReturnType,\n  decodeAbiParameters,\n} from './utils/abi/decodeAbiParameters.js'\nexport {\n  type DecodeDeployDataErrorType,\n  type DecodeDeployDataParameters,\n  type DecodeDeployDataReturnType,\n  decodeDeployData,\n} from './utils/abi/decodeDeployData.js'\nexport {\n  type DecodeErrorResultErrorType,\n  type DecodeErrorResultParameters,\n  type DecodeErrorResultReturnType,\n  decodeErrorResult,\n} from './utils/abi/decodeErrorResult.js'\nexport {\n  type DecodeEventLogErrorType,\n  type DecodeEventLogParameters,\n  type DecodeEventLogReturnType,\n  decodeEventLog,\n} from './utils/abi/decodeEventLog.js'\nexport {\n  type DecodeFunctionDataErrorType,\n  type DecodeFunctionDataParameters,\n  type DecodeFunctionDataReturnType,\n  decodeFunctionData,\n} from './utils/abi/decodeFunctionData.js'\nexport {\n  type DecodeFunctionResultErrorType,\n  type DecodeFunctionResultParameters,\n  type DecodeFunctionResultReturnType,\n  decodeFunctionResult,\n} from './utils/abi/decodeFunctionResult.js'\nexport {\n  type EncodeAbiParametersErrorType,\n  type EncodeAbiParametersReturnType,\n  encodeAbiParameters,\n} from './utils/abi/encodeAbiParameters.js'\nexport {\n  type EncodeDeployDataErrorType,\n  type EncodeDeployDataParameters,\n  type EncodeDeployDataReturnType,\n  encodeDeployData,\n} from './utils/abi/encodeDeployData.js'\nexport {\n  type EncodeErrorResultErrorType,\n  type EncodeErrorResultParameters,\n  type EncodeErrorResultReturnType,\n  encodeErrorResult,\n} from './utils/abi/encodeErrorResult.js'\nexport {\n  type EncodeEventTopicsErrorType,\n  type EncodeEventTopicsParameters,\n  type EncodeEventTopicsReturnType,\n  encodeEventTopics,\n} from './utils/abi/encodeEventTopics.js'\nexport {\n  type EncodeFunctionDataErrorType,\n  type EncodeFunctionDataParameters,\n  type EncodeFunctionDataReturnType,\n  encodeFunctionData,\n} from './utils/abi/encodeFunctionData.js'\nexport {\n  type EncodeFunctionResultErrorType,\n  type EncodeFunctionResultParameters,\n  type EncodeFunctionResultReturnType,\n  encodeFunctionResult,\n} from './utils/abi/encodeFunctionResult.js'\nexport {\n  type EncodePackedErrorType,\n  encodePacked,\n} from './utils/abi/encodePacked.js'\nexport {\n  type GetAbiItemErrorType,\n  type GetAbiItemParameters,\n  type GetAbiItemReturnType,\n  getAbiItem,\n} from './utils/abi/getAbiItem.js'\nexport {\n  type ParseEventLogsErrorType,\n  type ParseEventLogsParameters,\n  type ParseEventLogsReturnType,\n  parseEventLogs,\n} from './utils/abi/parseEventLogs.js'\nexport {\n  type PrepareEncodeFunctionDataErrorType,\n  type PrepareEncodeFunctionDataParameters,\n  type PrepareEncodeFunctionDataReturnType,\n  prepareEncodeFunctionData,\n} from './utils/abi/prepareEncodeFunctionData.js'\nexport {\n  type ChecksumAddressErrorType,\n  checksumAddress,\n  type GetAddressErrorType,\n  getAddress,\n} from './utils/address/getAddress.js'\nexport {\n  type GetContractAddressOptions,\n  type GetCreate2AddressErrorType,\n  type GetCreate2AddressOptions,\n  type GetCreateAddressErrorType,\n  type GetCreateAddressOptions,\n  getContractAddress,\n  getCreate2Address,\n  getCreateAddress,\n} from './utils/address/getContractAddress.js'\nexport {\n  type IsAddressErrorType,\n  type IsAddressOptions,\n  isAddress,\n} from './utils/address/isAddress.js'\nexport {\n  type IsAddressEqualErrorType,\n  type IsAddressEqualReturnType,\n  isAddressEqual,\n} from './utils/address/isAddressEqual.js'\nexport {\n  type BlobsToCommitmentsErrorType,\n  type BlobsToCommitmentsParameters,\n  type BlobsToCommitmentsReturnType,\n  blobsToCommitments,\n} from './utils/blob/blobsToCommitments.js'\nexport {\n  blobsToProofs,\n  type blobsToProofsErrorType,\n  type blobsToProofsParameters,\n  type blobsToProofsReturnType,\n} from './utils/blob/blobsToProofs.js'\nexport {\n  type CommitmentsToVersionedHashesErrorType,\n  type CommitmentsToVersionedHashesParameters,\n  type CommitmentsToVersionedHashesReturnType,\n  commitmentsToVersionedHashes,\n} from './utils/blob/commitmentsToVersionedHashes.js'\nexport {\n  type CommitmentToVersionedHashErrorType,\n  type CommitmentToVersionedHashParameters,\n  type CommitmentToVersionedHashReturnType,\n  commitmentToVersionedHash,\n} from './utils/blob/commitmentToVersionedHash.js'\nexport {\n  type FromBlobsErrorType,\n  type FromBlobsParameters,\n  type FromBlobsReturnType,\n  fromBlobs,\n} from './utils/blob/fromBlobs.js'\nexport {\n  type SidecarsToVersionedHashesErrorType,\n  type SidecarsToVersionedHashesParameters,\n  type SidecarsToVersionedHashesReturnType,\n  sidecarsToVersionedHashes,\n} from './utils/blob/sidecarsToVersionedHashes.js'\nexport {\n  type ToBlobSidecarsErrorType,\n  type ToBlobSidecarsParameters,\n  type ToBlobSidecarsReturnType,\n  toBlobSidecars,\n} from './utils/blob/toBlobSidecars.js'\nexport {\n  type ToBlobsErrorType,\n  type ToBlobsParameters,\n  type ToBlobsReturnType,\n  toBlobs,\n} from './utils/blob/toBlobs.js'\nexport {\n  type CcipRequestErrorType,\n  type CcipRequestParameters,\n  ccipRequest,\n  /** @deprecated Use `ccipRequest`. */\n  ccipRequest as ccipFetch,\n  type OffchainLookupErrorType,\n  offchainLookup,\n  offchainLookupAbiItem,\n  offchainLookupSignature,\n} from './utils/ccip.js'\nexport {\n  type CcipReadTunnelParameters,\n  ccipReadTunnel,\n} from './utils/ccipTunnel.js'\nexport {\n  type AssertCurrentChainErrorType,\n  type AssertCurrentChainParameters,\n  assertCurrentChain,\n} from './utils/chain/assertCurrentChain.js'\nexport {\n  type DefineChainReturnType,\n  defineChain,\n  extendSchema,\n} from './utils/chain/defineChain.js'\nexport {\n  type ExtractChainErrorType,\n  type ExtractChainParameters,\n  type ExtractChainReturnType,\n  extractChain,\n} from './utils/chain/extractChain.js'\nexport {\n  type GetChainContractAddressErrorType,\n  getChainContractAddress,\n} from './utils/chain/getChainContractAddress.js'\nexport {\n  type ConcatBytesErrorType,\n  type ConcatErrorType,\n  type ConcatHexErrorType,\n  type ConcatReturnType,\n  concat,\n  concatBytes,\n  concatHex,\n} from './utils/data/concat.js'\nexport { type IsBytesErrorType, isBytes } from './utils/data/isBytes.js'\nexport { type IsHexErrorType, isHex } from './utils/data/isHex.js'\nexport {\n  type PadBytesErrorType,\n  type PadErrorType,\n  type PadHexErrorType,\n  type PadReturnType,\n  pad,\n  padBytes,\n  padHex,\n} from './utils/data/pad.js'\nexport { type SizeErrorType, size } from './utils/data/size.js'\nexport {\n  type SliceBytesErrorType,\n  type SliceErrorType,\n  type SliceHexErrorType,\n  slice,\n  sliceBytes,\n  sliceHex,\n} from './utils/data/slice.js'\nexport {\n  type TrimErrorType,\n  type TrimReturnType,\n  trim,\n} from './utils/data/trim.js'\nexport {\n  type BytesToBigIntErrorType,\n  type BytesToBigIntOpts,\n  type BytesToBoolErrorType,\n  type BytesToBoolOpts,\n  type BytesToNumberErrorType,\n  type BytesToNumberOpts,\n  type BytesToStringErrorType,\n  type BytesToStringOpts,\n  bytesToBigInt,\n  bytesToBool,\n  bytesToNumber,\n  bytesToString,\n  type FromBytesErrorType,\n  type FromBytesParameters,\n  fromBytes,\n} from './utils/encoding/fromBytes.js'\nexport {\n  type FromHexErrorType,\n  fromHex,\n  type HexToBigIntErrorType,\n  type HexToBoolErrorType,\n  type HexToNumberErrorType,\n  type HexToStringErrorType,\n  hexToBigInt,\n  hexToBool,\n  hexToNumber,\n  hexToString,\n} from './utils/encoding/fromHex.js'\nexport {\n  type FromRlpErrorType,\n  type FromRlpReturnType,\n  fromRlp,\n} from './utils/encoding/fromRlp.js'\nexport {\n  type BoolToBytesErrorType,\n  type BoolToBytesOpts,\n  boolToBytes,\n  type HexToBytesErrorType,\n  type HexToBytesOpts,\n  hexToBytes,\n  type NumberToBytesErrorType,\n  numberToBytes,\n  type StringToBytesErrorType,\n  type StringToBytesOpts,\n  stringToBytes,\n  type ToBytesErrorType,\n  type ToBytesParameters,\n  toBytes,\n} from './utils/encoding/toBytes.js'\nexport {\n  type BoolToHexErrorType,\n  type BoolToHexOpts,\n  type BytesToHexErrorType,\n  type BytesToHexOpts,\n  boolToHex,\n  bytesToHex,\n  type NumberToHexErrorType,\n  type NumberToHexOpts,\n  numberToHex,\n  type StringToHexErrorType,\n  type StringToHexOpts,\n  stringToHex,\n  type ToHexErrorType,\n  type ToHexParameters,\n  toHex,\n} from './utils/encoding/toHex.js'\nexport {\n  type BytesToRlpErrorType,\n  bytesToRlp,\n  type HexToRlpErrorType,\n  hexToRlp,\n  type ToRlpErrorType,\n  type ToRlpReturnType,\n  toRlp,\n} from './utils/encoding/toRlp.js'\nexport { type LabelhashErrorType, labelhash } from './utils/ens/labelhash.js'\nexport { type NamehashErrorType, namehash } from './utils/ens/namehash.js'\nexport {\n  type ToCoinTypeError,\n  toCoinType,\n} from './utils/ens/toCoinType.js'\nexport {\n  type GetContractErrorReturnType,\n  getContractError,\n} from './utils/errors/getContractError.js'\nexport {\n  type DefineBlockErrorType,\n  defineBlock,\n  type FormatBlockErrorType,\n  type FormattedBlock,\n  formatBlock,\n} from './utils/formatters/block.js'\nexport { type FormatLogErrorType, formatLog } from './utils/formatters/log.js'\nexport {\n  type DefineTransactionErrorType,\n  defineTransaction,\n  type FormatTransactionErrorType,\n  type FormattedTransaction,\n  formatTransaction,\n  transactionType,\n} from './utils/formatters/transaction.js'\nexport {\n  type DefineTransactionReceiptErrorType,\n  defineTransactionReceipt,\n  type FormatTransactionReceiptErrorType,\n  type FormattedTransactionReceipt,\n  formatTransactionReceipt,\n} from './utils/formatters/transactionReceipt.js'\nexport {\n  type DefineTransactionRequestErrorType,\n  defineTransactionRequest,\n  type ExtractFormattedTransactionRequest,\n  type FormatTransactionRequestErrorType,\n  type FormattedTransactionRequest,\n  formatTransactionRequest,\n  rpcTransactionType,\n} from './utils/formatters/transactionRequest.js'\nexport { type IsHashErrorType, isHash } from './utils/hash/isHash.js'\nexport {\n  type Keccak256ErrorType,\n  type Keccak256Hash,\n  keccak256,\n} from './utils/hash/keccak256.js'\nexport {\n  type Ripemd160ErrorType,\n  type Ripemd160Hash,\n  ripemd160,\n} from './utils/hash/ripemd160.js'\nexport {\n  type Sha256ErrorType,\n  type Sha256Hash,\n  sha256,\n} from './utils/hash/sha256.js'\nexport {\n  type ToEventHashErrorType,\n  toEventHash,\n} from './utils/hash/toEventHash.js'\nexport {\n  type ToEventSelectorErrorType,\n  /** @deprecated use `ToEventSelectorErrorType`. */\n  type ToEventSelectorErrorType as GetEventSelectorErrorType,\n  toEventSelector,\n  /** @deprecated use `toEventSelector`. */\n  toEventSelector as getEventSelector,\n} from './utils/hash/toEventSelector.js'\nexport {\n  type ToEventSignatureErrorType,\n  /** @deprecated use `ToEventSignatureErrorType`. */\n  type ToEventSignatureErrorType as GetEventSignatureErrorType,\n  toEventSignature,\n  /** @deprecated use `toEventSignature`. */\n  toEventSignature as getEventSignature,\n} from './utils/hash/toEventSignature.js'\nexport {\n  type ToFunctionHashErrorType,\n  toFunctionHash,\n} from './utils/hash/toFunctionHash.js'\nexport {\n  type ToFunctionSelectorErrorType,\n  /** @deprecated use `ToFunctionSelectorErrorType`. */\n  type ToFunctionSelectorErrorType as GetFunctionSelectorErrorType,\n  toFunctionSelector,\n  /** @deprecated use `toFunctionSelector`. */\n  toFunctionSelector as getFunctionSelector,\n} from './utils/hash/toFunctionSelector.js'\nexport {\n  type ToFunctionSignatureErrorType,\n  /** @deprecated use `ToFunctionSignatureErrorType`. */\n  type ToFunctionSignatureErrorType as GetFunctionSignatureErrorType,\n  toFunctionSignature,\n  /** @deprecated use `toFunctionSignature`. */\n  toFunctionSignature as getFunctionSignature,\n} from './utils/hash/toFunctionSignature.js'\nexport {\n  type DefineKzgErrorType,\n  type DefineKzgParameters,\n  type DefineKzgReturnType,\n  defineKzg,\n} from './utils/kzg/defineKzg.js'\nexport {\n  type SetupKzgErrorType,\n  type SetupKzgParameters,\n  type SetupKzgReturnType,\n  setupKzg,\n} from './utils/kzg/setupKzg.js'\nexport {\n  type CreateNonceManagerParameters,\n  createNonceManager,\n  type NonceManager,\n  type NonceManagerSource,\n  nonceManager,\n} from './utils/nonceManager.js'\nexport { withCache } from './utils/promise/withCache.js'\nexport {\n  type WithRetryErrorType,\n  withRetry,\n} from './utils/promise/withRetry.js'\nexport {\n  type WithTimeoutErrorType,\n  withTimeout,\n} from './utils/promise/withTimeout.js'\nexport {\n  type CompactSignatureToSignatureErrorType,\n  compactSignatureToSignature,\n} from './utils/signature/compactSignatureToSignature.js'\nexport {\n  type HashMessageErrorType,\n  hashMessage,\n} from './utils/signature/hashMessage.js'\nexport {\n  type HashDomainErrorType,\n  type HashStructErrorType,\n  type HashTypedDataErrorType,\n  type HashTypedDataParameters,\n  type HashTypedDataReturnType,\n  hashDomain,\n  hashStruct,\n  hashTypedData,\n} from './utils/signature/hashTypedData.js'\nexport {\n  type IsErc6492SignatureErrorType,\n  type IsErc6492SignatureParameters,\n  type IsErc6492SignatureReturnType,\n  isErc6492Signature,\n} from './utils/signature/isErc6492Signature.js'\nexport {\n  type IsErc8010SignatureErrorType,\n  type IsErc8010SignatureParameters,\n  type IsErc8010SignatureReturnType,\n  isErc8010Signature,\n} from './utils/signature/isErc8010Signature.js'\nexport {\n  /** @deprecated Use `ParseCompactSignatureErrorType`. */\n  type ParseCompactSignatureErrorType as HexToCompactSignatureErrorType,\n  type ParseCompactSignatureErrorType,\n  /** @deprecated Use `parseCompactSignature`. */\n  parseCompactSignature as hexToCompactSignature,\n  parseCompactSignature,\n} from './utils/signature/parseCompactSignature.js'\nexport {\n  type ParseErc6492SignatureErrorType,\n  type ParseErc6492SignatureParameters,\n  type ParseErc6492SignatureReturnType,\n  parseErc6492Signature,\n} from './utils/signature/parseErc6492Signature.js'\nexport {\n  type ParseErc8010SignatureErrorType,\n  type ParseErc8010SignatureParameters,\n  type ParseErc8010SignatureReturnType,\n  parseErc8010Signature,\n} from './utils/signature/parseErc8010Signature.js'\nexport {\n  /** @deprecated Use `ParseSignatureErrorType`. */\n  type ParseSignatureErrorType as HexToSignatureErrorType,\n  type ParseSignatureErrorType,\n  /** @deprecated Use `parseSignature`. */\n  parseSignature as hexToSignature,\n  parseSignature,\n} from './utils/signature/parseSignature.js'\nexport {\n  type RecoverAddressErrorType,\n  type RecoverAddressParameters,\n  type RecoverAddressReturnType,\n  recoverAddress,\n} from './utils/signature/recoverAddress.js'\nexport {\n  type RecoverMessageAddressErrorType,\n  type RecoverMessageAddressParameters,\n  type RecoverMessageAddressReturnType,\n  recoverMessageAddress,\n} from './utils/signature/recoverMessageAddress.js'\nexport {\n  type RecoverPublicKeyErrorType,\n  type RecoverPublicKeyParameters,\n  type RecoverPublicKeyReturnType,\n  recoverPublicKey,\n} from './utils/signature/recoverPublicKey.js'\nexport {\n  type RecoverTransactionAddressErrorType,\n  type RecoverTransactionAddressParameters,\n  type RecoverTransactionAddressReturnType,\n  recoverTransactionAddress,\n} from './utils/signature/recoverTransactionAddress.js'\nexport {\n  type RecoverTypedDataAddressErrorType,\n  type RecoverTypedDataAddressParameters,\n  type RecoverTypedDataAddressReturnType,\n  recoverTypedDataAddress,\n} from './utils/signature/recoverTypedDataAddress.js'\nexport {\n  /** @deprecated Use `SignatureToHexErrorType` instead. */\n  type SerializeCompactSignatureErrorType as CompactSignatureToHexErrorType,\n  type SerializeCompactSignatureErrorType,\n  /** @deprecated Use `serializeCompactSignature` instead. */\n  serializeCompactSignature as compactSignatureToHex,\n  serializeCompactSignature,\n} from './utils/signature/serializeCompactSignature.js'\nexport {\n  type SerializeErc6492SignatureErrorType,\n  type SerializeErc6492SignatureParameters,\n  type SerializeErc6492SignatureReturnType,\n  serializeErc6492Signature,\n} from './utils/signature/serializeErc6492Signature.js'\nexport {\n  type SerializeErc8010SignatureErrorType,\n  type SerializeErc8010SignatureParameters,\n  type SerializeErc8010SignatureReturnType,\n  serializeErc8010Signature,\n} from './utils/signature/serializeErc8010Signature.js'\nexport {\n  /** @deprecated Use `SignatureToHexErrorType` instead. */\n  type SerializeSignatureErrorType as SignatureToHexErrorType,\n  type SerializeSignatureErrorType,\n  type SerializeSignatureParameters,\n  type SerializeSignatureReturnType,\n  /** @deprecated Use `serializeSignature` instead. */\n  serializeSignature as signatureToHex,\n  serializeSignature,\n} from './utils/signature/serializeSignature.js'\nexport {\n  type SignatureToCompactSignatureErrorType,\n  signatureToCompactSignature,\n} from './utils/signature/signatureToCompactSignature.js'\nexport {\n  type ToPrefixedMessageErrorType,\n  toPrefixedMessage,\n} from './utils/signature/toPrefixedMessage.js'\nexport {\n  type VerifyHashErrorType,\n  type VerifyHashParameters,\n  type VerifyHashReturnType,\n  verifyHash,\n} from './utils/signature/verifyHash.js'\nexport {\n  type VerifyMessageErrorType,\n  type VerifyMessageParameters,\n  type VerifyMessageReturnType,\n  verifyMessage,\n} from './utils/signature/verifyMessage.js'\nexport {\n  type VerifyTypedDataErrorType,\n  type VerifyTypedDataParameters,\n  type VerifyTypedDataReturnType,\n  verifyTypedData,\n} from './utils/signature/verifyTypedData.js'\nexport { type StringifyErrorType, stringify } from './utils/stringify.js'\nexport {\n  type AssertRequestErrorType,\n  assertRequest,\n} from './utils/transaction/assertRequest.js'\nexport {\n  type AssertTransactionEIP1559ErrorType,\n  type AssertTransactionEIP2930ErrorType,\n  type AssertTransactionLegacyErrorType,\n  assertTransactionEIP1559,\n  assertTransactionEIP2930,\n  assertTransactionLegacy,\n} from './utils/transaction/assertTransaction.js'\nexport {\n  type GetSerializedTransactionType,\n  type GetSerializedTransactionTypeErrorType,\n  getSerializedTransactionType,\n} from './utils/transaction/getSerializedTransactionType.js'\nexport {\n  type GetTransactionType,\n  type GetTransactionTypeErrorType,\n  getTransactionType,\n} from './utils/transaction/getTransactionType.js'\nexport {\n  type ParseTransactionErrorType,\n  type ParseTransactionReturnType,\n  parseTransaction,\n} from './utils/transaction/parseTransaction.js'\nexport {\n  type SerializeAccessListErrorType,\n  serializeAccessList,\n} from './utils/transaction/serializeAccessList.js'\nexport {\n  type SerializedTransactionReturnType,\n  type SerializeTransactionErrorType,\n  type SerializeTransactionFn,\n  serializeTransaction,\n} from './utils/transaction/serializeTransaction.js'\nexport {\n  type DomainSeparatorErrorType,\n  domainSeparator,\n  type GetTypesForEIP712DomainErrorType,\n  getTypesForEIP712Domain,\n  type SerializeTypedDataErrorType,\n  serializeTypedData,\n  type ValidateTypedDataErrorType,\n  validateTypedData,\n} from './utils/typedData.js'\nexport {\n  type FormatEtherErrorType,\n  formatEther,\n} from './utils/unit/formatEther.js'\nexport {\n  type FormatGweiErrorType,\n  formatGwei,\n} from './utils/unit/formatGwei.js'\nexport {\n  type FormatUnitsErrorType,\n  formatUnits,\n} from './utils/unit/formatUnits.js'\nexport {\n  type ParseEtherErrorType,\n  parseEther,\n} from './utils/unit/parseEther.js'\nexport { type ParseGweiErrorType, parseGwei } from './utils/unit/parseGwei.js'\nexport {\n  type ParseUnitsErrorType,\n  parseUnits,\n} from './utils/unit/parseUnits.js'\n","import { ExtractAbiFunction, AbiParametersToPrimitiveTypes } from \"abitype\";\n\nimport {\n  zoraCreator1155PremintExecutorImplABI,\n  iPremintDefinitionsABI,\n  sponsoredSparksSpenderABI,\n} from \"./generated/wagmi\";\nimport { Address } from \"viem\";\n\nimport { commentsABI, callerAndCommenterABI } from \"./generated/wagmi\";\n\nexport enum PremintConfigVersion {\n  V1 = \"1\",\n  V2 = \"2\",\n  V3 = \"3\",\n}\n\nexport type ContractCreationConfig = Omit<\n  AbiParametersToPrimitiveTypes<\n    ExtractAbiFunction<\n      typeof zoraCreator1155PremintExecutorImplABI,\n      \"premint\"\n    >[\"inputs\"]\n  >[0],\n  \"additionalAdmins\"\n> & {\n  additionalAdmins: Address[];\n};\n\nexport type TokenCreationConfigV1 = AbiParametersToPrimitiveTypes<\n  ExtractAbiFunction<\n    typeof iPremintDefinitionsABI,\n    \"tokenConfigV1Definition\"\n  >[\"inputs\"]\n>[0];\n\nexport type TokenCreationConfigV2 = AbiParametersToPrimitiveTypes<\n  ExtractAbiFunction<\n    typeof iPremintDefinitionsABI,\n    \"tokenConfigV2Definition\"\n  >[\"inputs\"]\n>[0];\n\nexport type TokenCreationConfigV3 = AbiParametersToPrimitiveTypes<\n  ExtractAbiFunction<\n    typeof iPremintDefinitionsABI,\n    \"tokenConfigV3Definition\"\n  >[\"inputs\"]\n>[0];\n\nexport type PremintConfigEncoded = AbiParametersToPrimitiveTypes<\n  ExtractAbiFunction<\n    typeof zoraCreator1155PremintExecutorImplABI,\n    \"premint\"\n  >[\"inputs\"]\n>[2];\n\ntype PremintConfigCommon = Pick<\n  PremintConfigEncoded,\n  \"deleted\" | \"uid\" | \"version\"\n>;\n\nexport type PremintConfigV1 = PremintConfigCommon & {\n  tokenConfig: TokenCreationConfigV1;\n};\nexport type PremintConfigV2 = PremintConfigCommon & {\n  tokenConfig: TokenCreationConfigV2;\n};\nexport type PremintConfigV3 = PremintConfigCommon & {\n  tokenConfig: TokenCreationConfigV3;\n};\n\nexport type PremintMintArguments = AbiParametersToPrimitiveTypes<\n  ExtractAbiFunction<\n    typeof zoraCreator1155PremintExecutorImplABI,\n    \"premint\"\n  >[\"inputs\"]\n>[5];\n\nexport type PremintConfigForVersion<T extends PremintConfigVersion> =\n  T extends PremintConfigVersion.V1\n    ? PremintConfigV1\n    : T extends PremintConfigVersion.V2\n      ? PremintConfigV2\n      : PremintConfigV3;\n\nexport type PremintConfigWithVersion<T extends PremintConfigVersion> = {\n  /** Premint Config */\n  premintConfig: PremintConfigForVersion<T>;\n  /** PremintConfigVersion of the premint */\n  premintConfigVersion: T;\n};\nexport type PremintConfigAndVersion =\n  | PremintConfigWithVersion<PremintConfigVersion.V1>\n  | PremintConfigWithVersion<PremintConfigVersion.V2>\n  | PremintConfigWithVersion<PremintConfigVersion.V3>;\n\nexport type PremintConfig = PremintConfigV1 | PremintConfigV2;\n\nexport type TokenCreationConfig =\n  | TokenCreationConfigV1\n  | TokenCreationConfigV2\n  | TokenCreationConfigV3;\n\nexport type PremintConfigForTokenCreationConfig<T extends TokenCreationConfig> =\n  T extends TokenCreationConfigV1\n    ? PremintConfigV1\n    : T extends TokenCreationConfigV2\n      ? PremintConfigV2\n      : PremintConfigV3;\n\nexport type TokenConfigForVersion<T extends PremintConfigVersion> =\n  PremintConfigForVersion<T>[\"tokenConfig\"];\n\nexport type TokenConfigWithVersion<T extends PremintConfigVersion> = {\n  tokenConfig: TokenConfigForVersion<T>;\n  premintConfigVersion: T;\n};\n\nexport type SponsoredSparksBatch = AbiParametersToPrimitiveTypes<\n  ExtractAbiFunction<\n    typeof sponsoredSparksSpenderABI,\n    \"hashSponsoredMint\"\n  >[\"inputs\"]\n>[0];\n\nexport type CommentIdentifier = AbiParametersToPrimitiveTypes<\n  ExtractAbiFunction<typeof commentsABI, \"hashCommentIdentifier\">[\"inputs\"]\n>[0];\n\nexport const emptyCommentIdentifier = (): CommentIdentifier => {\n  const zeroAddress = \"0x0000000000000000000000000000000000000000\";\n  const zeroHash =\n    \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n  return {\n    commenter: zeroAddress,\n    contractAddress: zeroAddress,\n    tokenId: 0n,\n    nonce: zeroHash,\n  };\n};\n\n/**\n * The PermitComment type represents the data structure for a permit comment,\n * for cross-chain commenting, where a user can sign a comment message on one chain,\n * which can then be submitted by anyone on the destination chain to execute the comment action.\n *\n * The permit includes details such as the comment text, the commenter's address,\n * the comment being replied to, and chain IDs for the source and destination chains.\n */\nexport type PermitComment = AbiParametersToPrimitiveTypes<\n  ExtractAbiFunction<typeof commentsABI, \"hashPermitComment\">[\"inputs\"]\n>[0];\n\n/**\n * The PermitSparkComment type represents the data structure for a permit spark comment,\n * for cross-chain sparking (liking with value) of comments, where a user can sign a spark comment message on one chain,\n * which can then be submitted by anyone on the destination chain to execute the spark action.\n *\n * The permit includes details such as the comment to be sparked, the sparker's address,\n * the quantity of sparks, and chain IDs for the source and destination chains.\n */\nexport type PermitSparkComment = AbiParametersToPrimitiveTypes<\n  ExtractAbiFunction<typeof commentsABI, \"hashPermitSparkComment\">[\"inputs\"]\n>[0];\n\n/**\n * The PermitTimedSaleMintAndComment type represents the data structure for a permit timed sale mint and comment,\n * where a user can sign a message to mint during a timed sale and leave a comment in a single transaction.\n * This can be executed on the destination chain by anyone.\n *\n * The permit includes details such as the minting parameters, comment text, and chain IDs for the source and destination chains.\n */\nexport type PermitMintAndComment = AbiParametersToPrimitiveTypes<\n  ExtractAbiFunction<\n    typeof callerAndCommenterABI,\n    \"hashPermitTimedSaleMintAndComment\"\n  >[\"inputs\"]\n>[0];\n\n/**\n * The PermitBuyOnSecondaryAndComment type represents the data structure for a permit buy on secondary market and comment,\n * where a user can sign a message to buy on secondary market and leave a comment in a single transaction.\n * This can be executed on the destination chain by anyone.\n */\nexport type PermitBuyOnSecondaryAndComment = AbiParametersToPrimitiveTypes<\n  ExtractAbiFunction<\n    typeof callerAndCommenterABI,\n    \"hashPermitBuyOnSecondaryAndComment\"\n  >[\"inputs\"]\n>[0];\n","import {\n  Address,\n  TypedDataDomain,\n  TypedData,\n  TypedDataToPrimitiveTypes,\n} from \"abitype\";\nimport {\n  Hex,\n  TypedDataDefinition,\n  encodeAbiParameters,\n  getAbiItem,\n  keccak256,\n  toHex,\n  parseEther,\n} from \"viem\";\nimport {\n  zoraMints1155Address,\n  iPremintDefinitionsABI,\n  sponsoredSparksSpenderAddress,\n  commentsAddress,\n  callerAndCommenterAddress,\n} from \"./generated/wagmi\";\nimport {\n  PremintConfigEncoded,\n  PremintConfigV1,\n  PremintConfigV2,\n  PremintConfigVersion,\n  PremintConfigWithVersion,\n  TokenConfigWithVersion,\n  TokenCreationConfigV1,\n  TokenCreationConfigV2,\n  TokenCreationConfigV3,\n  PermitComment,\n  PermitSparkComment,\n  PermitMintAndComment,\n  PermitBuyOnSecondaryAndComment,\n} from \"./types\";\n\nconst premintTypedDataDomain = ({\n  chainId,\n  version,\n  creator1155Contract: verifyingContract,\n}: {\n  chainId: number;\n  version: PremintConfigVersion;\n  creator1155Contract: Address;\n}): TypedDataDomain => ({\n  chainId,\n  name: \"Preminter\",\n  version,\n  verifyingContract,\n});\n\nconst premintV1TypedDataType = {\n  CreatorAttribution: [\n    { name: \"tokenConfig\", type: \"TokenCreationConfig\" },\n    // unique id scoped to the contract and token to create.\n    // ensure that a signature can be replaced, as long as the replacement\n    // has the same uid, and a newer version.\n    { name: \"uid\", type: \"uint32\" },\n    { name: \"version\", type: \"uint32\" },\n    // if this update should result in the signature being deleted.\n    { name: \"deleted\", type: \"bool\" },\n  ],\n  TokenCreationConfig: [\n    { name: \"tokenURI\", type: \"string\" },\n    { name: \"maxSupply\", type: \"uint256\" },\n    { name: \"maxTokensPerAddress\", type: \"uint64\" },\n    { name: \"pricePerToken\", type: \"uint96\" },\n    { name: \"mintStart\", type: \"uint64\" },\n    { name: \"mintDuration\", type: \"uint64\" },\n    { name: \"royaltyMintSchedule\", type: \"uint32\" },\n    { name: \"royaltyBPS\", type: \"uint32\" },\n    { name: \"royaltyRecipient\", type: \"address\" },\n    { name: \"fixedPriceMinter\", type: \"address\" },\n  ],\n} as const satisfies TypedData;\n\nconst encodeTokenConfigV1 = (config: TokenCreationConfigV1) => {\n  const abiItem = getAbiItem({\n    abi: iPremintDefinitionsABI,\n    name: \"tokenConfigV1Definition\",\n  });\n\n  return encodeAbiParameters(abiItem.inputs, [config]);\n};\n\nconst encodeTokenConfigV2 = (config: TokenCreationConfigV2) => {\n  const abiItem = getAbiItem({\n    abi: iPremintDefinitionsABI,\n    name: \"tokenConfigV2Definition\",\n  });\n\n  return encodeAbiParameters(abiItem.inputs, [config]);\n};\n\nconst encodeTokenConfigV3 = (config: TokenCreationConfigV3) => {\n  const abiItem = getAbiItem({\n    abi: iPremintDefinitionsABI,\n    name: \"tokenConfigV3Definition\",\n  });\n\n  return encodeAbiParameters(abiItem.inputs, [config]);\n};\n\nconst encodeTokenConfig = <T extends PremintConfigVersion>({\n  tokenConfig,\n  premintConfigVersion,\n}: TokenConfigWithVersion<T>): Hex => {\n  if (premintConfigVersion === PremintConfigVersion.V1) {\n    return encodeTokenConfigV1(tokenConfig as TokenCreationConfigV1);\n  }\n  if (premintConfigVersion === PremintConfigVersion.V2) {\n    return encodeTokenConfigV2(tokenConfig as TokenCreationConfigV2);\n  }\n  if (premintConfigVersion === PremintConfigVersion.V3) {\n    return encodeTokenConfigV3(tokenConfig as TokenCreationConfigV3);\n  }\n\n  throw new Error(\"Invalid PremintConfigVersion: \" + premintConfigVersion);\n};\n\nexport const encodePremintConfig = <T extends PremintConfigVersion>({\n  premintConfig,\n  premintConfigVersion,\n}: PremintConfigWithVersion<T>): PremintConfigEncoded => {\n  const encodedTokenConfig = encodeTokenConfig({\n    premintConfigVersion,\n    tokenConfig: premintConfig.tokenConfig,\n  });\n\n  return {\n    deleted: premintConfig.deleted,\n    uid: premintConfig.uid,\n    version: premintConfig.version,\n    premintConfigVersion: keccak256(toHex(premintConfigVersion)),\n    tokenConfig: encodedTokenConfig,\n  };\n};\n\n/**\n * Builds a typed data definition for a PremintConfigV1 to be signed\n * @returns\n */\nexport const premintV1TypedDataDefinition = ({\n  chainId,\n  creator1155Contract,\n  message,\n}: {\n  chainId: number;\n  creator1155Contract: Address;\n  message: PremintConfigV1;\n}): TypedDataDefinition<\n  typeof premintV1TypedDataType,\n  \"CreatorAttribution\"\n> => ({\n  types: premintV1TypedDataType,\n  primaryType: \"CreatorAttribution\",\n  domain: premintTypedDataDomain({\n    chainId,\n    version: PremintConfigVersion.V1,\n    creator1155Contract,\n  }),\n  message,\n});\n\nconst premintV2TypedDataType = {\n  CreatorAttribution: [\n    { name: \"tokenConfig\", type: \"TokenCreationConfig\" },\n    // unique id scoped to the contract and token to create.\n    // ensure that a signature can be replaced, as long as the replacement\n    // has the same uid, and a newer version.\n    { name: \"uid\", type: \"uint32\" },\n    { name: \"version\", type: \"uint32\" },\n    // if this update should result in the signature being deleted.\n    { name: \"deleted\", type: \"bool\" },\n  ],\n  TokenCreationConfig: [\n    { name: \"tokenURI\", type: \"string\" },\n    { name: \"maxSupply\", type: \"uint256\" },\n    { name: \"maxTokensPerAddress\", type: \"uint64\" },\n    { name: \"pricePerToken\", type: \"uint96\" },\n    { name: \"mintStart\", type: \"uint64\" },\n    { name: \"mintDuration\", type: \"uint64\" },\n    { name: \"royaltyBPS\", type: \"uint32\" },\n    { name: \"payoutRecipient\", type: \"address\" },\n    { name: \"fixedPriceMinter\", type: \"address\" },\n    { name: \"createReferral\", type: \"address\" },\n  ],\n} as const satisfies TypedData;\n\n/**\n * Builds a typed data definition for a PremintConfigV2 to be signed\n */\nexport const premintV2TypedDataDefinition = ({\n  chainId,\n  creator1155Contract,\n  message,\n}: {\n  chainId: number;\n  creator1155Contract: Address;\n  message: PremintConfigV2;\n}): TypedDataDefinition<\n  typeof premintV2TypedDataType,\n  \"CreatorAttribution\"\n> => ({\n  types: premintV2TypedDataType,\n  primaryType: \"CreatorAttribution\",\n  domain: premintTypedDataDomain({\n    chainId,\n    version: PremintConfigVersion.V2,\n    creator1155Contract,\n  }),\n  message,\n});\n\nexport type PremintTypeDataDefinitionParams<T extends PremintConfigVersion> = {\n  verifyingContract: Address;\n  chainId: number;\n} & PremintConfigWithVersion<T>;\n\n/**\n * Creates a typed data definition for a premint config.  Works for all versions of the premint config by specifying the premintConfigVersion.\n *\n * @param params.verifyingContract the address of the 1155 contract\n * @param params.chainId the chain id the premint is signed for\n * @param params.premintConfigVersion the version of the premint config\n * @param params.premintConfig the premint config\n * @returns\n */\nexport const premintTypedDataDefinition = <T extends PremintConfigVersion>({\n  verifyingContract,\n  chainId,\n  premintConfigVersion: version,\n  premintConfig,\n}: PremintTypeDataDefinitionParams<T>): TypedDataDefinition => {\n  if (version === PremintConfigVersion.V1)\n    return premintV1TypedDataDefinition({\n      chainId,\n      creator1155Contract: verifyingContract,\n      message: premintConfig as PremintConfigV1,\n    });\n  if (version === PremintConfigVersion.V2) {\n    return premintV2TypedDataDefinition({\n      chainId,\n      creator1155Contract: verifyingContract,\n      message: premintConfig as PremintConfigV2,\n    });\n  }\n\n  throw new Error(`Invalid version ${version}`);\n};\n\nconst permitSafeTransferTypedDataType = {\n  PermitSafeTransfer: [\n    { name: \"owner\", type: \"address\" },\n    { name: \"to\", type: \"address\" },\n    { name: \"tokenId\", type: \"uint256\" },\n    { name: \"quantity\", type: \"uint256\" },\n    { name: \"safeTransferData\", type: \"bytes\" },\n    { name: \"nonce\", type: \"uint256\" },\n    { name: \"deadline\", type: \"uint256\" },\n  ],\n} as const;\n\n/**\n * Builds a typed data definition for a PermitSafeTransfer on the Mints1155 contract to be signed\n */\nexport const mintsSafeTransferTypedDataDefinition = ({\n  chainId,\n  message,\n}: {\n  chainId: keyof typeof zoraMints1155Address;\n  message: TypedDataToPrimitiveTypes<\n    typeof permitSafeTransferTypedDataType\n  >[\"PermitSafeTransfer\"];\n}): TypedDataDefinition<\n  typeof permitSafeTransferTypedDataType,\n  \"PermitSafeTransfer\"\n> => ({\n  types: permitSafeTransferTypedDataType,\n  message,\n  primaryType: \"PermitSafeTransfer\",\n  domain: {\n    chainId,\n    name: \"Mints\",\n    version: \"1\",\n    verifyingContract: zoraMints1155Address[chainId],\n  },\n});\n\nconst permitSafeBatchTransferTypedDataType = {\n  Permit: [\n    {\n      name: \"owner\",\n      type: \"address\",\n    },\n    {\n      name: \"to\",\n      type: \"address\",\n    },\n    {\n      name: \"tokenIds\",\n      type: \"uint256[]\",\n    },\n    {\n      name: \"quantities\",\n      type: \"uint256[]\",\n    },\n    {\n      name: \"safeTransferData\",\n      type: \"bytes\",\n    },\n    {\n      name: \"nonce\",\n      type: \"uint256\",\n    },\n    {\n      name: \"deadline\",\n      type: \"uint256\",\n    },\n  ],\n} as const;\n\n/**\n * Builds a typed data definition for a PermitSafeTransferBatch on the Mints1155 contract to be signed\n * @returns\n */\nexport const mintsSafeTransferBatchTypedDataDefinition = ({\n  chainId,\n  message,\n}: {\n  chainId: keyof typeof zoraMints1155Address;\n  message: TypedDataToPrimitiveTypes<\n    typeof permitSafeBatchTransferTypedDataType\n  >[\"Permit\"];\n}): TypedDataDefinition<\n  typeof permitSafeBatchTransferTypedDataType,\n  \"Permit\"\n> => ({\n  types: permitSafeBatchTransferTypedDataType,\n  message,\n  primaryType: \"Permit\",\n  domain: {\n    chainId,\n    name: \"Mints\",\n    version: \"1\",\n    verifyingContract: zoraMints1155Address[chainId],\n  },\n});\n\nexport const sponsoredSparksBatchTransferTypedDataType = {\n  SponsoredMintBatch: [\n    {\n      name: \"verifier\",\n      type: \"address\",\n    },\n    {\n      name: \"from\",\n      type: \"address\",\n    },\n    {\n      name: \"destination\",\n      type: \"address\",\n    },\n    {\n      name: \"data\",\n      type: \"bytes\",\n    },\n    {\n      name: \"expectedRedeemAmount\",\n      type: \"uint256\",\n    },\n    {\n      name: \"totalAmount\",\n      type: \"uint256\",\n    },\n    {\n      name: \"ids\",\n      type: \"uint256[]\",\n    },\n    {\n      name: \"quantities\",\n      type: \"uint256[]\",\n    },\n    {\n      name: \"nonce\",\n      type: \"uint256\",\n    },\n    {\n      name: \"deadline\",\n      type: \"uint256\",\n    },\n  ],\n} as const;\n\n/**\n * Builds a typed data definition for a PermitSafeTransferBatch on the Mints1155 contract to be signed\n * @returns\n */\nexport const sponsoredSparksBatchTypedDataDefinition = ({\n  chainId,\n  message,\n}: {\n  chainId: keyof typeof sponsoredSparksSpenderAddress;\n  message: TypedDataToPrimitiveTypes<\n    typeof sponsoredSparksBatchTransferTypedDataType\n  >[\"SponsoredMintBatch\"];\n}): TypedDataDefinition<\n  typeof sponsoredSparksBatchTransferTypedDataType,\n  \"SponsoredMintBatch\"\n> => ({\n  types: sponsoredSparksBatchTransferTypedDataType,\n  message,\n  primaryType: \"SponsoredMintBatch\",\n  domain: {\n    chainId,\n    name: \"SponsoredSparksSpender\",\n    version: \"1\",\n    verifyingContract: sponsoredSparksSpenderAddress[chainId],\n  },\n});\n\nconst commentIdentifierType = [\n  { name: \"contractAddress\", type: \"address\" },\n  { name: \"tokenId\", type: \"uint256\" },\n  { name: \"commenter\", type: \"address\" },\n  { name: \"nonce\", type: \"bytes32\" },\n] as const;\n\nconst commentsDomain = ({\n  signingChainId,\n  destinationChainId,\n}: {\n  signingChainId: number;\n  destinationChainId: keyof typeof commentsAddress;\n}): TypedDataDomain => ({\n  chainId: signingChainId,\n  name: \"Comments\",\n  version: \"1\",\n  verifyingContract: commentsAddress[destinationChainId]!,\n});\n\n/**\n * Generates the typed data definition for a permit comment, for cross-chain commenting.\n *\n * The permit allows a user to sign a comment message on one chain, which can then be\n * submitted by anyone on the destination chain to execute the comment action.\n *\n * The permit includes details such as the comment text, the commenter's address,\n * the comment being replied to, and chain IDs for the source and destination chains.\n *\n * The typed data is generated in a way that makes the signature happen on the source chain\n * but be valid to be executed on the destination chain.\n *\n * @param message - The {@link PermitComment} containing the details of the comment permit.\n * @param signingAccount - (optional) The account that is signing the message, if different thatn the commentor.\n * Only needed if the commentor is a smart wallet; in this case the signing account should be an account\n * that is one of the smart wallet owners.\n * @returns A {@link TypedDataDefinition} object compatible with EIP-712 for structured data hashing and signing,\n * including types, message, primary type, domain, and the signer's account address, which is\n * the commenter's address.\n */\nexport const permitCommentTypedDataDefinition = (\n  message: PermitComment,\n  signingAccount?: Address,\n): TypedDataDefinition<typeof permitCommentTypedDataType, \"PermitComment\"> & {\n  account: Address;\n} => {\n  const permitCommentTypedDataType = {\n    PermitComment: [\n      { name: \"contractAddress\", type: \"address\" },\n      { name: \"tokenId\", type: \"uint256\" },\n      { name: \"commenter\", type: \"address\" },\n      { name: \"replyTo\", type: \"CommentIdentifier\" },\n      { name: \"text\", type: \"string\" },\n      { name: \"deadline\", type: \"uint256\" },\n      { name: \"nonce\", type: \"bytes32\" },\n      { name: \"commenterSmartWallet\", type: \"address\" },\n      { name: \"referrer\", type: \"address\" },\n      { name: \"sourceChainId\", type: \"uint32\" },\n      { name: \"destinationChainId\", type: \"uint32\" },\n    ],\n    CommentIdentifier: commentIdentifierType,\n  } as const;\n  return {\n    types: permitCommentTypedDataType,\n    message,\n    primaryType: \"PermitComment\",\n    domain: commentsDomain({\n      signingChainId: message.sourceChainId,\n      destinationChainId:\n        message.destinationChainId as keyof typeof commentsAddress,\n    }),\n    account: signingAccount || message.commenter,\n  };\n};\n\n/**\n * Generates the typed data definition for a permit spark comment, for cross-chain sparking (liking with value) of comments.\n *\n * The permit allows a user to sign a spark comment message on one chain, which can then be\n * submitted by anyone on the destination chain to execute the spark action.\n *\n * The permit includes details such as the comment to be sparked, the sparker's address,\n * the quantity of sparks, and the source and destination chain ids.\n *\n * The typed data is generated in a way that makes the signature happen on the source chain\n * but be valid to be executed on the destination chain.\n *\n * @param message - The {@link PermitSparkComment} containing the details of the spark comment permit.\n * @param signingAccount - (optional) The account that is signing the message, if different than the commenter.\n * Only needed if the commenter is a smart wallet; in this case the signing account should be an account\n * that is one of the smart wallet owners.\n * @returns A {@link TypedDataDefinition} object compatible with EIP-712 for structured data hashing and signing,\n * including types, message, primary type, domain, and the signer's account address, which is\n * the sparker's address.\n */\nexport const permitSparkCommentTypedDataDefinition = (\n  message: PermitSparkComment,\n  signingAccount?: Address,\n): TypedDataDefinition<\n  typeof permitSparkCommentTypedDataType,\n  \"PermitSparkComment\"\n> & { account: Address } => {\n  const permitSparkCommentTypedDataType = {\n    PermitSparkComment: [\n      { name: \"comment\", type: \"CommentIdentifier\" },\n      { name: \"sparker\", type: \"address\" },\n      { name: \"sparksQuantity\", type: \"uint256\" },\n      { name: \"deadline\", type: \"uint256\" },\n      { name: \"nonce\", type: \"bytes32\" },\n      { name: \"referrer\", type: \"address\" },\n      { name: \"sourceChainId\", type: \"uint32\" },\n      { name: \"destinationChainId\", type: \"uint32\" },\n    ],\n    CommentIdentifier: commentIdentifierType,\n  } as const;\n\n  return {\n    types: permitSparkCommentTypedDataType,\n    message,\n    primaryType: \"PermitSparkComment\",\n    domain: commentsDomain({\n      signingChainId: message.sourceChainId,\n      destinationChainId:\n        message.destinationChainId as keyof typeof commentsAddress,\n    }),\n    account: signingAccount || message.sparker,\n  };\n};\n\n// todo: explain\nexport const sparkValue = () => parseEther(\"0.000001\");\n\n/**\n * Generates the typed data definition for a permit timed sale mint and comment operation.\n *\n * This function creates a structured data object that can be used for EIP-712 signing,\n * allowing users to sign a message on one chain that permits a timed sale mint and comment\n * action to be executed on another chain.\n *\n * @param message - The {@link PermitMintAndComment} containing the details of the permit.\n * @param signingAccount - (optional) The account that is signing the message, if different from the commenter.\n * This is typically used when the commenter is a smart wallet, and the signing account is one of its owners.\n * @returns A {@link TypedDataDefinition} object compatible with EIP-712 for structured data hashing and signing,\n * including types, message, primary type, domain, and the signer's account address.\n */\nexport const permitMintAndCommentTypedDataDefinition = (\n  message: PermitMintAndComment,\n  signingAccount?: Address,\n): TypedDataDefinition<\n  typeof permitTimedSaleMintAndCommentTypedDataType,\n  \"PermitTimedSaleMintAndComment\"\n> & { account: Address } => {\n  const permitTimedSaleMintAndCommentTypedDataType = {\n    PermitTimedSaleMintAndComment: [\n      { name: \"commenter\", type: \"address\" },\n      { name: \"quantity\", type: \"uint256\" },\n      { name: \"collection\", type: \"address\" },\n      { name: \"tokenId\", type: \"uint256\" },\n      { name: \"mintReferral\", type: \"address\" },\n      { name: \"comment\", type: \"string\" },\n      { name: \"deadline\", type: \"uint256\" },\n      { name: \"nonce\", type: \"bytes32\" },\n      { name: \"sourceChainId\", type: \"uint32\" },\n      { name: \"destinationChainId\", type: \"uint32\" },\n    ],\n  } as const;\n\n  const callerAndCommenterDomain = ({\n    signingChainId,\n    destinationChainId,\n  }: {\n    signingChainId: number;\n    destinationChainId: keyof typeof callerAndCommenterAddress;\n  }) => ({\n    name: \"CallerAndCommenter\",\n    version: \"1\",\n    chainId: signingChainId,\n    verifyingContract: callerAndCommenterAddress[destinationChainId],\n  });\n\n  return {\n    types: permitTimedSaleMintAndCommentTypedDataType,\n    message,\n    primaryType: \"PermitTimedSaleMintAndComment\",\n    domain: callerAndCommenterDomain({\n      signingChainId: message.sourceChainId,\n      destinationChainId:\n        message.destinationChainId as keyof typeof callerAndCommenterAddress,\n    }),\n    account: signingAccount || message.commenter,\n  };\n};\n\n/**\n * Generates the typed data definition for a permit buy on secondary and comment operation.\n *\n * This function creates a structured data object that can be used for EIP-712 signing,\n * allowing users to sign a message on one chain that permits a buy on secondary market and comment\n * action to be executed on another chain.\n *\n * @param message - The {@link PermitBuyOnSecondaryAndComment} containing the details of the permit.\n * @param signingAccount - (optional) The account that is signing the message, if different from the commenter.\n * This is typically used when the commenter is a smart wallet, and the signing account is one of its owners.\n * @returns A {@link TypedDataDefinition} object compatible with EIP-712 for structured data hashing and signing,\n * including types, message, primary type, domain, and the signer's account address.\n */\nexport const permitBuyOnSecondaryAndCommentTypedDataDefinition = (\n  message: PermitBuyOnSecondaryAndComment,\n  signingAccount?: Address,\n): TypedDataDefinition<\n  typeof permitBuyOnSecondaryAndCommentTypedDataType,\n  \"PermitBuyOnSecondaryAndComment\"\n> & { account: Address } => {\n  const permitBuyOnSecondaryAndCommentTypedDataType = {\n    PermitBuyOnSecondaryAndComment: [\n      { name: \"commenter\", type: \"address\" },\n      { name: \"quantity\", type: \"uint256\" },\n      { name: \"collection\", type: \"address\" },\n      { name: \"tokenId\", type: \"uint256\" },\n      { name: \"maxEthToSpend\", type: \"uint256\" },\n      { name: \"sqrtPriceLimitX96\", type: \"uint160\" },\n      { name: \"comment\", type: \"string\" },\n      { name: \"deadline\", type: \"uint256\" },\n      { name: \"nonce\", type: \"bytes32\" },\n      { name: \"sourceChainId\", type: \"uint32\" },\n      { name: \"destinationChainId\", type: \"uint32\" },\n    ],\n  } as const;\n\n  const callerAndCommenterDomain = ({\n    signingChainId,\n    destinationChainId,\n  }: {\n    signingChainId: number;\n    destinationChainId: keyof typeof callerAndCommenterAddress;\n  }) => ({\n    name: \"CallerAndCommenter\",\n    version: \"1\",\n    chainId: signingChainId,\n    verifyingContract: callerAndCommenterAddress[destinationChainId],\n  });\n\n  return {\n    types: permitBuyOnSecondaryAndCommentTypedDataType,\n    message,\n    primaryType: \"PermitBuyOnSecondaryAndComment\",\n    domain: callerAndCommenterDomain({\n      signingChainId: message.sourceChainId,\n      destinationChainId:\n        message.destinationChainId as keyof typeof callerAndCommenterAddress,\n    }),\n    account: signingAccount || message.commenter,\n  };\n};\n","import {\n  Address,\n  decodeAbiParameters,\n  encodeAbiParameters,\n  getAbiItem,\n} from \"viem\";\nimport { poolConfigEncodingABI } from \"./generated/wagmi\";\n\nimport { Hex } from \"viem\";\n\n/** ABI parameters for performing a SafeTransferFrom based swap when selling on secondary. */\nexport const safeTransferSwapAbiParameters = [\n  { name: \"recipient\", internalType: \"address payable\", type: \"address\" },\n  { name: \"minEthToAcquire\", internalType: \"uint256\", type: \"uint256\" },\n  { name: \"sqrtPriceLimitX96\", internalType: \"uint160\", type: \"uint160\" },\n] as const;\n\nexport const buySupplyWithSwapRouterHookAbiParameters = [\n  { name: \"buyRecipient\", internalType: \"address\", type: \"address\" },\n  { name: \"swapRouterCall\", internalType: \"bytes\", type: \"bytes\" },\n] as const;\n\nexport const buySupplyWithSwapRouterHookReturnParameters = [\n  { name: \"amountCurrency\", internalType: \"uint256\", type: \"uint256\" },\n  { name: \"coinsPurchased\", internalType: \"uint256\", type: \"uint256\" },\n] as const;\n\n/**\n * Decodes the return data from the BuySupplyWithSwapRouterHook.\n *\n * @param returnData - The return data from the BuySupplyWithSwapRouterHook.\n * @returns The decoded return data.\n */\nexport const decodeBuySupplyWithSwapRouterHookReturn = (returnData: Hex) => {\n  const result = decodeAbiParameters(\n    buySupplyWithSwapRouterHookReturnParameters,\n    returnData,\n  );\n\n  return {\n    amountCurrency: result[0],\n    coinsPurchased: result[1],\n  };\n};\n\nconst UNISWAP_V4_MULTICURVE_POOL_VERSION = 4;\n\n/**\n * Encodes the pool configuration data for creating and initializing a coin's liquidity pool,\n * using a multi-curve setup.\n *\n * @param params - The pool configuration parameters.\n * @param params.version - The version of the pool configuration.\n *                         2 for a UniswapV3 pool, or 4 for Doppler/Uniswap V4-style pools.\n * @param params.currency - The address of the currency token (e.g., WETH) to be paired with the coin.\n * @param params.tickLower - An array of numbers representing the lower tick boundaries for each liquidity curve.\n * @param params.tickUpper - An array of numbers representing the upper tick boundaries for each liquidity curve.\n * @param params.numDiscoveryPositions - An array of numbers, where each number specifies the quantity of discrete\n *                                     liquidity positions to be created within the corresponding curve's discovery phase.\n * @param params.maxDiscoverySupplyShare - An array of bigints, where each bigint represents the maximum share of the coin's\n *                                        total supply allocated to the discovery phase of the corresponding curve.\n *                                        This is typically a WAD-scaled value (i.e., scaled by 1e18).\n * @returns The ABI-encoded pool configuration for setting\n */\nexport const encodeMultiCurvePoolConfig = ({\n  currency,\n  tickLower,\n  tickUpper,\n  numDiscoveryPositions,\n  maxDiscoverySupplyShare,\n}: {\n  currency: Address;\n  tickLower: number[];\n  tickUpper: number[];\n  numDiscoveryPositions: number[];\n  maxDiscoverySupplyShare: bigint[];\n}) => {\n  const abiItem = getAbiItem({\n    abi: poolConfigEncodingABI,\n    name: \"encodeMultiCurvePoolConfig\",\n  });\n\n  return encodeAbiParameters(abiItem.inputs, [\n    UNISWAP_V4_MULTICURVE_POOL_VERSION,\n    currency,\n    tickLower,\n    tickUpper,\n    numDiscoveryPositions,\n    maxDiscoverySupplyShare,\n  ]);\n};\n","export const chainConfigs = {\n  1: {\n    FACTORY_OWNER: \"0xDB392f4391462d60B8B4413ef72018Ab595Af9D0\",\n    MINT_FEE_RECIPIENT: \"0xd1d1D4e36117aB794ec5d4c78cBD3a8904E691D0\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n  10: {\n    FACTORY_OWNER: \"0x4c7f7b6067fac9a737ecf2ca1a733fc85dd65a2b\",\n    MINT_FEE_RECIPIENT: \"0x7A810DCd0f8d83B20212326813Db6EF7E9FD030c\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n  999: {\n    FACTORY_OWNER: \"0xE84DBB2B25F761751231a9D0DAfbdD4dC3aa8252\",\n    MINT_FEE_RECIPIENT: \"0xE84DBB2B25F761751231a9D0DAfbdD4dC3aa8252\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n  8453: {\n    FACTORY_OWNER: \"0x004d6611884B4A661749B64b2ADc78505c3e1AB3\",\n    MINT_FEE_RECIPIENT: \"0x7bf90111Ad7C22bec9E9dFf8A01A44713CC1b1B6\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n  42161: {\n    FACTORY_OWNER: \"0xF7DafC329C93D84267c0E7B146C0bD68807f6A03\",\n    MINT_FEE_RECIPIENT: \"0x10Fb02A68C3EA8bD439A6f515dcE07CC049f5c94\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n  81457: {\n    FACTORY_OWNER: \"0x5b297B1b87f8De28C9fA7AFe183Db9F9e6295523\",\n    MINT_FEE_RECIPIENT: \"0x72E6394056f9152D3a41e5A25De383c191D16134\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n  84532: {\n    FACTORY_OWNER: \"0x5F14C23983c9e0840Dc60dA880349622f0785420\",\n    MINT_FEE_RECIPIENT: \"0x5F14C23983c9e0840Dc60dA880349622f0785420\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n  421614: {\n    FACTORY_OWNER: \"0x256537b56007b32BabEB44E868EC8AA5cBF03D30\",\n    MINT_FEE_RECIPIENT: \"0x256537b56007b32BabEB44E868EC8AA5cBF03D30\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n  7777777: {\n    FACTORY_OWNER: \"0xdEA20c96253dc2d64897D2b8d27A8d935dE74955\",\n    MINT_FEE_RECIPIENT: \"0xEcfc2ee50409E459c554a2b0376F882Ce916D853\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n  11155111: {\n    FACTORY_OWNER: \"0xCE9F2e8EaFa11637F8A1CB60AE8AaC601Ae30f2D\",\n    MINT_FEE_RECIPIENT: \"0xCE9F2e8EaFa11637F8A1CB60AE8AaC601Ae30f2D\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n  168587773: {\n    FACTORY_OWNER: \"0x8cF22F26d528B09b3cc54b7ff956630Bf741b773\",\n    MINT_FEE_RECIPIENT: \"0x8cF22F26d528B09b3cc54b7ff956630Bf741b773\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n  999999999: {\n    FACTORY_OWNER: \"0xdae22ce69Afcb7f4bc37D32E267645722949DE0E\",\n    MINT_FEE_RECIPIENT: \"0xdae22ce69Afcb7f4bc37D32E267645722949DE0E\",\n    PROTOCOL_REWARDS: \"0x7777777F279eba3d3Ad8F4E708545291A6fDBA8B\",\n  },\n};\nexport const addresses = {\n  1: {\n    CONTRACT_1155_IMPL: \"0x7FB277e8a6584D76bBbc72980719F36936825e29\",\n    CONTRACT_1155_IMPL_VERSION: \"2.13.0\",\n    ERC20_MINTER: \"0x777777E8850d8D6d98De2B5f64fae401F96eFF31\",\n    FACTORY_IMPL: \"0x0379e37302e9d57fFd657F87e1180273826CE84F\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0x04E2516A2c207E84a1839755675dfd8eF6302F0a\",\n    MERKLE_MINT_SALE_STRATEGY: \"0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7\",\n    PREMINTER_IMPL: \"0xDfB3D291bA493e7a3c835F0EdBa0B1B52979609A\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x78964965cF77850224513a367f899435C5B69174\",\n    UPGRADE_GATE: \"0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900\",\n    timestamp: 1730734767,\n  },\n  10: {\n    CONTRACT_1155_IMPL: \"0xF77330C8b1c41f2e44470763Cf9E3ACa78Db4381\",\n    CONTRACT_1155_IMPL_VERSION: \"2.13.2\",\n    ERC20_MINTER: \"0x777777E8850d8D6d98De2B5f64fae401F96eFF31\",\n    FACTORY_IMPL: \"0x2008C05685F9fA15BBD75d80e9A44ab0c7230577\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0x3678862f04290E565cCA2EF163BAeb92Bb76790C\",\n    MERKLE_MINT_SALE_STRATEGY: \"0x899ce31dF6C6Af81203AcAaD285bF539234eF4b8\",\n    PREMINTER_IMPL: \"0xD8f6cf234eE4B689099677Bd94FbA0b1E005181d\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x1B28A04b7eB7b93f920ddF2021aa3fAE065395f2\",\n    UPGRADE_GATE: \"0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900\",\n    timestamp: 1731019615,\n  },\n  999: {\n    CONTRACT_1155_IMPL: \"0x2022AdEF470DA3543a19fac8c9be80618112704D\",\n    CONTRACT_1155_IMPL_VERSION: \"2.7.0\",\n    FACTORY_IMPL: \"0x4b0365Ec68C2D92Af2Fa56f120095F0859142Eff\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0x04E2516A2c207E84a1839755675dfd8eF6302F0a\",\n    MERKLE_MINT_SALE_STRATEGY: \"0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7\",\n    PREMINTER_IMPL: \"0x795Efc066f89DFB03048dDd0598F2D8521c99Df6\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x78964965cF77850224513a367f899435C5B69174\",\n    UPGRADE_GATE: \"0x0000000000000000000000000000000000000000\",\n    timestamp: 1704399834,\n  },\n  8453: {\n    CONTRACT_1155_IMPL: \"0x5Eb5bABCEFEa846b220C82f222F00Df95934F5f0\",\n    CONTRACT_1155_IMPL_VERSION: \"2.13.2\",\n    ERC20_MINTER: \"0x777777E8850d8D6d98De2B5f64fae401F96eFF31\",\n    FACTORY_IMPL: \"0x97898683c6950a986911fdfFEa12739bad5D2581\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0x04E2516A2c207E84a1839755675dfd8eF6302F0a\",\n    MERKLE_MINT_SALE_STRATEGY: \"0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7\",\n    PREMINTER_IMPL: \"0xDfB3D291bA493e7a3c835F0EdBa0B1B52979609A\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x78964965cF77850224513a367f899435C5B69174\",\n    UPGRADE_GATE: \"0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900\",\n    timestamp: 1730931491,\n  },\n  42161: {\n    CONTRACT_1155_IMPL: \"0xC04050e04708b33302E30E5A0fB1e8c38F4EBbB0\",\n    CONTRACT_1155_IMPL_VERSION: \"2.13.2\",\n    ERC20_MINTER: \"0x777777E8850d8D6d98De2B5f64fae401F96eFF31\",\n    FACTORY_IMPL: \"0xe2606ac30752009ecec6FEaf5C2B4A6523256E7E\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21\",\n    MERKLE_MINT_SALE_STRATEGY: \"0xe770E6f19aecF8ef3145A50087999b5556aB3610\",\n    PREMINTER_IMPL: \"0xD8f6cf234eE4B689099677Bd94FbA0b1E005181d\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D\",\n    UPGRADE_GATE: \"0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900\",\n    timestamp: 1730931657,\n  },\n  81457: {\n    CONTRACT_1155_IMPL: \"0x16cFE884B49E68Cae854f12Ea419Fb1F6Ad290A8\",\n    CONTRACT_1155_IMPL_VERSION: \"2.13.2\",\n    ERC20_MINTER: \"0x777777E8850d8D6d98De2B5f64fae401F96eFF31\",\n    FACTORY_IMPL: \"0x23150f60E233F519A01C735C29c1591f9E8353dE\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0x3EB144aee170BF62FdA1536e38aF51f08e34A5D0\",\n    MERKLE_MINT_SALE_STRATEGY: \"0xB9C997FcC46a27331CC986cc2416ee99C1d506c3\",\n    PREMINTER_IMPL: \"0xD8f6cf234eE4B689099677Bd94FbA0b1E005181d\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x7A0dE1B1f5420Df5D946878fBe2cF109011BE614\",\n    UPGRADE_GATE: \"0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900\",\n    timestamp: 1730931749,\n  },\n  84532: {\n    CONTRACT_1155_IMPL: \"0x695C9A141748D308d26Bd4f8E9F9A5df5F0623f8\",\n    CONTRACT_1155_IMPL_VERSION: \"2.13.2\",\n    ERC20_MINTER: \"0x777777E8850d8D6d98De2B5f64fae401F96eFF31\",\n    FACTORY_IMPL: \"0xd92F69d5581BF9536c77550aeA1d74DDaE88B5B7\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0xd34872BE0cdb6b09d45FCa067B07f04a1A9aE1aE\",\n    MERKLE_MINT_SALE_STRATEGY: \"0x3E8524770adD176bE381a0529E09f1c6c3502A5a\",\n    PREMINTER_IMPL: \"0xD8f6cf234eE4B689099677Bd94FbA0b1E005181d\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x805E0a08dE70f85C01F7848370d5e3fc08aAd0ea\",\n    UPGRADE_GATE: \"0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900\",\n    timestamp: 1730928936,\n  },\n  421614: {\n    CONTRACT_1155_IMPL: \"0x3Ed969bf88166B85608C13b633242611F6220a14\",\n    CONTRACT_1155_IMPL_VERSION: \"2.13.2\",\n    ERC20_MINTER: \"0x777777E8850d8D6d98De2B5f64fae401F96eFF31\",\n    FACTORY_IMPL: \"0xA75f980Fdf9F02718423FDFDFf1fccc74bdDBa95\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21\",\n    MERKLE_MINT_SALE_STRATEGY: \"0xe770E6f19aecF8ef3145A50087999b5556aB3610\",\n    PREMINTER_IMPL: \"0xD8f6cf234eE4B689099677Bd94FbA0b1E005181d\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D\",\n    UPGRADE_GATE: \"0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900\",\n    timestamp: 1730928848,\n  },\n  7777777: {\n    CONTRACT_1155_IMPL: \"0xDB07C4525E82340A27077Ad258160928f271BB7F\",\n    CONTRACT_1155_IMPL_VERSION: \"2.13.2\",\n    ERC20_MINTER: \"0x777777E8850d8D6d98De2B5f64fae401F96eFF31\",\n    FACTORY_IMPL: \"0x517Ce60C6e66a4DB1ea705C98250770d01f9d0AE\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0x04E2516A2c207E84a1839755675dfd8eF6302F0a\",\n    MERKLE_MINT_SALE_STRATEGY: \"0xf48172CA3B6068B20eE4917Eb27b5472f1f272C7\",\n    PREMINTER_IMPL: \"0xa79928cCc270b0208e56BfF0e927ff55034e7C35\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x78964965cF77850224513a367f899435C5B69174\",\n    UPGRADE_GATE: \"0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900\",\n    timestamp: 1730930939,\n  },\n  11155111: {\n    CONTRACT_1155_IMPL: \"0x9b24FD165a371042e5CA81e8d066d25CAD11EDE7\",\n    CONTRACT_1155_IMPL_VERSION: \"2.13.2\",\n    ERC20_MINTER: \"0x777777E8850d8D6d98De2B5f64fae401F96eFF31\",\n    FACTORY_IMPL: \"0x3AE2804De4A54283601Db24a897856D9772eA0D8\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0x1Cd1C1f3b8B779B50Db23155F2Cb244FCcA06B21\",\n    MERKLE_MINT_SALE_STRATEGY: \"0xe770E6f19aecF8ef3145A50087999b5556aB3610\",\n    PREMINTER_IMPL: \"0xa79928cCc270b0208e56BfF0e927ff55034e7C35\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x69bB4A24EBD8b1B87AF4538E0Ca3075b7E398c3D\",\n    UPGRADE_GATE: \"0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900\",\n    timestamp: 1730928528,\n  },\n  168587773: {\n    CONTRACT_1155_IMPL: \"0x192D663C3D6813a24a24582A76B8d872c4F6F7f9\",\n    CONTRACT_1155_IMPL_VERSION: \"2.12.3\",\n    ERC20_MINTER: \"0x0000000000000000000000000000000000000000\",\n    FACTORY_IMPL: \"0x46E772210f01647FA573b915bE287Ff9b65AD4B0\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0x3EB144aee170BF62FdA1536e38aF51f08e34A5D0\",\n    MERKLE_MINT_SALE_STRATEGY: \"0xB9C997FcC46a27331CC986cc2416ee99C1d506c3\",\n    PREMINTER_IMPL: \"0xe3150ab94e3730D4B157ffD31Ad042323E122b4C\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x7A0dE1B1f5420Df5D946878fBe2cF109011BE614\",\n    UPGRADE_GATE: \"0xbC50029836A59A4E5e1Bb8988272F46ebA0F9900\",\n    timestamp: 1722525339,\n  },\n  999999999: {\n    CONTRACT_1155_IMPL: \"0x695C9A141748D308d26Bd4f8E9F9A5df5F0623f8\",\n    CONTRACT_1155_IMPL_VERSION: \"2.13.2\",\n    ERC20_MINTER: \"0x8Ec7f068A77fa5FC1925110f82381374BA054Ff2\",\n    FACTORY_IMPL: \"0xd92F69d5581BF9536c77550aeA1d74DDaE88B5B7\",\n    FACTORY_PROXY: \"0x777777C338d93e2C7adf08D102d45CA7CC4Ed021\",\n    FIXED_PRICE_SALE_STRATEGY: \"0x6d28164C3CE04A190D5F9f0f8881fc807EAD975A\",\n    MERKLE_MINT_SALE_STRATEGY: \"0x5e5fD4b758076BAD940db0284b711A67E8a3B88c\",\n    PREMINTER_IMPL: \"0xD8f6cf234eE4B689099677Bd94FbA0b1E005181d\",\n    PREMINTER_PROXY: \"0x7777773606e7e46C8Ba8B98C08f5cD218e31d340\",\n    REDEEM_MINTER_FACTORY: \"0x25cFb6dd9cDE8425e781d6718a29Ccbca3F038d6\",\n    UPGRADE_GATE: \"0x0000000000000000000000000000000000000000\",\n    timestamp: 1730928726,\n  },\n};\n","export const chainConfigs = {\n  1: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0xC36442b4a4522E871399CD717aBDD847Ab11FE88\",\n    UNISWAP_SWAP_ROUTER: \"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45\",\n    PROXY_ADMIN: \"0xDB392f4391462d60B8B4413ef72018Ab595Af9D0\",\n    ZORA_RECIPIENT: \"0xd1d1D4e36117aB794ec5d4c78cBD3a8904E691D0\",\n    WETH: \"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\n  },\n  10: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0xC36442b4a4522E871399CD717aBDD847Ab11FE88\",\n    UNISWAP_SWAP_ROUTER: \"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45\",\n    PROXY_ADMIN: \"0x4c7f7b6067fac9a737ecf2ca1a733fc85dd65a2b\",\n    ZORA_RECIPIENT: \"0x7A810DCd0f8d83B20212326813Db6EF7E9FD030c\",\n    WETH: \"0x4200000000000000000000000000000000000006\",\n  },\n  8453: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1\",\n    UNISWAP_SWAP_ROUTER: \"0x2626664c2603336E57B271c5C0b26F421741e481\",\n    UNISWAP_V3_FACTORY: \"0x33128a8fC17869897dcE68Ed026d694621f6FDfD\",\n    UNISWAP_QUOTER_V2: \"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a\",\n    DOPPLER_AIRLOCK: \"0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12\",\n    PROXY_ADMIN: \"0x004d6611884B4A661749B64b2ADc78505c3e1AB3\",\n    ZORA_RECIPIENT: \"0x7bf90111Ad7C22bec9E9dFf8A01A44713CC1b1B6\",\n    METADATA_MANAGER: \"0x004d6611884B4A661749B64b2ADc78505c3e1AB3\",\n    WETH: \"0x4200000000000000000000000000000000000006\",\n    UNISWAP_V4_POOL_MANAGER: \"0x498581ff718922c3f8e6a244956af099b2652b2b\",\n    UNISWAP_V4_POSITION_MANAGER: \"0x7c5f5a4bbd8fd63184577525326123b519429bdc\",\n    UNISWAP_PERMIT2: \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n    UNISWAP_UNIVERSAL_ROUTER: \"0x6ff5693b99212da76ad316178a184ab56d299b43\",\n  },\n  42161: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0xC36442b4a4522E871399CD717aBDD847Ab11FE88\",\n    UNISWAP_SWAP_ROUTER: \"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45\",\n    PROXY_ADMIN: \"0xF7DafC329C93D84267c0E7B146C0bD68807f6A03\",\n    ZORA_RECIPIENT: \"0x10Fb02A68C3EA8bD439A6f515dcE07CC049f5c94\",\n    WETH: \"0x82af49447d8a07e3bd95bd0d56f35241523fbab1\",\n  },\n  81457: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0xB218e4f7cF0533d4696fDfC419A0023D33345F28\",\n    UNISWAP_SWAP_ROUTER: \"0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66\",\n    PROXY_ADMIN: \"0x5b297B1b87f8De28C9fA7AFe183Db9F9e6295523\",\n    ZORA_RECIPIENT: \"0x72E6394056f9152D3a41e5A25De383c191D16134\",\n    WETH: \"0x4300000000000000000000000000000000000004\",\n  },\n  84532: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2\",\n    UNISWAP_SWAP_ROUTER: \"0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4\",\n    UNISWAP_V3_FACTORY: \"0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24\",\n    UNISWAP_QUOTER_V2: \"0xC5290058841028F1614F3A6F0F5816cAd0df5E27\",\n    DOPPLER_AIRLOCK: \"0xa24E35a5d71d02a59b41E7c93567626302da1958\",\n    PROXY_ADMIN: \"0x5F14C23983c9e0840Dc60dA880349622f0785420\",\n    ZORA_RECIPIENT: \"0x5F14C23983c9e0840Dc60dA880349622f0785420\",\n    METADATA_MANAGER: \"0x5F14C23983c9e0840Dc60dA880349622f0785420\",\n    WETH: \"0x4200000000000000000000000000000000000006\",\n    UNISWAP_V4_POOL_MANAGER: \"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408\",\n    UNISWAP_V4_POSITION_MANAGER: \"0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80\",\n    UNISWAP_PERMIT2: \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n    UNISWAP_UNIVERSAL_ROUTER: \"0x492E6456D9528771018DeB9E87ef7750EF184104\",\n  },\n  421614: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65\",\n    UNISWAP_SWAP_ROUTER: \"0x101F443B4d1b059569D643917553c771E1b9663E\",\n    PROXY_ADMIN: \"0x256537b56007b32BabEB44E868EC8AA5cBF03D30\",\n    ZORA_RECIPIENT: \"0x256537b56007b32BabEB44E868EC8AA5cBF03D30\",\n    WETH: \"0xc556bae1e86b2ae9c22ea5e036b07e55e7596074\",\n  },\n  7777777: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0xbC91e8DfA3fF18De43853372A3d7dfe585137D78\",\n    UNISWAP_SWAP_ROUTER: \"0x7De04c96BE5159c3b5CeffC82aa176dc81281557\",\n    PROXY_ADMIN: \"0xdEA20c96253dc2d64897D2b8d27A8d935dE74955\",\n    ZORA_RECIPIENT: \"0xEcfc2ee50409E459c554a2b0376F882Ce916D853\",\n    WETH: \"0x4200000000000000000000000000000000000006\",\n  },\n  11155111: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0x1238536071E1c677A632429e3655c799b22cDA52\",\n    UNISWAP_SWAP_ROUTER: \"0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E\",\n    PROXY_ADMIN: \"0xCE9F2e8EaFa11637F8A1CB60AE8AaC601Ae30f2D\",\n    ZORA_RECIPIENT: \"0xCE9F2e8EaFa11637F8A1CB60AE8AaC601Ae30f2D\",\n    WETH: \"0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9\",\n  },\n  11155420: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d\",\n    UNISWAP_SWAP_ROUTER: \"0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4\",\n    PROXY_ADMIN: \"0xFA3748b2dcF94a9CBdb5087333E9F093476e8389\",\n    ZORA_RECIPIENT: \"0xFA3748b2dcF94a9CBdb5087333E9F093476e8389\",\n    WETH: \"0x4200000000000000000000000000000000000006\",\n  },\n  999999999: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0xB8458EaAe43292e3c1F7994EFd016bd653d23c20\",\n    UNISWAP_SWAP_ROUTER: \"0x6B36d761981d82B1e07cF3c4daF4cB4615c4850a\",\n    PROXY_ADMIN: \"0xdae22ce69Afcb7f4bc37D32E267645722949DE0E\",\n    ZORA_RECIPIENT: \"0xdae22ce69Afcb7f4bc37D32E267645722949DE0E\",\n    WETH: \"0x4200000000000000000000000000000000000006\",\n  },\n  NaN: {\n    NONFUNGIBLE_POSITION_MANAGER: \"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1\",\n    UNISWAP_SWAP_ROUTER: \"0x2626664c2603336E57B271c5C0b26F421741e481\",\n    UNISWAP_V3_FACTORY: \"0x33128a8fC17869897dcE68Ed026d694621f6FDfD\",\n    UNISWAP_QUOTER_V2: \"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a\",\n    DOPPLER_AIRLOCK: \"0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12\",\n    PROXY_ADMIN: \"0xEAB37fbA9E4F99602815E173A7FeAee0f4eF980B\",\n    ZORA_RECIPIENT: \"0x7bf90111Ad7C22bec9E9dFf8A01A44713CC1b1B6\",\n    METADATA_MANAGER: \"0xEAB37fbA9E4F99602815E173A7FeAee0f4eF980B\",\n    WETH: \"0x4200000000000000000000000000000000000006\",\n    UNISWAP_V4_POOL_MANAGER: \"0x498581ff718922c3f8e6a244956af099b2652b2b\",\n    UNISWAP_V4_POSITION_MANAGER: \"0x7c5f5a4bbd8fd63184577525326123b519429bdc\",\n    UNISWAP_PERMIT2: \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n    UNISWAP_UNIVERSAL_ROUTER: \"0x6ff5693b99212da76ad316178a184ab56d299b43\",\n  },\n};\nexport const addresses = {\n  10: {\n    MINTS_ETH_UNWRAPPER_AND_CALLER:\n      \"0x0000000000000000000000000000000000000000\",\n    SPARKS_MANAGER_IMPL: \"0x0000000000000000000000000000000000000000\",\n    SPARKS_MANAGER_IMPL_VERSION: \"\",\n    SPONSORED_SPARKS_SPENDER: \"0x35ca784918bf11692708c1D530691704AAcEA95E\",\n    SPONSORED_SPARKS_SPENDER_VERSION: \"2.0.0\",\n  },\n  8453: {\n    MINTS_1155: \"0x0000000000000000000000000000000000000000\",\n    MINTS_ETH_UNWRAPPER_AND_CALLER:\n      \"0x0000000000000000000000000000000000000000\",\n    MINTS_MANAGER: \"0x0000000000000000000000000000000000000000\",\n    SPARKS_1155: \"0x7777777b3eA6C126942BB14dD5C3C11D365C385D\",\n    SPARKS_MANAGER: \"0x77777779acd6a96C0c57272112921A0b833c38fD\",\n    SPARKS_MANAGER_IMPL: \"0x122648369E390009F18c1B2b9B100AfB09B982fc\",\n    SPARKS_MANAGER_IMPL_VERSION: \"0.2.4\",\n    SPONSORED_SPARKS_SPENDER: \"0x6958A8866A40118e2CC21ab4752353835321b5e6\",\n    SPONSORED_SPARKS_SPENDER_VERSION: \"2.0.0\",\n  },\n  42161: {\n    MINTS_ETH_UNWRAPPER_AND_CALLER:\n      \"0x0000000000000000000000000000000000000000\",\n    SPARKS_MANAGER_IMPL: \"0x0000000000000000000000000000000000000000\",\n    SPARKS_MANAGER_IMPL_VERSION: \"\",\n    SPONSORED_SPARKS_SPENDER: \"0x2fBdBc34B6015e7b40638179Aa05a2D2267452c7\",\n    SPONSORED_SPARKS_SPENDER_VERSION: \"2.0.0\",\n  },\n  81457: {\n    MINTS_ETH_UNWRAPPER_AND_CALLER:\n      \"0x0000000000000000000000000000000000000000\",\n    SPARKS_MANAGER_IMPL: \"0x0000000000000000000000000000000000000000\",\n    SPARKS_MANAGER_IMPL_VERSION: \"\",\n    SPONSORED_SPARKS_SPENDER: \"0x786F0f6aE196715Cd6d65693f06DA57426ac8463\",\n    SPONSORED_SPARKS_SPENDER_VERSION: \"2.0.0\",\n  },\n  84532: {\n    MINTS_1155: \"0x0000000000000000000000000000000000000000\",\n    MINTS_ETH_UNWRAPPER_AND_CALLER:\n      \"0x0000000000000000000000000000000000000000\",\n    MINTS_MANAGER: \"0x0000000000000000000000000000000000000000\",\n    SPARKS_1155: \"0x7777777b3eA6C126942BB14dD5C3C11D365C385D\",\n    SPARKS_MANAGER: \"0x77777779acd6a96C0c57272112921A0b833c38fD\",\n    SPARKS_MANAGER_IMPL: \"0x122648369E390009F18c1B2b9B100AfB09B982fc\",\n    SPARKS_MANAGER_IMPL_VERSION: \"0.2.4\",\n    SPONSORED_SPARKS_SPENDER: \"0x23150f60E233F519A01C735C29c1591f9E8353dE\",\n    SPONSORED_SPARKS_SPENDER_VERSION: \"2.0.0\",\n  },\n  7777777: {\n    MINTS_ETH_UNWRAPPER_AND_CALLER:\n      \"0xb0994EB9520C98C97e1F3953a5964535C2bd271A\",\n    SPARKS_MANAGER_IMPL: \"0xFB854463800d09B89682746c37A3AE696C92193D\",\n    SPARKS_MANAGER_IMPL_VERSION: \"0.1.4\",\n    SPARKS_MANAGER: \"0x77777779acd6a96C0c57272112921A0b833c38fD\",\n    SPARKS_1155: \"0x7777777b3eA6C126942BB14dD5C3C11D365C385D\",\n    MINTS_MANAGER: \"0x77777770cA269366c7208aFcF36FE2C6F7f7608B\",\n    MINTS_1155: \"0x7777777d57c1C6e472fa379b7b3B6c6ba3835073\",\n    SPONSORED_SPARKS_SPENDER: \"0x362Ef86acAD2FAa66A28Ee8d1F5a835ac0BBD11d\",\n    SPONSORED_SPARKS_SPENDER_VERSION: \"2.0.0\",\n  },\n  999999999: {\n    MINTS_ETH_UNWRAPPER_AND_CALLER:\n      \"0xb0994EB9520C98C97e1F3953a5964535C2bd271A\",\n    SPARKS_MANAGER_IMPL: \"0xf7D8d07267E840aE466E5f2fe8b089F4DE79c7da\",\n    SPARKS_MANAGER_IMPL_VERSION: \"0.1.4\",\n    SPARKS_MANAGER: \"0x77777779acd6a96C0c57272112921A0b833c38fD\",\n    SPARKS_1155: \"0x7777777b3eA6C126942BB14dD5C3C11D365C385D\",\n    MINTS_MANAGER: \"0x77777770cA269366c7208aFcF36FE2C6F7f7608B\",\n    MINTS_1155: \"0x7777777d57c1C6e472fa379b7b3B6c6ba3835073\",\n    SPONSORED_SPARKS_SPENDER: \"0x3A98313fB00918a81d98f9986aED089365428293\",\n    SPONSORED_SPARKS_SPENDER_VERSION: \"2.0.0\",\n  },\n};\n"],"mappings":"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","names":["formatAbiItem","init_formatAbiItem","init_formatAbiItem","size","formatAbiItem","size","size","size","size","size","encoder","toBytes","toBytes","size","hash","init_regex","size","length","init_regex","init_cursor","size","data","length","consumed","value","size","init_cursor","PremintConfigVersion","version","addresses","chainConfigs"]}