Class ClearinghouseContract

Specialized contract that extends the generic Contract class to interact specifically with the Valorem Clearinghouse. It encapsulates the functionality to write and settle option contracts on-chain.

The ClearinghouseContract enables users to write options, execute them, and redeem claim tokens post-expiration, handling ERC-20 asset pairs.

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

address: `0x${string}`

Address of the smart contract.

read: {
    balanceOf: ((...parameters) => Promise<bigint>);
    balanceOfBatch: ((...parameters) => Promise<readonly bigint[]>);
    claim: ((...parameters) => Promise<{
        amountExercised: bigint;
        amountWritten: bigint;
        optionId: bigint;
    }>);
    feeBalance: ((...parameters) => Promise<bigint>);
    feeBps: ((...parameters) => Promise<number>);
    feeTo: ((...parameters) => Promise<`0x${string}`>);
    feesEnabled: ((...parameters) => Promise<boolean>);
    isApprovedForAll: ((...parameters) => Promise<boolean>);
    option: ((...parameters) => Promise<{
        exerciseAmount: bigint;
        exerciseAsset: `0x${string}`;
        exerciseTimestamp: number;
        expiryTimestamp: number;
        nextClaimKey: bigint;
        settlementSeed: bigint;
        underlyingAmount: bigint;
        underlyingAsset: `0x${string}`;
    }>);
    position: ((...parameters) => Promise<{
        exerciseAmount: bigint;
        exerciseAsset: `0x${string}`;
        underlyingAmount: bigint;
        underlyingAsset: `0x${string}`;
    }>);
    supportsInterface: ((...parameters) => Promise<boolean>);
    tokenType: ((...parameters) => Promise<number>);
    tokenURIGenerator: ((...parameters) => Promise<`0x${string}`>);
    uri: ((...parameters) => Promise<string>);
}

Read-only methods of the smart contract.

Type declaration

  • balanceOf: ((...parameters) => Promise<bigint>)
      • (...parameters): Promise<bigint>
      • Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`, bigint], options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<bigint>

  • balanceOfBatch: ((...parameters) => Promise<readonly bigint[]>)
      • (...parameters): Promise<readonly bigint[]>
      • Parameters

        • Rest ...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[]], options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<readonly bigint[]>

  • claim: ((...parameters) => Promise<{
        amountExercised: bigint;
        amountWritten: bigint;
        optionId: bigint;
    }>)
      • (...parameters): Promise<{
            amountExercised: bigint;
            amountWritten: bigint;
            optionId: bigint;
        }>
      • Parameters

        • Rest ...parameters: [args: readonly [bigint], options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<{
            amountExercised: bigint;
            amountWritten: bigint;
            optionId: bigint;
        }>

  • feeBalance: ((...parameters) => Promise<bigint>)
      • (...parameters): Promise<bigint>
      • Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`], options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<bigint>

  • feeBps: ((...parameters) => Promise<number>)
      • (...parameters): Promise<number>
      • Parameters

        • Rest ...parameters: [options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<number>

  • feeTo: ((...parameters) => Promise<`0x${string}`>)
      • (...parameters): Promise<`0x${string}`>
      • Parameters

        • Rest ...parameters: [options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<`0x${string}`>

  • feesEnabled: ((...parameters) => Promise<boolean>)
      • (...parameters): Promise<boolean>
      • Parameters

        • Rest ...parameters: [options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<boolean>

  • isApprovedForAll: ((...parameters) => Promise<boolean>)
      • (...parameters): Promise<boolean>
      • Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`, `0x${string}`], options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<boolean>

  • option: ((...parameters) => Promise<{
        exerciseAmount: bigint;
        exerciseAsset: `0x${string}`;
        exerciseTimestamp: number;
        expiryTimestamp: number;
        nextClaimKey: bigint;
        settlementSeed: bigint;
        underlyingAmount: bigint;
        underlyingAsset: `0x${string}`;
    }>)
      • (...parameters): Promise<{
            exerciseAmount: bigint;
            exerciseAsset: `0x${string}`;
            exerciseTimestamp: number;
            expiryTimestamp: number;
            nextClaimKey: bigint;
            settlementSeed: bigint;
            underlyingAmount: bigint;
            underlyingAsset: `0x${string}`;
        }>
      • Parameters

        • Rest ...parameters: [args: readonly [bigint], options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<{
            exerciseAmount: bigint;
            exerciseAsset: `0x${string}`;
            exerciseTimestamp: number;
            expiryTimestamp: number;
            nextClaimKey: bigint;
            settlementSeed: bigint;
            underlyingAmount: bigint;
            underlyingAsset: `0x${string}`;
        }>

  • position: ((...parameters) => Promise<{
        exerciseAmount: bigint;
        exerciseAsset: `0x${string}`;
        underlyingAmount: bigint;
        underlyingAsset: `0x${string}`;
    }>)
      • (...parameters): Promise<{
            exerciseAmount: bigint;
            exerciseAsset: `0x${string}`;
            underlyingAmount: bigint;
            underlyingAsset: `0x${string}`;
        }>
      • Parameters

        • Rest ...parameters: [args: readonly [bigint], options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<{
            exerciseAmount: bigint;
            exerciseAsset: `0x${string}`;
            underlyingAmount: bigint;
            underlyingAsset: `0x${string}`;
        }>

  • supportsInterface: ((...parameters) => Promise<boolean>)
      • (...parameters): Promise<boolean>
      • Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`], options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<boolean>

  • tokenType: ((...parameters) => Promise<number>)
      • (...parameters): Promise<number>
      • Parameters

        • Rest ...parameters: [args: readonly [bigint], options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<number>

  • tokenURIGenerator: ((...parameters) => Promise<`0x${string}`>)
      • (...parameters): Promise<`0x${string}`>
      • Parameters

        • Rest ...parameters: [options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<`0x${string}`>

  • uri: ((...parameters) => Promise<string>)
      • (...parameters): Promise<string>
      • Parameters

        • Rest ...parameters: [args: readonly [bigint], options?: {
              account?: `0x${string}` | Account;
              blockNumber?: bigint;
              blockTag?: BlockTag;
          }]

        Returns Promise<string>

simulate: {
    acceptFeeTo: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "acceptFeeTo", Chain, TChainOverride>>);
    exercise: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "exercise", Chain, TChainOverride>>);
    newOptionType: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "newOptionType", Chain, TChainOverride>>);
    redeem: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "redeem", Chain, TChainOverride>>);
    safeBatchTransferFrom: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "safeBatchTransferFrom", Chain, TChainOverride>>);
    safeTransferFrom: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "safeTransferFrom", Chain, TChainOverride>>);
    setApprovalForAll: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "setApprovalForAll", Chain, TChainOverride>>);
    setFeeTo: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "setFeeTo", Chain, TChainOverride>>);
    setFeesEnabled: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "setFeesEnabled", Chain, TChainOverride>>);
    setTokenURIGenerator: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "setTokenURIGenerator", Chain, TChainOverride>>);
    sweepFees: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "sweepFees", Chain, TChainOverride>>);
    write: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "write", Chain, TChainOverride>>);
}

Simulated methods of the smart contract.

Type declaration

  • acceptFeeTo: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "acceptFeeTo", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "acceptFeeTo", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "acceptFeeTo", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "acceptFeeTo", Chain, TChainOverride>>

  • exercise: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "exercise", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "exercise", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "exercise", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [args: readonly [bigint, bigint], options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "exercise", Chain, TChainOverride>>

  • newOptionType: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "newOptionType", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "newOptionType", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "newOptionType", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`, bigint, number, number], options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "newOptionType", Chain, TChainOverride>>

  • redeem: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "redeem", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "redeem", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "redeem", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [args: readonly [bigint], options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "redeem", Chain, TChainOverride>>

  • safeBatchTransferFrom: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "safeBatchTransferFrom", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "safeBatchTransferFrom", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "safeBatchTransferFrom", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`, `0x${string}`, readonly bigint[], readonly bigint[], `0x${string}`], options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "safeBatchTransferFrom", Chain, TChainOverride>>

  • safeTransferFrom: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "safeTransferFrom", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "safeTransferFrom", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "safeTransferFrom", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`, `0x${string}`, bigint, bigint, `0x${string}`], options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "safeTransferFrom", Chain, TChainOverride>>

  • setApprovalForAll: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "setApprovalForAll", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "setApprovalForAll", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "setApprovalForAll", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`, boolean], options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "setApprovalForAll", Chain, TChainOverride>>

  • setFeeTo: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "setFeeTo", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "setFeeTo", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "setFeeTo", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`], options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "setFeeTo", Chain, TChainOverride>>

  • setFeesEnabled: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "setFeesEnabled", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "setFeesEnabled", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "setFeesEnabled", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [args: readonly [boolean], options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "setFeesEnabled", Chain, TChainOverride>>

  • setTokenURIGenerator: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "setTokenURIGenerator", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "setTokenURIGenerator", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "setTokenURIGenerator", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`], options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "setTokenURIGenerator", Chain, TChainOverride>>

  • sweepFees: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "sweepFees", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "sweepFees", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "sweepFees", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [args: readonly [readonly `0x${string}`[]], options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "sweepFees", Chain, TChainOverride>>

  • write: (<TChainOverride, Options>(...parameters) => Promise<SimulateContractReturnType<readonly [{
        inputs: readonly [{
            internalType: "address";
            name: "_feeTo";
            type: "address";
        }, {
            internalType: "address";
            name: "_tokenURIGenerator";
            type: "address";
        }];
        stateMutability: "nonpayable";
        type: "constructor";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "accessor";
            type: "address";
        }, {
            internalType: "address";
            name: "permissioned";
            type: "address";
        }];
        name: "AccessControlViolation";
        type: "error";
    }, {
        inputs: readonly [];
        name: "AmountWrittenCannotBeZero";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "CallerDoesNotOwnClaimId";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "CallerHoldsInsufficientOptions";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ClaimTooSoon";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseTooEarly";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "exercise";
            type: "uint40";
        }];
        name: "ExerciseWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiredOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint40";
            name: "expiry";
            type: "uint40";
        }];
        name: "ExpiryWindowTooShort";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "input";
            type: "address";
        }];
        name: "InvalidAddress";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "asset1";
            type: "address";
        }, {
            internalType: "address";
            name: "asset2";
            type: "address";
        }];
        name: "InvalidAssets";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidClaim";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "InvalidOption";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        name: "OptionsTypeExists";
        type: "error";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "token";
            type: "uint256";
        }];
        name: "TokenNotFound";
        type: "error";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "owner";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "ApprovalForAll";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amountAssigned";
            type: "uint112";
        }];
        name: "BucketAssignedExercise";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint96";
            name: "bucketIndex";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "BucketWrittenInto";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "redeemer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "exerciseAmountRedeemed";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "underlyingAmountRedeemed";
            type: "uint256";
        }];
        name: "ClaimRedeemed";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "payer";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeAccrued";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "asset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "FeeSwept";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "address";
            name: "feeTo";
            type: "address";
        }, {
            indexed: false;
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "FeeSwitchUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "FeeToUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            indexed: false;
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            indexed: true;
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "NewOptionType";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "exerciser";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsExercised";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            indexed: true;
            internalType: "address";
            name: "writer";
            type: "address";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "OptionsWritten";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "TokenURIGeneratorUpdated";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            indexed: false;
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }];
        name: "TransferBatch";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: true;
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            indexed: true;
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            indexed: false;
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }];
        name: "TransferSingle";
        type: "event";
    }, {
        anonymous: false;
        inputs: readonly [{
            indexed: false;
            internalType: "string";
            name: "value";
            type: "string";
        }, {
            indexed: true;
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }];
        name: "URI";
        type: "event";
    }, {
        inputs: readonly [];
        name: "acceptFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        name: "balanceOf";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "owners";
            type: "address[]";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }];
        name: "balanceOfBatch";
        outputs: readonly [{
            internalType: "uint256[]";
            name: "balances";
            type: "uint256[]";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "claim";
        outputs: readonly [{
            components: readonly [{
                internalType: "uint256";
                name: "amountWritten";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amountExercised";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Claim";
            name: "claimInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "exercise";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "feeBalance";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeBps";
        outputs: readonly [{
            internalType: "uint8";
            name: "";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feeTo";
        outputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "feesEnabled";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "";
            type: "address";
        }, {
            internalType: "address";
            name: "";
            type: "address";
        }];
        name: "isApprovedForAll";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "underlyingAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "underlyingAmount";
            type: "uint96";
        }, {
            internalType: "address";
            name: "exerciseAsset";
            type: "address";
        }, {
            internalType: "uint96";
            name: "exerciseAmount";
            type: "uint96";
        }, {
            internalType: "uint40";
            name: "exerciseTimestamp";
            type: "uint40";
        }, {
            internalType: "uint40";
            name: "expiryTimestamp";
            type: "uint40";
        }];
        name: "newOptionType";
        outputs: readonly [{
            internalType: "uint256";
            name: "optionId";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "option";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }, {
                internalType: "uint160";
                name: "settlementSeed";
                type: "uint160";
            }, {
                internalType: "uint96";
                name: "nextClaimKey";
                type: "uint96";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Option";
            name: "optionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "position";
        outputs: readonly [{
            components: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "underlyingAmount";
                type: "int256";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "int256";
                name: "exerciseAmount";
                type: "int256";
            }];
            internalType: "struct IValoremOptionsClearinghouse.Position";
            name: "positionInfo";
            type: "tuple";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "claimId";
            type: "uint256";
        }];
        name: "redeem";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256[]";
            name: "ids";
            type: "uint256[]";
        }, {
            internalType: "uint256[]";
            name: "amounts";
            type: "uint256[]";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeBatchTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "from";
            type: "address";
        }, {
            internalType: "address";
            name: "to";
            type: "address";
        }, {
            internalType: "uint256";
            name: "id";
            type: "uint256";
        }, {
            internalType: "uint256";
            name: "amount";
            type: "uint256";
        }, {
            internalType: "bytes";
            name: "data";
            type: "bytes";
        }];
        name: "safeTransferFrom";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "operator";
            type: "address";
        }, {
            internalType: "bool";
            name: "approved";
            type: "bool";
        }];
        name: "setApprovalForAll";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newFeeTo";
            type: "address";
        }];
        name: "setFeeTo";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bool";
            name: "enabled";
            type: "bool";
        }];
        name: "setFeesEnabled";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address";
            name: "newTokenURIGenerator";
            type: "address";
        }];
        name: "setTokenURIGenerator";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "bytes4";
            name: "interfaceId";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            internalType: "bool";
            name: "";
            type: "bool";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "address[]";
            name: "tokens";
            type: "address[]";
        }];
        name: "sweepFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "tokenType";
        outputs: readonly [{
            internalType: "enum IValoremOptionsClearinghouse.TokenType";
            name: "typeOfToken";
            type: "uint8";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [];
        name: "tokenURIGenerator";
        outputs: readonly [{
            internalType: "contract ITokenURIGenerator";
            name: "";
            type: "address";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }];
        name: "uri";
        outputs: readonly [{
            internalType: "string";
            name: "";
            type: "string";
        }];
        stateMutability: "view";
        type: "function";
    }, {
        inputs: readonly [{
            internalType: "uint256";
            name: "tokenId";
            type: "uint256";
        }, {
            internalType: "uint112";
            name: "amount";
            type: "uint112";
        }];
        name: "write";
        outputs: readonly [{
            internalType: "uint256";
            name: "";
            type: "uint256";
        }];
        stateMutability: "nonpayable";
        type: "function";
    }], "write", Chain, TChainOverride>>)
      • <TChainOverride, Options>(...parameters): Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "write", Chain, TChainOverride>>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends Prettify<UnionOmit<SimulateContractParameters<readonly [{
              inputs: readonly [{
                  internalType: "address";
                  name: "_feeTo";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "_tokenURIGenerator";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "accessor";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "permissioned";
                  type: "address";
              }];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "exercise";
                  type: "uint40";
              }];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint40";
                  name: "expiry";
                  type: "uint40";
              }];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "input";
                  type: "address";
              }];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "asset1";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "asset2";
                  type: "address";
              }];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "token";
                  type: "uint256";
              }];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amountAssigned";
                  type: "uint112";
              }];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint96";
                  name: "bucketIndex";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "redeemer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "exerciseAmountRedeemed";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "underlyingAmountRedeemed";
                  type: "uint256";
              }];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "payer";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "asset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "feeTo";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  indexed: false;
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  indexed: true;
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "exerciser";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "writer";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "string";
                  name: "value";
                  type: "string";
              }, {
                  indexed: true;
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "balanceOf";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "owners";
                  type: "address[]";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }];
              name: "balanceOfBatch";
              outputs: readonly [{
                  internalType: "uint256[]";
                  name: "balances";
                  type: "uint256[]";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "claim";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "uint256";
                      name: "amountWritten";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amountExercised";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Claim";
                  name: "claimInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "feeBalance";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [{
                  internalType: "uint8";
                  name: "";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "isApprovedForAll";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "underlyingAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "underlyingAmount";
                  type: "uint96";
              }, {
                  internalType: "address";
                  name: "exerciseAsset";
                  type: "address";
              }, {
                  internalType: "uint96";
                  name: "exerciseAmount";
                  type: "uint96";
              }, {
                  internalType: "uint40";
                  name: "exerciseTimestamp";
                  type: "uint40";
              }, {
                  internalType: "uint40";
                  name: "expiryTimestamp";
                  type: "uint40";
              }];
              name: "newOptionType";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "optionId";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "option";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint160";
                      name: "settlementSeed";
                      type: "uint160";
                  }, {
                      internalType: "uint96";
                      name: "nextClaimKey";
                      type: "uint96";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Option";
                  name: "optionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "position";
              outputs: readonly [{
                  components: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "underlyingAmount";
                      type: "int256";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "int256";
                      name: "exerciseAmount";
                      type: "int256";
                  }];
                  internalType: "struct IValoremOptionsClearinghouse.Position";
                  name: "positionInfo";
                  type: "tuple";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "claimId";
                  type: "uint256";
              }];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "from";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "to";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "bool";
                  name: "approved";
                  type: "bool";
              }];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newFeeTo";
                  type: "address";
              }];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bool";
                  name: "enabled";
                  type: "bool";
              }];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newTokenURIGenerator";
                  type: "address";
              }];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address[]";
                  name: "tokens";
                  type: "address[]";
              }];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "tokenType";
              outputs: readonly [{
                  internalType: "enum IValoremOptionsClearinghouse.TokenType";
                  name: "typeOfToken";
                  type: "uint8";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [{
                  internalType: "contract ITokenURIGenerator";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "uri";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }, {
                  internalType: "uint112";
                  name: "amount";
                  type: "uint112";
              }];
              name: "write";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }], "write", Chain, TChainOverride>, "address" | "abi" | "args" | "functionName">>

        Parameters

        • Rest ...parameters: [args: readonly [bigint, bigint], options?: Options]

        Returns Promise<SimulateContractReturnType<readonly [{
            inputs: readonly [{
                internalType: "address";
                name: "_feeTo";
                type: "address";
            }, {
                internalType: "address";
                name: "_tokenURIGenerator";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "accessor";
                type: "address";
            }, {
                internalType: "address";
                name: "permissioned";
                type: "address";
            }];
            name: "AccessControlViolation";
            type: "error";
        }, {
            inputs: readonly [];
            name: "AmountWrittenCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "CallerDoesNotOwnClaimId";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "CallerHoldsInsufficientOptions";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ClaimTooSoon";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseTooEarly";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "exercise";
                type: "uint40";
            }];
            name: "ExerciseWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiredOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint40";
                name: "expiry";
                type: "uint40";
            }];
            name: "ExpiryWindowTooShort";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "input";
                type: "address";
            }];
            name: "InvalidAddress";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "asset1";
                type: "address";
            }, {
                internalType: "address";
                name: "asset2";
                type: "address";
            }];
            name: "InvalidAssets";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidClaim";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "InvalidOption";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            name: "OptionsTypeExists";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "token";
                type: "uint256";
            }];
            name: "TokenNotFound";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "owner";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "ApprovalForAll";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amountAssigned";
                type: "uint112";
            }];
            name: "BucketAssignedExercise";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint96";
                name: "bucketIndex";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "BucketWrittenInto";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "redeemer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "exerciseAmountRedeemed";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "underlyingAmountRedeemed";
                type: "uint256";
            }];
            name: "ClaimRedeemed";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "payer";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeAccrued";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "asset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "FeeSwept";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "feeTo";
                type: "address";
            }, {
                indexed: false;
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "FeeSwitchUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "FeeToUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                indexed: false;
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                indexed: true;
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "NewOptionType";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "exerciser";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsExercised";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "address";
                name: "writer";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "OptionsWritten";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "TokenURIGeneratorUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                indexed: false;
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }];
            name: "TransferBatch";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "TransferSingle";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "string";
                name: "value";
                type: "string";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }];
            name: "URI";
            type: "event";
        }, {
            inputs: readonly [];
            name: "acceptFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "balanceOf";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "owners";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }];
            name: "balanceOfBatch";
            outputs: readonly [{
                internalType: "uint256[]";
                name: "balances";
                type: "uint256[]";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "claim";
            outputs: readonly [{
                components: readonly [{
                    internalType: "uint256";
                    name: "amountWritten";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amountExercised";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "optionId";
                    type: "uint256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Claim";
                name: "claimInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "exercise";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "feeBalance";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeBps";
            outputs: readonly [{
                internalType: "uint8";
                name: "";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feeTo";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "feesEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }, {
                internalType: "address";
                name: "";
                type: "address";
            }];
            name: "isApprovedForAll";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "underlyingAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "underlyingAmount";
                type: "uint96";
            }, {
                internalType: "address";
                name: "exerciseAsset";
                type: "address";
            }, {
                internalType: "uint96";
                name: "exerciseAmount";
                type: "uint96";
            }, {
                internalType: "uint40";
                name: "exerciseTimestamp";
                type: "uint40";
            }, {
                internalType: "uint40";
                name: "expiryTimestamp";
                type: "uint40";
            }];
            name: "newOptionType";
            outputs: readonly [{
                internalType: "uint256";
                name: "optionId";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "option";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "underlyingAmount";
                    type: "uint96";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "uint96";
                    name: "exerciseAmount";
                    type: "uint96";
                }, {
                    internalType: "uint40";
                    name: "exerciseTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint40";
                    name: "expiryTimestamp";
                    type: "uint40";
                }, {
                    internalType: "uint160";
                    name: "settlementSeed";
                    type: "uint160";
                }, {
                    internalType: "uint96";
                    name: "nextClaimKey";
                    type: "uint96";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Option";
                name: "optionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "position";
            outputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "underlyingAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "underlyingAmount";
                    type: "int256";
                }, {
                    internalType: "address";
                    name: "exerciseAsset";
                    type: "address";
                }, {
                    internalType: "int256";
                    name: "exerciseAmount";
                    type: "int256";
                }];
                internalType: "struct IValoremOptionsClearinghouse.Position";
                name: "positionInfo";
                type: "tuple";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "claimId";
                type: "uint256";
            }];
            name: "redeem";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256[]";
                name: "ids";
                type: "uint256[]";
            }, {
                internalType: "uint256[]";
                name: "amounts";
                type: "uint256[]";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeBatchTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "from";
                type: "address";
            }, {
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                internalType: "uint256";
                name: "id";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }];
            name: "safeTransferFrom";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "operator";
                type: "address";
            }, {
                internalType: "bool";
                name: "approved";
                type: "bool";
            }];
            name: "setApprovalForAll";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newFeeTo";
                type: "address";
            }];
            name: "setFeeTo";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bool";
                name: "enabled";
                type: "bool";
            }];
            name: "setFeesEnabled";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "newTokenURIGenerator";
                type: "address";
            }];
            name: "setTokenURIGenerator";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "tokens";
                type: "address[]";
            }];
            name: "sweepFees";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "tokenType";
            outputs: readonly [{
                internalType: "enum IValoremOptionsClearinghouse.TokenType";
                name: "typeOfToken";
                type: "uint8";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "tokenURIGenerator";
            outputs: readonly [{
                internalType: "contract ITokenURIGenerator";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }];
            name: "uri";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "tokenId";
                type: "uint256";
            }, {
                internalType: "uint112";
                name: "amount";
                type: "uint112";
            }];
            name: "write";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }], "write", Chain, TChainOverride>>

write?: {
    acceptFeeTo: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
    exercise: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
    newOptionType: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
    redeem: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
    safeBatchTransferFrom: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
    safeTransferFrom: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
    setApprovalForAll: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
    setFeeTo: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
    setFeesEnabled: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
    setTokenURIGenerator: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
    sweepFees: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
    write: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>);
}

State-changing methods of the smart contract. Present only if walletClient is provided.

Type declaration

  • acceptFeeTo: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "acceptFeeTo", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [options?: Options]

        Returns Promise<`0x${string}`>

  • exercise: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "exercise", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [args: readonly [bigint, bigint], options?: Options]

        Returns Promise<`0x${string}`>

  • newOptionType: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "newOptionType", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`, bigint, number, number], options?: Options]

        Returns Promise<`0x${string}`>

  • redeem: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "redeem", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [args: readonly [bigint], options?: Options]

        Returns Promise<`0x${string}`>

  • safeBatchTransferFrom: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "safeBatchTransferFrom", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`, `0x${string}`, readonly bigint[], readonly bigint[], `0x${string}`], options?: Options]

        Returns Promise<`0x${string}`>

  • safeTransferFrom: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "safeTransferFrom", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`, `0x${string}`, bigint, bigint, `0x${string}`], options?: Options]

        Returns Promise<`0x${string}`>

  • setApprovalForAll: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "setApprovalForAll", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`, boolean], options?: Options]

        Returns Promise<`0x${string}`>

  • setFeeTo: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "setFeeTo", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`], options?: Options]

        Returns Promise<`0x${string}`>

  • setFeesEnabled: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "setFeesEnabled", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [args: readonly [boolean], options?: Options]

        Returns Promise<`0x${string}`>

  • setTokenURIGenerator: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "setTokenURIGenerator", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [args: readonly [`0x${string}`], options?: Options]

        Returns Promise<`0x${string}`>

  • sweepFees: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "sweepFees", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [args: readonly [readonly `0x${string}`[]], options?: Options]

        Returns Promise<`0x${string}`>

  • write: (<TChainOverride, Options>(...parameters) => Promise<`0x${string}`>)
      • <TChainOverride, Options>(...parameters): Promise<`0x${string}`>
      • Type Parameters

        • TChainOverride extends undefined | Chain

        • Options extends {
              [K in string | number | symbol]: UnionOmit<WriteContractParameters<readonly [{
                  inputs: readonly [{
                      internalType: "address";
                      name: "_feeTo";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "_tokenURIGenerator";
                      type: "address";
                  }];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "accessor";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "permissioned";
                      type: "address";
                  }];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "exercise";
                      type: "uint40";
                  }];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint40";
                      name: "expiry";
                      type: "uint40";
                  }];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "input";
                      type: "address";
                  }];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "asset1";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "asset2";
                      type: "address";
                  }];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "token";
                      type: "uint256";
                  }];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "owner";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amountAssigned";
                      type: "uint112";
                  }];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint96";
                      name: "bucketIndex";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "redeemer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "exerciseAmountRedeemed";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "underlyingAmountRedeemed";
                      type: "uint256";
                  }];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "payer";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "asset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "address";
                      name: "feeTo";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      indexed: false;
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      indexed: true;
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "exerciser";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "writer";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      indexed: false;
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: true;
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      indexed: true;
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      indexed: false;
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [{
                      indexed: false;
                      internalType: "string";
                      name: "value";
                      type: "string";
                  }, {
                      indexed: true;
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  name: "balanceOf";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "owners";
                      type: "address[]";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }];
                  name: "balanceOfBatch";
                  outputs: readonly [{
                      internalType: "uint256[]";
                      name: "balances";
                      type: "uint256[]";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "claim";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "uint256";
                          name: "amountWritten";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "amountExercised";
                          type: "uint256";
                      }, {
                          internalType: "uint256";
                          name: "optionId";
                          type: "uint256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Claim";
                      name: "claimInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "feeBalance";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [{
                      internalType: "uint8";
                      name: "";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "";
                      type: "address";
                  }];
                  name: "isApprovedForAll";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "underlyingAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "underlyingAmount";
                      type: "uint96";
                  }, {
                      internalType: "address";
                      name: "exerciseAsset";
                      type: "address";
                  }, {
                      internalType: "uint96";
                      name: "exerciseAmount";
                      type: "uint96";
                  }, {
                      internalType: "uint40";
                      name: "exerciseTimestamp";
                      type: "uint40";
                  }, {
                      internalType: "uint40";
                      name: "expiryTimestamp";
                      type: "uint40";
                  }];
                  name: "newOptionType";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "optionId";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "option";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "underlyingAmount";
                          type: "uint96";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "uint96";
                          name: "exerciseAmount";
                          type: "uint96";
                      }, {
                          internalType: "uint40";
                          name: "exerciseTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint40";
                          name: "expiryTimestamp";
                          type: "uint40";
                      }, {
                          internalType: "uint160";
                          name: "settlementSeed";
                          type: "uint160";
                      }, {
                          internalType: "uint96";
                          name: "nextClaimKey";
                          type: "uint96";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Option";
                      name: "optionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "position";
                  outputs: readonly [{
                      components: readonly [{
                          internalType: "address";
                          name: "underlyingAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "underlyingAmount";
                          type: "int256";
                      }, {
                          internalType: "address";
                          name: "exerciseAsset";
                          type: "address";
                      }, {
                          internalType: "int256";
                          name: "exerciseAmount";
                          type: "int256";
                      }];
                      internalType: "struct IValoremOptionsClearinghouse.Position";
                      name: "positionInfo";
                      type: "tuple";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "claimId";
                      type: "uint256";
                  }];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256[]";
                      name: "ids";
                      type: "uint256[]";
                  }, {
                      internalType: "uint256[]";
                      name: "amounts";
                      type: "uint256[]";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "from";
                      type: "address";
                  }, {
                      internalType: "address";
                      name: "to";
                      type: "address";
                  }, {
                      internalType: "uint256";
                      name: "id";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "amount";
                      type: "uint256";
                  }, {
                      internalType: "bytes";
                      name: "data";
                      type: "bytes";
                  }];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "operator";
                      type: "address";
                  }, {
                      internalType: "bool";
                      name: "approved";
                      type: "bool";
                  }];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newFeeTo";
                      type: "address";
                  }];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bool";
                      name: "enabled";
                      type: "bool";
                  }];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address";
                      name: "newTokenURIGenerator";
                      type: "address";
                  }];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "bytes4";
                      name: "interfaceId";
                      type: "bytes4";
                  }];
                  name: "supportsInterface";
                  outputs: readonly [{
                      internalType: "bool";
                      name: "";
                      type: "bool";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "address[]";
                      name: "tokens";
                      type: "address[]";
                  }];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "tokenType";
                  outputs: readonly [{
                      internalType: "enum IValoremOptionsClearinghouse.TokenType";
                      name: "typeOfToken";
                      type: "uint8";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [{
                      internalType: "contract ITokenURIGenerator";
                      name: "";
                      type: "address";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }];
                  name: "uri";
                  outputs: readonly [{
                      internalType: "string";
                      name: "";
                      type: "string";
                  }];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [{
                      internalType: "uint256";
                      name: "tokenId";
                      type: "uint256";
                  }, {
                      internalType: "uint112";
                      name: "amount";
                      type: "uint112";
                  }];
                  name: "write";
                  outputs: readonly [{
                      internalType: "uint256";
                      name: "";
                      type: "uint256";
                  }];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "write", Chain, Account, TChainOverride>, "address" | "abi" | "args" | "functionName">[K]
          }

        Parameters

        • Rest ...parameters: [args: readonly [bigint, bigint], options?: Options]

        Returns Promise<`0x${string}`>

Generated using TypeDoc