[
{
"type": "function",
"name": "__AuthorityUtil_init__",
"inputs": [
{
"name": "_authority",
"type": "address",
"internalType": "contract IOptionsAuthority"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "activeOptionsCount",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "addOptions",
"inputs": [
{
"name": "_underlyingAsset",
"type": "address",
"internalType": "address"
},
{
"name": "_expiry",
"type": "uint40",
"internalType": "uint40"
},
{
"name": "_strikePrices",
"type": "uint48[]",
"internalType": "uint48[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "addUnderlyingAsset",
"inputs": [
{
"name": "_underlyingAsset",
"type": "address",
"internalType": "address"
},
{
"name": "_optionsToken",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "authority",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IOptionsAuthority"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getMainStableAsset",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOptionDetail",
"inputs": [
{
"name": "_id",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "uint40",
"internalType": "uint40"
},
{
"name": "",
"type": "uint48",
"internalType": "uint48"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOptionId",
"inputs": [
{
"name": "_underlyingAssetIndex",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "_expiry",
"type": "uint40",
"internalType": "uint40"
},
{
"name": "_strikePrice",
"type": "uint48",
"internalType": "uint48"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "getOptionTokenId",
"inputs": [
{
"name": "_underlyingAssetIndex",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "_expiry",
"type": "uint40",
"internalType": "uint40"
},
{
"name": "_length",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "_isBuys",
"type": "bool[4]",
"internalType": "bool[4]"
},
{
"name": "_optionIds",
"type": "bytes32[4]",
"internalType": "bytes32[4]"
},
{
"name": "_isCall",
"type": "bool[4]",
"internalType": "bool[4]"
},
{
"name": "_sourceVaultIndex",
"type": "uint8",
"internalType": "uint8"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "",
"type": "bytes32[4]",
"internalType": "bytes32[4]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOptionsBatch",
"inputs": [
{
"name": "_ids",
"type": "bytes32[]",
"internalType": "bytes32[]"
}
],
"outputs": [
{
"name": "",
"type": "tuple[]",
"internalType": "struct IOptionsMarket.Option[]",
"components": [
{
"name": "underlyingAssetIndex",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "underlyingAsset",
"type": "address",
"internalType": "address"
},
{
"name": "expiry",
"type": "uint40",
"internalType": "uint40"
},
{
"name": "strikePrice",
"type": "uint48",
"internalType": "uint48"
},
{
"name": "isActive",
"type": "bool",
"internalType": "bool"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOptionsTokenByIndex",
"inputs": [
{
"name": "_underlyingAssetIndex",
"type": "uint16",
"internalType": "uint16"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getUnderlyingAssetByIndex",
"inputs": [
{
"name": "_underlyingAssetIndex",
"type": "uint16",
"internalType": "uint16"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "indexToUnderlyingAsset",
"inputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "initialize",
"inputs": [
{
"name": "_authority",
"type": "address",
"internalType": "contract IOptionsAuthority"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "isOptionAvailable",
"inputs": [
{
"name": "_id",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "isUnderlyingAssetActive",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "mainStableAsset",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "nextUnderlyingAssetIndex",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "options",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "underlyingAssetIndex",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "underlyingAsset",
"type": "address",
"internalType": "address"
},
{
"name": "expiry",
"type": "uint40",
"internalType": "uint40"
},
{
"name": "strikePrice",
"type": "uint48",
"internalType": "uint48"
},
{
"name": "isActive",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "optionsTokenToUnderlyingAsset",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "owner",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "registeredOptionsCount",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "removeOptions",
"inputs": [
{
"name": "_ids",
"type": "bytes32[]",
"internalType": "bytes32[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "renounceOwnership",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setAuthority",
"inputs": [
{
"name": "_newAuthority",
"type": "address",
"internalType": "contract IOptionsAuthority"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setIsUnderlyingAsset",
"inputs": [
{
"name": "_underlyingAssetIndex",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "_isUnderlyingAssetActive",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setMainStableAsset",
"inputs": [
{
"name": "_mainStableAsset",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "transferOwnership",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "underlyingAssetToIndex",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "underlyingAssetToOptionsToken",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "validateOptionIds",
"inputs": [
{
"name": "_length",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "_optionIds",
"type": "bytes32[4]",
"internalType": "bytes32[4]"
}
],
"outputs": [
{
"name": "underlyingAssetIndex",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "expiry",
"type": "uint40",
"internalType": "uint40"
},
{
"name": "availableLength",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"type": "event",
"name": "AddUnderlyingAsset",
"inputs": [
{
"name": "underlyingAssetIndex",
"type": "uint16",
"indexed": true,
"internalType": "uint16"
},
{
"name": "underlyingAsset",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "optionsToken",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "AuthorityUpdated",
"inputs": [
{
"name": "authority",
"type": "address",
"indexed": true,
"internalType": "contract IOptionsAuthority"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OptionStatusChanged",
"inputs": [
{
"name": "id",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "underlyingAsset",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "expiry",
"type": "uint40",
"indexed": true,
"internalType": "uint40"
},
{
"name": "strikePrice",
"type": "uint48",
"indexed": false,
"internalType": "uint48"
},
{
"name": "isActive",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OwnershipTransferred",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SetIsUnderlyingAsset",
"inputs": [
{
"name": "underlyingAsset",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "isUnderlyingAssetActive",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SetMainStableAsset",
"inputs": [
{
"name": "mainStableAsset",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "UpdateOptionsToken",
"inputs": [
{
"name": "underlyingAsset",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "optionsToken",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
}
]