Function useClearNewOptionType

  • Wraps useContractWrite with abi set to clearABI and functionName set to "newOptionType".

    Type Parameters

    • TMode extends WriteContractMode = undefined

    • TChainId extends number = 1 | 31337 | 42161 | 421614

    Parameters

    • config: TMode extends "prepared"
          ? MutationConfig<WriteContractResult, Error, UseContractWriteArgs<readonly [{
              inputs: readonly [({ readonly name: "_feeTo"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "_tokenURIGenerator"; readonly internalType: "address"; readonly type: "address"; })];
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              inputs: readonly [({ readonly name: "accessor"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "permissioned"; readonly internalType: "address"; readonly type: "address"; })];
              name: "AccessControlViolation";
              type: "error";
          }, {
              inputs: readonly [];
              name: "AmountWrittenCannotBeZero";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "CallerDoesNotOwnClaimId";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; })];
              name: "CallerHoldsInsufficientOptions";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "expiry"; readonly internalType: "uint40"; readonly type: "uint40"; })];
              name: "ClaimTooSoon";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "exercise"; readonly internalType: "uint40"; readonly type: "uint40"; })];
              name: "ExerciseTooEarly";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "exercise"; readonly internalType: "uint40"; readonly type: "uint40"; })];
              name: "ExerciseWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "expiry"; readonly internalType: "uint40"; readonly type: "uint40"; })];
              name: "ExpiredOption";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "expiry"; readonly internalType: "uint40"; readonly type: "uint40"; })];
              name: "ExpiryWindowTooShort";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "input"; readonly internalType: "address"; readonly type: "address"; })];
              name: "InvalidAddress";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "asset1"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "asset2"; readonly internalType: "address"; readonly type: "address"; })];
              name: "InvalidAssets";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "token"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "InvalidClaim";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "token"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "InvalidOption";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "OptionsTypeExists";
              type: "error";
          }, {
              inputs: readonly [({ readonly name: "token"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "TokenNotFound";
              type: "error";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "owner"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "approved"; readonly internalType: "bool"; readonly type: "bool"; readonly indexed: false; })];
              name: "ApprovalForAll";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "bucketIndex"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: true; }), ({ readonly name: "amountAssigned"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
              name: "BucketAssignedExercise";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "bucketIndex"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
              name: "BucketWrittenInto";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "redeemer"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "exerciseAmountRedeemed"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }), ({ readonly name: "underlyingAmountRedeemed"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
              name: "ClaimRedeemed";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "asset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "payer"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
              name: "FeeAccrued";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "asset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "feeTo"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
              name: "FeeSwept";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "feeTo"; readonly internalType: "address"; readonly type: "address"; readonly indexed: false; }), ({ readonly name: "enabled"; readonly internalType: "bool"; readonly type: "bool"; readonly indexed: false; })];
              name: "FeeSwitchUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "newFeeTo"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; })];
              name: "FeeToUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }), ({ readonly name: "exerciseAsset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "exerciseAmount"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: false; }), ({ readonly name: "underlyingAmount"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: false; }), ({ readonly name: "exerciseTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; readonly indexed: false; }), ({ readonly name: "expiryTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; readonly indexed: true; })];
              name: "NewOptionType";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "exerciser"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
              name: "OptionsExercised";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "writer"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
              name: "OptionsWritten";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "newTokenURIGenerator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; })];
              name: "TokenURIGeneratorUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "ids"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; readonly indexed: false; }), ({ readonly name: "amounts"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; readonly indexed: false; })];
              name: "TransferBatch";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "id"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
              name: "TransferSingle";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [({ readonly name: "value"; readonly internalType: "string"; readonly type: "string"; readonly indexed: false; }), ({ readonly name: "id"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; })];
              name: "URI";
              type: "event";
          }, {
              inputs: readonly [];
              name: "acceptFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "balanceOf";
              outputs: readonly [({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "owners"; readonly internalType: "address[]"; readonly type: "address[]"; }), ({ readonly name: "ids"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; })];
              name: "balanceOfBatch";
              outputs: readonly [({ readonly name: "balances"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "claim";
              outputs: readonly [({ readonly name: "claimInfo"; readonly internalType: "struct IValoremOptionsClearinghouse.Claim"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "amountWritten"; readonly internalType: "uint256"; readonly type: "uint256"; }, { ...; }, { ...; }]; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; })];
              name: "exercise";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; })];
              name: "feeBalance";
              outputs: readonly [({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeBps";
              outputs: readonly [({ readonly name: ""; readonly internalType: "uint8"; readonly type: "uint8"; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feeTo";
              outputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "feesEnabled";
              outputs: readonly [({ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; })];
              name: "isApprovedForAll";
              outputs: readonly [({ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "underlyingAmount"; readonly internalType: "uint96"; readonly type: "uint96"; }), ({ readonly name: "exerciseAsset"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "exerciseAmount"; readonly internalType: "uint96"; readonly type: "uint96"; }), ({ readonly name: "exerciseTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; }), ({ readonly name: "expiryTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; })];
              name: "newOptionType";
              outputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "option";
              outputs: readonly [({ readonly name: "optionInfo"; readonly internalType: "struct IValoremOptionsClearinghouse.Option"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; }, ... 6 more ..., { ...; }]; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "position";
              outputs: readonly [({ readonly name: "positionInfo"; readonly internalType: "struct IValoremOptionsClearinghouse.Position"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; }, { ...; }, { ...; }, { ...; }]; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "redeem";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "ids"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; }), ({ readonly name: "amounts"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; }), ({ readonly name: "data"; readonly internalType: "bytes"; readonly type: "bytes"; })];
              name: "safeBatchTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "id"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "data"; readonly internalType: "bytes"; readonly type: "bytes"; })];
              name: "safeTransferFrom";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "approved"; readonly internalType: "bool"; readonly type: "bool"; })];
              name: "setApprovalForAll";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "newFeeTo"; readonly internalType: "address"; readonly type: "address"; })];
              name: "setFeeTo";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "enabled"; readonly internalType: "bool"; readonly type: "bool"; })];
              name: "setFeesEnabled";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "newTokenURIGenerator"; readonly internalType: "address"; readonly type: "address"; })];
              name: "setTokenURIGenerator";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "interfaceId"; readonly internalType: "bytes4"; readonly type: "bytes4"; })];
              name: "supportsInterface";
              outputs: readonly [({ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "tokens"; readonly internalType: "address[]"; readonly type: "address[]"; })];
              name: "sweepFees";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "tokenType";
              outputs: readonly [({ readonly name: "typeOfToken"; readonly internalType: "enum IValoremOptionsClearinghouse.TokenType"; readonly type: "uint8"; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenURIGenerator";
              outputs: readonly [({ readonly name: ""; readonly internalType: "contract ITokenURIGenerator"; readonly type: "address"; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
              name: "uri";
              outputs: readonly [({ readonly name: ""; readonly internalType: "string"; readonly type: "string"; })];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; })];
              name: "write";
              outputs: readonly [({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
              stateMutability: "nonpayable";
              type: "function";
          }], "newOptionType", TMode>> & {
              mode?: TMode;
          } & (TMode extends "prepared"
              ? UseContractWritePreparedArgs<readonly [{
                  inputs: readonly [({ readonly name: "_feeTo"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "_tokenURIGenerator"; readonly internalType: "address"; readonly type: "address"; })];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [({ readonly name: "accessor"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "permissioned"; readonly internalType: "address"; readonly type: "address"; })];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; })];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "expiry"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "exercise"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "exercise"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "expiry"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "expiry"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "input"; readonly internalType: "address"; readonly type: "address"; })];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "asset1"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "asset2"; readonly internalType: "address"; readonly type: "address"; })];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "token"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "token"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "token"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "owner"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "approved"; readonly internalType: "bool"; readonly type: "bool"; readonly indexed: false; })];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "bucketIndex"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: true; }), ({ readonly name: "amountAssigned"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "bucketIndex"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "redeemer"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "exerciseAmountRedeemed"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }), ({ readonly name: "underlyingAmountRedeemed"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "asset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "payer"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "asset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "feeTo"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "feeTo"; readonly internalType: "address"; readonly type: "address"; readonly indexed: false; }), ({ readonly name: "enabled"; readonly internalType: "bool"; readonly type: "bool"; readonly indexed: false; })];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "newFeeTo"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; })];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }), ({ readonly name: "exerciseAsset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "exerciseAmount"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: false; }), ({ readonly name: "underlyingAmount"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: false; }), ({ readonly name: "exerciseTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; readonly indexed: false; }), ({ readonly name: "expiryTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; readonly indexed: true; })];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "exerciser"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "writer"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "newTokenURIGenerator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; })];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "ids"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; readonly indexed: false; }), ({ readonly name: "amounts"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; readonly indexed: false; })];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "id"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "value"; readonly internalType: "string"; readonly type: "string"; readonly indexed: false; }), ({ readonly name: "id"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; })];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "balanceOf";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "owners"; readonly internalType: "address[]"; readonly type: "address[]"; }), ({ readonly name: "ids"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; })];
                  name: "balanceOfBatch";
                  outputs: readonly [({ readonly name: "balances"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "claim";
                  outputs: readonly [({ readonly name: "claimInfo"; readonly internalType: "struct IValoremOptionsClearinghouse.Claim"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "amountWritten"; readonly internalType: "uint256"; readonly type: "uint256"; }, { ...; }, { ...; }]; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; })];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; })];
                  name: "feeBalance";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "uint8"; readonly type: "uint8"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; })];
                  name: "isApprovedForAll";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "underlyingAmount"; readonly internalType: "uint96"; readonly type: "uint96"; }), ({ readonly name: "exerciseAsset"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "exerciseAmount"; readonly internalType: "uint96"; readonly type: "uint96"; }), ({ readonly name: "exerciseTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; }), ({ readonly name: "expiryTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "newOptionType";
                  outputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "option";
                  outputs: readonly [({ readonly name: "optionInfo"; readonly internalType: "struct IValoremOptionsClearinghouse.Option"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; }, ... 6 more ..., { ...; }]; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "position";
                  outputs: readonly [({ readonly name: "positionInfo"; readonly internalType: "struct IValoremOptionsClearinghouse.Position"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; }, { ...; }, { ...; }, { ...; }]; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "ids"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; }), ({ readonly name: "amounts"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; }), ({ readonly name: "data"; readonly internalType: "bytes"; readonly type: "bytes"; })];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "id"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "data"; readonly internalType: "bytes"; readonly type: "bytes"; })];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "approved"; readonly internalType: "bool"; readonly type: "bool"; })];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "newFeeTo"; readonly internalType: "address"; readonly type: "address"; })];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "enabled"; readonly internalType: "bool"; readonly type: "bool"; })];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "newTokenURIGenerator"; readonly internalType: "address"; readonly type: "address"; })];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "interfaceId"; readonly internalType: "bytes4"; readonly type: "bytes4"; })];
                  name: "supportsInterface";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokens"; readonly internalType: "address[]"; readonly type: "address[]"; })];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "tokenType";
                  outputs: readonly [({ readonly name: "typeOfToken"; readonly internalType: "enum IValoremOptionsClearinghouse.TokenType"; readonly type: "uint8"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "contract ITokenURIGenerator"; readonly type: "address"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "uri";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "string"; readonly type: "string"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; })];
                  name: "write";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "newOptionType">
              : UseContractWriteUnpreparedArgs<readonly [{
                  inputs: readonly [({ readonly name: "_feeTo"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "_tokenURIGenerator"; readonly internalType: "address"; readonly type: "address"; })];
                  stateMutability: "nonpayable";
                  type: "constructor";
              }, {
                  inputs: readonly [({ readonly name: "accessor"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "permissioned"; readonly internalType: "address"; readonly type: "address"; })];
                  name: "AccessControlViolation";
                  type: "error";
              }, {
                  inputs: readonly [];
                  name: "AmountWrittenCannotBeZero";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "CallerDoesNotOwnClaimId";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; })];
                  name: "CallerHoldsInsufficientOptions";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "expiry"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "ClaimTooSoon";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "exercise"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "ExerciseTooEarly";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "exercise"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "ExerciseWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "expiry"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "ExpiredOption";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "expiry"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "ExpiryWindowTooShort";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "input"; readonly internalType: "address"; readonly type: "address"; })];
                  name: "InvalidAddress";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "asset1"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "asset2"; readonly internalType: "address"; readonly type: "address"; })];
                  name: "InvalidAssets";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "token"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "InvalidClaim";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "token"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "InvalidOption";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "OptionsTypeExists";
                  type: "error";
              }, {
                  inputs: readonly [({ readonly name: "token"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "TokenNotFound";
                  type: "error";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "owner"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "approved"; readonly internalType: "bool"; readonly type: "bool"; readonly indexed: false; })];
                  name: "ApprovalForAll";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "bucketIndex"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: true; }), ({ readonly name: "amountAssigned"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
                  name: "BucketAssignedExercise";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "bucketIndex"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
                  name: "BucketWrittenInto";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "redeemer"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "exerciseAmountRedeemed"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }), ({ readonly name: "underlyingAmountRedeemed"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
                  name: "ClaimRedeemed";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "asset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "payer"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
                  name: "FeeAccrued";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "asset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "feeTo"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
                  name: "FeeSwept";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "feeTo"; readonly internalType: "address"; readonly type: "address"; readonly indexed: false; }), ({ readonly name: "enabled"; readonly internalType: "bool"; readonly type: "bool"; readonly indexed: false; })];
                  name: "FeeSwitchUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "newFeeTo"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; })];
                  name: "FeeToUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }), ({ readonly name: "exerciseAsset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "exerciseAmount"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: false; }), ({ readonly name: "underlyingAmount"; readonly internalType: "uint96"; readonly type: "uint96"; readonly indexed: false; }), ({ readonly name: "exerciseTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; readonly indexed: false; }), ({ readonly name: "expiryTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; readonly indexed: true; })];
                  name: "NewOptionType";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "exerciser"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
                  name: "OptionsExercised";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "writer"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; readonly indexed: false; })];
                  name: "OptionsWritten";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "newTokenURIGenerator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; })];
                  name: "TokenURIGeneratorUpdated";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "ids"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; readonly indexed: false; }), ({ readonly name: "amounts"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; readonly indexed: false; })];
                  name: "TransferBatch";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; readonly indexed: true; }), ({ readonly name: "id"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: false; })];
                  name: "TransferSingle";
                  type: "event";
              }, {
                  anonymous: false;
                  inputs: readonly [({ readonly name: "value"; readonly internalType: "string"; readonly type: "string"; readonly indexed: false; }), ({ readonly name: "id"; readonly internalType: "uint256"; readonly type: "uint256"; readonly indexed: true; })];
                  name: "URI";
                  type: "event";
              }, {
                  inputs: readonly [];
                  name: "acceptFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "balanceOf";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "owners"; readonly internalType: "address[]"; readonly type: "address[]"; }), ({ readonly name: "ids"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; })];
                  name: "balanceOfBatch";
                  outputs: readonly [({ readonly name: "balances"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "claim";
                  outputs: readonly [({ readonly name: "claimInfo"; readonly internalType: "struct IValoremOptionsClearinghouse.Claim"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "amountWritten"; readonly internalType: "uint256"; readonly type: "uint256"; }, { ...; }, { ...; }]; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; })];
                  name: "exercise";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; })];
                  name: "feeBalance";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeBps";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "uint8"; readonly type: "uint8"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feeTo";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "feesEnabled";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: ""; readonly internalType: "address"; readonly type: "address"; })];
                  name: "isApprovedForAll";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "underlyingAmount"; readonly internalType: "uint96"; readonly type: "uint96"; }), ({ readonly name: "exerciseAsset"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "exerciseAmount"; readonly internalType: "uint96"; readonly type: "uint96"; }), ({ readonly name: "exerciseTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; }), ({ readonly name: "expiryTimestamp"; readonly internalType: "uint40"; readonly type: "uint40"; })];
                  name: "newOptionType";
                  outputs: readonly [({ readonly name: "optionId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "option";
                  outputs: readonly [({ readonly name: "optionInfo"; readonly internalType: "struct IValoremOptionsClearinghouse.Option"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; }, ... 6 more ..., { ...; }]; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "position";
                  outputs: readonly [({ readonly name: "positionInfo"; readonly internalType: "struct IValoremOptionsClearinghouse.Position"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "underlyingAsset"; readonly internalType: "address"; readonly type: "address"; }, { ...; }, { ...; }, { ...; }]; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "claimId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "redeem";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "ids"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; }), ({ readonly name: "amounts"; readonly internalType: "uint256[]"; readonly type: "uint256[]"; }), ({ readonly name: "data"; readonly internalType: "bytes"; readonly type: "bytes"; })];
                  name: "safeBatchTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "from"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "to"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "id"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "data"; readonly internalType: "bytes"; readonly type: "bytes"; })];
                  name: "safeTransferFrom";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "operator"; readonly internalType: "address"; readonly type: "address"; }), ({ readonly name: "approved"; readonly internalType: "bool"; readonly type: "bool"; })];
                  name: "setApprovalForAll";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "newFeeTo"; readonly internalType: "address"; readonly type: "address"; })];
                  name: "setFeeTo";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "enabled"; readonly internalType: "bool"; readonly type: "bool"; })];
                  name: "setFeesEnabled";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "newTokenURIGenerator"; readonly internalType: "address"; readonly type: "address"; })];
                  name: "setTokenURIGenerator";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "interfaceId"; readonly internalType: "bytes4"; readonly type: "bytes4"; })];
                  name: "supportsInterface";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "bool"; readonly type: "bool"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokens"; readonly internalType: "address[]"; readonly type: "address[]"; })];
                  name: "sweepFees";
                  outputs: readonly [];
                  stateMutability: "nonpayable";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "tokenType";
                  outputs: readonly [({ readonly name: "typeOfToken"; readonly internalType: "enum IValoremOptionsClearinghouse.TokenType"; readonly type: "uint8"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [];
                  name: "tokenURIGenerator";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "contract ITokenURIGenerator"; readonly type: "address"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  name: "uri";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "string"; readonly type: "string"; })];
                  stateMutability: "view";
                  type: "function";
              }, {
                  inputs: readonly [({ readonly name: "tokenId"; readonly internalType: "uint256"; readonly type: "uint256"; }), ({ readonly name: "amount"; readonly internalType: "uint112"; readonly type: "uint112"; })];
                  name: "write";
                  outputs: readonly [({ readonly name: ""; readonly internalType: "uint256"; readonly type: "uint256"; })];
                  stateMutability: "nonpayable";
                  type: "function";
              }], "newOptionType">) & {
              address?: `0x${string}`;
              chainId?: TChainId;
              functionName?: "newOptionType";
          }
          : MutationConfig<WriteContractResult, Error, UseContractWriteArgs<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", TMode>> & {
              mode?: TMode;
          } & (TMode extends "prepared"
              ? UseContractWritePreparedArgs<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">
              : UseContractWriteUnpreparedArgs<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">) & {
              abi?: undefined;
              address?: undefined;
              chainId?: TChainId;
              functionName?: "newOptionType";
          } = ...

    Returns {
        data: undefined | WriteContractResult;
        error: null | Error;
        isError: boolean;
        isIdle: boolean;
        isLoading: boolean;
        isSuccess: boolean;
        reset: (() => void);
        status: "error" | "success" | "loading" | "idle";
        variables: undefined | UseContractWriteArgs<Abi, string, undefined>;
        write: MutationFn<TMode, 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", void>;
        writeAsync: MutationFn<TMode, 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", Promise<WriteContractResult>>;
    }

    • data: undefined | WriteContractResult
    • error: null | Error
    • isError: boolean
    • isIdle: boolean
    • isLoading: boolean
    • isSuccess: boolean
    • reset: (() => void)
        • (): void
        • Returns void

    • status: "error" | "success" | "loading" | "idle"
    • variables: undefined | UseContractWriteArgs<Abi, string, undefined>
    • write: MutationFn<TMode, 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", void>
    • writeAsync: MutationFn<TMode, 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", Promise<WriteContractResult>>

Generated using TypeDoc