- useClearRedeem<TMode, TChainId>(config?): {
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";
}], "redeem", 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";
}], "redeem", Promise<WriteContractResult>>;
} Type Parameters
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";
}], "redeem", 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";
}], "redeem">
: 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";
}], "redeem">) & {
address?: `0x${string}`;
chainId?: TChainId;
functionName?: "redeem";
}
: 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";
}], "redeem", 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";
}], "redeem">
: 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";
}], "redeem">) & {
abi?: undefined;
address?: undefined;
chainId?: TChainId;
functionName?: "redeem";
} = ...
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";
}], "redeem", 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";
}], "redeem", Promise<WriteContractResult>>;
}
error: null | Error
isError: boolean
isIdle: boolean
isLoading: boolean
isSuccess: boolean
reset: (() => void)
status: "error" | "success" | "loading" | "idle"
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";
}], "redeem", 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";
}], "redeem", Promise<WriteContractResult>>
Wraps useContractWrite with
abi
set to clearABI andfunctionName
set to"redeem"
.