export type Dsov = { version: "1.0.22"; name: "dsov"; instructions: [ { name: "initProgramAuthority"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "taskerAuthority"; isMut: false; isSigner: false; }, { name: "programAuthority"; isMut: true; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: []; }, { name: "updateProgramAuthority"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "newOwnerAuthority"; isMut: false; isSigner: false; }, { name: "newTaskerAuthority"; isMut: false; isSigner: false; }, { name: "programAuthority"; isMut: true; isSigner: false; } ]; args: []; }, { name: "initTokenWhitelist"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "whitelistOwnerAuthority"; isMut: false; isSigner: false; }, { name: "tokenWhitelist"; isMut: true; isSigner: false; }, { name: "programAuthority"; isMut: true; isSigner: false; } ]; args: []; }, { name: "addRegularTokens"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "tokenWhitelist"; isMut: true; isSigner: false; } ]; args: [ { name: "tokenMints"; type: { array: ["publicKey", 5]; }; } ]; }, { name: "addEuroMetaTokens"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "tokenWhitelist"; isMut: true; isSigner: false; }, { name: "optionChain"; isMut: false; isSigner: false; } ]; args: [ { name: "tokenMints"; type: { array: ["publicKey", 5]; }; }, { name: "euroMetaV2s"; type: { array: ["publicKey", 5]; }; } ]; }, { name: "removeEuroMetaToken"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "tokenWhitelist"; isMut: true; isSigner: false; }, { name: "optionChain"; isMut: false; isSigner: false; }, { name: "euroMetaV2"; isMut: false; isSigner: false; }, { name: "mint"; isMut: false; isSigner: false; } ]; args: []; }, { name: "updateFeeTier"; accounts: [ { name: "taskerAuthority"; isMut: false; isSigner: true; }, { name: "programAuthority"; isMut: false; isSigner: false; }, { name: "tradingAccount"; isMut: true; isSigner: false; } ]; args: [ { name: "feeTier"; type: "u8"; }, { name: "feeTierExpiry"; type: "i64"; } ]; }, { name: "addTradingCredit"; accounts: [ { name: "taskerAuthority"; isMut: false; isSigner: true; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "sourceTokenAccount"; isMut: true; isSigner: false; }, { name: "receivingTokenAccount"; isMut: true; isSigner: false; }, { name: "tokenWhitelist"; isMut: false; isSigner: false; }, { name: "programAuthority"; isMut: false; isSigner: false; }, { name: "mint"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "amountToTransfer"; type: "u64"; }, { name: "minFeesPaid"; type: "u32"; } ]; }, { name: "updateVaultStatus"; accounts: [ { name: "managerAuthority"; isMut: false; isSigner: true; }, { name: "optionVault"; isMut: true; isSigner: false; } ]; args: [ { name: "status"; type: "u8"; } ]; }, { name: "updateDataFeed"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "stableOracle"; isMut: false; isSigner: false; } ]; args: []; }, { name: "updateVolShockParams"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "volatilityFeed"; isMut: true; isSigner: false; }, { name: "assetMint"; isMut: false; isSigner: false; } ]; args: [ { name: "thresholdMultiplierBps"; type: "u16"; }, { name: "thresholdConstantBps"; type: "u16"; }, { name: "enabled"; type: "bool"; }, { name: "minDuration"; type: "u16"; }, { name: "minTimeDifference"; type: "u16"; } ]; }, { name: "updateSeriesStatus"; accounts: [ { name: "taskerAuthority"; isMut: false; isSigner: true; }, { name: "optionChain"; isMut: true; isSigner: false; } ]; args: [ { name: "optionType"; type: "u8"; }, { name: "expiration"; type: "i64"; }, { name: "seriesIdToUpdate"; type: { vec: "u16"; }; }, { name: "status"; type: "u8"; } ]; }, { name: "updateSeriesSettings"; accounts: [ { name: "taskerAuthority"; isMut: false; isSigner: true; }, { name: "optionChain"; isMut: true; isSigner: false; } ]; args: [ { name: "optionType"; type: "u8"; }, { name: "expiration"; type: "i64"; }, { name: "seriesIdToUpdate"; type: { vec: "u16"; }; }, { name: "vaultPositionCap"; type: "u64"; } ]; }, { name: "initVault"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "managerAuthority"; isMut: false; isSigner: false; }, { name: "taskerAuthority"; isMut: false; isSigner: false; }, { name: "optionVault"; isMut: true; isSigner: false; }, { name: "lpTokenMint"; isMut: true; isSigner: false; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "underlyingAssetMint"; isMut: false; isSigner: false; }, { name: "stableAssetMint"; isMut: false; isSigner: false; }, { name: "optionChain"; isMut: false; isSigner: false; }, { name: "rent"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "uniqueSeed"; type: "u16"; }, { name: "lpTokenDecimals"; type: "u8"; }, { name: "feeParams"; type: { defined: "Fees"; }; }, { name: "lpParams"; type: { defined: "LpParams"; }; } ]; }, { name: "resizeVault"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "optionVault"; isMut: true; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "newSize"; type: "u64"; } ]; }, { name: "resizeVaultTradingAccount"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "optionVault"; isMut: true; isSigner: false; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "newSize"; type: "u64"; } ]; }, { name: "toggleVaultForExpiry"; accounts: [ { name: "keeper"; isMut: false; isSigner: true; }, { name: "optionVault"; isMut: true; isSigner: false; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "volatilityFeed"; isMut: false; isSigner: false; }, { name: "tradingUnderlyingTokenAccount"; isMut: false; isSigner: false; }, { name: "tradingStableTokenAccount"; isMut: false; isSigner: false; }, { name: "underlyingAssetMint"; isMut: false; isSigner: false; }, { name: "stableAssetMint"; isMut: false; isSigner: false; }, { name: "underlyingPriceOracle"; isMut: false; isSigner: false; }, { name: "vaultTradingAccount"; isMut: true; isSigner: false; } ]; args: []; }, { name: "updateTradingParams"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "optionVault"; isMut: true; isSigner: false; } ]; args: [ { name: "tradingParams"; type: { defined: "TradingParams"; }; } ]; }, { name: "updateVaultParams"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "optionVault"; isMut: true; isSigner: false; } ]; args: [ { name: "feeParams"; type: { defined: "Fees"; }; }, { name: "lpParams"; type: { defined: "LpParams"; }; }, { name: "hedgeParams"; type: { defined: "HedgeParams"; }; } ]; }, { name: "initVaultDependencies"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "optionVault"; isMut: true; isSigner: false; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "underlyingAssetMint"; isMut: false; isSigner: false; }, { name: "stableAssetMint"; isMut: false; isSigner: false; }, { name: "lpTokenMint"; isMut: false; isSigner: false; }, { name: "underlyingFeeAccount"; isMut: false; isSigner: false; }, { name: "stableFeeAccount"; isMut: false; isSigner: false; }, { name: "pendingUnderlyingAsset"; isMut: true; isSigner: false; }, { name: "pendingStableAsset"; isMut: true; isSigner: false; }, { name: "pendingLpToken"; isMut: true; isSigner: false; }, { name: "tradingUnderlyingTokenAccount"; isMut: true; isSigner: false; }, { name: "tradingStableTokenAccount"; isMut: true; isSigner: false; }, { name: "rent"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: []; }, { name: "initQueue"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "optionVault"; isMut: false; isSigner: false; }, { name: "transferQueue"; isMut: true; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "transferType"; type: "u8"; } ]; }, { name: "initOptionChain"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "taskerAuthority"; isMut: false; isSigner: false; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "underlyingAssetMint"; isMut: false; isSigner: false; }, { name: "stableAssetMint"; isMut: false; isSigner: false; }, { name: "underlyingOracle"; isMut: false; isSigner: false; }, { name: "stableOracle"; isMut: false; isSigner: false; }, { name: "volatilityFeed"; isMut: false; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "oracleProviderId"; type: "u8"; } ]; }, { name: "initExpirationGroup"; accounts: [ { name: "taskerAuthority"; isMut: false; isSigner: true; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "optionType"; type: "u8"; }, { name: "expiration"; type: "i64"; } ]; }, { name: "initOptionSeries"; accounts: [ { name: "taskerAuthority"; isMut: false; isSigner: true; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "euroMetaV2"; isMut: false; isSigner: false; }, { name: "tokenWhitelist"; isMut: false; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "skewBps"; type: { vec: "u16"; }; }, { name: "coinLotSize"; type: "u64"; }, { name: "vaultPositionCap"; type: "u64"; } ]; }, { name: "initVolatilityFeed"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "taskerAuthority"; isMut: false; isSigner: false; }, { name: "volatilityFeed"; isMut: true; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "uniqueSeed"; type: "u16"; }, { name: "interestRateBps"; type: "u16"; } ]; }, { name: "initAssetVolatility"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "volatilityFeed"; isMut: true; isSigner: false; }, { name: "assetMint"; isMut: false; isSigner: false; } ]; args: [ { name: "markVolBps"; type: "u32"; }, { name: "stakingRateBps"; type: "u16"; } ]; }, { name: "initPriceTimeSeries"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "volatilityFeed"; isMut: true; isSigner: false; }, { name: "optionChain"; isMut: false; isSigner: false; }, { name: "assetMint"; isMut: false; isSigner: false; } ]; args: []; }, { name: "updateStakingRate"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "volatilityFeed"; isMut: true; isSigner: false; }, { name: "assetMint"; isMut: false; isSigner: false; } ]; args: [ { name: "stakingRateBps"; type: "u16"; } ]; }, { name: "updateMarkVol"; accounts: [ { name: "taskerAuthority"; isMut: false; isSigner: true; }, { name: "volatilityFeed"; isMut: true; isSigner: false; }, { name: "assetMint"; isMut: false; isSigner: false; }, { name: "oracle"; isMut: false; isSigner: false; } ]; args: [ { name: "interestRateBps"; type: "u16"; }, { name: "markVolBps"; type: "u32"; } ]; }, { name: "updateSkew"; accounts: [ { name: "taskerAuthority"; isMut: false; isSigner: true; }, { name: "volatilityFeed"; isMut: true; isSigner: false; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "oracle"; isMut: false; isSigner: false; } ]; args: [ { name: "optionType"; type: "u8"; }, { name: "expiration"; type: "i64"; }, { name: "seriesIdToUpdate"; type: { vec: "u16"; }; }, { name: "newSkewBps"; type: { vec: { vec: "u16"; }; }; } ]; }, { name: "updateFeedAuthority"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "taskerAuthority"; isMut: false; isSigner: false; }, { name: "volatilityFeed"; isMut: true; isSigner: false; } ]; args: []; }, { name: "initTransferRecord"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "owner"; isMut: false; isSigner: true; }, { name: "transferRecord"; isMut: true; isSigner: false; }, { name: "transferQueue"; isMut: true; isSigner: false; }, { name: "optionVault"; isMut: false; isSigner: false; }, { name: "underlyingAssetAccount"; isMut: true; isSigner: false; }, { name: "stableAssetAccount"; isMut: true; isSigner: false; }, { name: "lpTokenAccount"; isMut: true; isSigner: false; }, { name: "pendingUnderlyingAsset"; isMut: true; isSigner: false; }, { name: "pendingStableAsset"; isMut: true; isSigner: false; }, { name: "pendingLpToken"; isMut: true; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "underlyingAmount"; type: "u64"; }, { name: "stableAmount"; type: "u64"; }, { name: "lpTokenAmount"; type: "u64"; } ]; }, { name: "processDeposit"; accounts: [ { name: "keeper"; isMut: true; isSigner: true; }, { name: "transferRecord"; isMut: true; isSigner: false; }, { name: "transferQueue"; isMut: true; isSigner: false; }, { name: "optionVault"; isMut: true; isSigner: false; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "volatilityFeed"; isMut: false; isSigner: false; }, { name: "pendingUnderlyingAsset"; isMut: true; isSigner: false; }, { name: "pendingStableAsset"; isMut: true; isSigner: false; }, { name: "tradingUnderlyingTokenAccount"; isMut: true; isSigner: false; }, { name: "tradingStableTokenAccount"; isMut: true; isSigner: false; }, { name: "keeperUnderlyingTokenAccount"; isMut: true; isSigner: false; }, { name: "keeperStableTokenAccount"; isMut: true; isSigner: false; }, { name: "receivingLpToken"; isMut: true; isSigner: false; }, { name: "underlyingAssetMint"; isMut: false; isSigner: false; }, { name: "stableAssetMint"; isMut: false; isSigner: false; }, { name: "lpTokenMint"; isMut: true; isSigner: false; }, { name: "priceOracle"; isMut: false; isSigner: false; }, { name: "vaultTradingAccount"; isMut: true; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "minUnderlyingToReceive"; type: "u64"; }, { name: "maxUnderlyingToSend"; type: "u64"; }, { name: "minStableToReceive"; type: "u64"; }, { name: "maxStableToSend"; type: "u64"; } ]; }, { name: "processWithdraw"; accounts: [ { name: "keeper"; isMut: true; isSigner: true; }, { name: "transferRecord"; isMut: true; isSigner: false; }, { name: "transferQueue"; isMut: true; isSigner: false; }, { name: "optionVault"; isMut: true; isSigner: false; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "volatilityFeed"; isMut: false; isSigner: false; }, { name: "pendingLpToken"; isMut: true; isSigner: false; }, { name: "tradingUnderlyingTokenAccount"; isMut: true; isSigner: false; }, { name: "tradingStableTokenAccount"; isMut: true; isSigner: false; }, { name: "receivingUnderlying"; isMut: true; isSigner: false; }, { name: "receivingStable"; isMut: true; isSigner: false; }, { name: "underlyingAssetMint"; isMut: false; isSigner: false; }, { name: "stableAssetMint"; isMut: false; isSigner: false; }, { name: "lpTokenMint"; isMut: true; isSigner: false; }, { name: "priceOracle"; isMut: false; isSigner: false; }, { name: "vaultTradingAccount"; isMut: true; isSigner: false; }, { name: "tempSolAccount"; isMut: true; isSigner: true; }, { name: "nativeMint"; isMut: false; isSigner: false; }, { name: "recordOwner"; isMut: true; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; }, { name: "rent"; isMut: false; isSigner: false; } ]; args: []; }, { name: "initTokenAccount"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "newTokenAccount"; isMut: true; isSigner: false; }, { name: "mint"; isMut: false; isSigner: false; }, { name: "tokenWhitelist"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; }, { name: "rent"; isMut: false; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: []; }, { name: "closeTokenAccount"; accounts: [ { name: "signer"; isMut: true; isSigner: true; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "tokenAccount"; isMut: true; isSigner: false; }, { name: "mint"; isMut: false; isSigner: false; }, { name: "programAuthority"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: []; }, { name: "initTradingAccount"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "owner"; isMut: false; isSigner: true; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "uniqueSeed"; type: "u16"; } ]; }, { name: "closeTradingAccount"; accounts: [ { name: "owner"; isMut: true; isSigner: true; }, { name: "tradingAccount"; isMut: true; isSigner: false; } ]; args: []; }, { name: "depositToTradingAccount"; accounts: [ { name: "owner"; isMut: false; isSigner: true; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "sourceTokenAccount"; isMut: true; isSigner: false; }, { name: "receivingTokenAccount"; isMut: true; isSigner: false; }, { name: "tokenWhitelist"; isMut: false; isSigner: false; }, { name: "optionChain"; isMut: false; isSigner: false; }, { name: "mint"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "amount"; type: "u64"; } ]; }, { name: "withdrawFromTradingAccount"; accounts: [ { name: "owner"; isMut: false; isSigner: true; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "sourceTokenAccount"; isMut: true; isSigner: false; }, { name: "receivingTokenAccount"; isMut: true; isSigner: false; }, { name: "tokenWhitelist"; isMut: false; isSigner: false; }, { name: "optionChain"; isMut: false; isSigner: false; }, { name: "mint"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "amount"; type: "u64"; } ]; }, { name: "cancelTransferRecord"; accounts: [ { name: "owner"; isMut: true; isSigner: true; }, { name: "transferRecord"; isMut: true; isSigner: false; }, { name: "transferQueue"; isMut: true; isSigner: false; }, { name: "optionVault"; isMut: false; isSigner: false; }, { name: "underlyingAssetAccount"; isMut: true; isSigner: false; }, { name: "stableAssetAccount"; isMut: true; isSigner: false; }, { name: "lpTokenAccount"; isMut: true; isSigner: false; }, { name: "pendingUnderlyingAsset"; isMut: true; isSigner: false; }, { name: "pendingStableAsset"; isMut: true; isSigner: false; }, { name: "pendingLpToken"; isMut: true; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: []; }, { name: "buyOption"; accounts: [ { name: "owner"; isMut: false; isSigner: true; }, { name: "buyerTradingAccount"; isMut: true; isSigner: false; }, { name: "vaultTradingAccount"; isMut: true; isSigner: false; }, { name: "optionVault"; isMut: true; isSigner: false; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "volatilityFeed"; isMut: true; isSigner: false; }, { name: "euroMeta"; isMut: false; isSigner: false; }, { name: "collateralPool"; isMut: true; isSigner: false; }, { name: "poolAuthority"; isMut: false; isSigner: false; }, { name: "optionMint"; isMut: true; isSigner: false; }, { name: "writerMint"; isMut: true; isSigner: false; }, { name: "buyerCollateralTokenAccount"; isMut: true; isSigner: false; }, { name: "tradingUnderlyingTokenAccount"; isMut: true; isSigner: false; }, { name: "tradingStableTokenAccount"; isMut: true; isSigner: false; }, { name: "vaultOptionTokenAccount"; isMut: true; isSigner: false; }, { name: "vaultWriterTokenAccount"; isMut: true; isSigner: false; }, { name: "buyerOptionTokenAccount"; isMut: true; isSigner: false; }, { name: "buyerWriterTokenAccount"; isMut: true; isSigner: false; }, { name: "priceOracle"; isMut: false; isSigner: false; }, { name: "tradeFeeAccount"; isMut: true; isSigner: false; }, { name: "euroPrimitiveProgram"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "bumps"; type: { defined: "BuyOptionBumps"; }; }, { name: "optionAmount"; type: "u64"; }, { name: "maxAmountToPay"; type: "u64"; }, { name: "seriesId"; type: "u16"; } ]; }, { name: "sellOption"; accounts: [ { name: "owner"; isMut: false; isSigner: true; }, { name: "sellerTradingAccount"; isMut: true; isSigner: false; }, { name: "vaultTradingAccount"; isMut: true; isSigner: false; }, { name: "optionVault"; isMut: true; isSigner: false; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "volatilityFeed"; isMut: true; isSigner: false; }, { name: "euroMeta"; isMut: false; isSigner: false; }, { name: "collateralPool"; isMut: true; isSigner: false; }, { name: "poolAuthority"; isMut: false; isSigner: false; }, { name: "optionMint"; isMut: true; isSigner: false; }, { name: "writerMint"; isMut: true; isSigner: false; }, { name: "sellerCollateralTokenAccount"; isMut: true; isSigner: false; }, { name: "sellerOptionTokenAccount"; isMut: true; isSigner: false; }, { name: "sellerWriterTokenAccount"; isMut: true; isSigner: false; }, { name: "tradingUnderlyingTokenAccount"; isMut: true; isSigner: false; }, { name: "tradingStableTokenAccount"; isMut: true; isSigner: false; }, { name: "vaultOptionTokenAccount"; isMut: true; isSigner: false; }, { name: "vaultWriterTokenAccount"; isMut: true; isSigner: false; }, { name: "priceOracle"; isMut: false; isSigner: false; }, { name: "tradeFeeAccount"; isMut: true; isSigner: false; }, { name: "euroPrimitiveProgram"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "bumps"; type: { defined: "SellOptionBumps"; }; }, { name: "optionAmount"; type: "u64"; }, { name: "minAmountToReceive"; type: "u64"; }, { name: "seriesId"; type: "u16"; } ]; }, { name: "settleExpiredPosition"; accounts: [ { name: "keeper"; isMut: true; isSigner: true; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "optionChain"; isMut: false; isSigner: false; }, { name: "euroMetaV2"; isMut: false; isSigner: false; }, { name: "expirationData"; isMut: false; isSigner: false; }, { name: "poolAuthority"; isMut: false; isSigner: false; }, { name: "collateralPool"; isMut: true; isSigner: false; }, { name: "optionMint"; isMut: true; isSigner: false; }, { name: "writerMint"; isMut: true; isSigner: false; }, { name: "collateralTokenAccount"; isMut: true; isSigner: false; }, { name: "euroPrimitiveProgram"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "seriesId"; type: "u16"; } ]; }, { name: "removeExpirationGroup"; accounts: [ { name: "taskerAuthority"; isMut: false; isSigner: true; }, { name: "optionChain"; isMut: true; isSigner: false; } ]; args: [ { name: "optionType"; type: "u8"; }, { name: "expiration"; type: "i64"; } ]; }, { name: "removeEuroMetaHistory"; accounts: [ { name: "taskerAuthority"; isMut: false; isSigner: true; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "euroMetaV2"; isMut: false; isSigner: false; } ]; args: []; }, { name: "spendTickets"; accounts: [ { name: "owner"; isMut: true; isSigner: true; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "spinRecord"; isMut: true; isSigner: false; }, { name: "randomnessService"; isMut: false; isSigner: false; }, { name: "randomnessRequest"; isMut: true; isSigner: true; }, { name: "randomnessEscrow"; isMut: true; isSigner: false; }, { name: "randomnessState"; isMut: false; isSigner: false; }, { name: "randomnessMint"; isMut: false; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; }, { name: "associatedTokenProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "season"; type: "u8"; }, { name: "count"; type: "u8"; } ]; }, { name: "evaluateSpin"; accounts: [ { name: "owner"; isMut: true; isSigner: false; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "spinRecord"; isMut: true; isSigner: false; }, { name: "prizePool"; isMut: true; isSigner: false; }, { name: "randomnessState"; isMut: false; isSigner: true; }, { name: "request"; isMut: false; isSigner: false; } ]; args: [ { name: "result"; type: "bytes"; } ]; }, { name: "addTickets"; accounts: [ { name: "signer"; isMut: false; isSigner: true; }, { name: "tradingAccount"; isMut: true; isSigner: false; }, { name: "programAuthority"; isMut: false; isSigner: false; } ]; args: [ { name: "season"; type: "u8"; }, { name: "count"; type: "u32"; } ]; }, { name: "initPrizePool"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "programAuthority"; isMut: false; isSigner: false; }, { name: "prizePool"; isMut: true; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "season"; type: "u8"; } ]; }, { name: "updatePrizePool"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "programAuthority"; isMut: false; isSigner: false; }, { name: "prizePool"; isMut: true; isSigner: false; } ]; args: [ { name: "winningNumber"; type: "u32"; }, { name: "prizeCriteria"; type: { array: [ { defined: "PrizeCriteria"; }, 6 ]; }; } ]; }, { name: "withdrawPrize"; accounts: [ { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "programAuthority"; isMut: false; isSigner: false; }, { name: "prizePool"; isMut: true; isSigner: false; }, { name: "recipient"; isMut: true; isSigner: true; } ]; args: []; }, { name: "createTokenMetadata"; accounts: [ { name: "payer"; isMut: true; isSigner: true; }, { name: "ownerAuthority"; isMut: false; isSigner: true; }, { name: "lpTokenMint"; isMut: false; isSigner: false; }, { name: "optionVault"; isMut: false; isSigner: false; }, { name: "tokenMetadataProgram"; isMut: false; isSigner: false; }, { name: "metadata"; isMut: true; isSigner: false; }, { name: "systemProgram"; isMut: false; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; }, { name: "rent"; isMut: false; isSigner: false; } ]; args: [ { name: "title"; type: "string"; }, { name: "symbol"; type: "string"; }, { name: "uri"; type: "string"; } ]; }, { name: "swap"; accounts: [ { name: "keeper"; isMut: true; isSigner: true; }, { name: "optionVault"; isMut: true; isSigner: false; }, { name: "optionChain"; isMut: true; isSigner: false; }, { name: "volatilityFeed"; isMut: false; isSigner: false; }, { name: "tradingUnderlyingTokenAccount"; isMut: true; isSigner: false; }, { name: "tradingStableTokenAccount"; isMut: true; isSigner: false; }, { name: "keeperUnderlyingTokenAccount"; isMut: true; isSigner: false; }, { name: "keeperStableTokenAccount"; isMut: true; isSigner: false; }, { name: "underlyingAssetMint"; isMut: false; isSigner: false; }, { name: "stableAssetMint"; isMut: false; isSigner: false; }, { name: "underlyingPriceOracle"; isMut: false; isSigner: false; }, { name: "stablePriceOracle"; isMut: false; isSigner: false; }, { name: "vaultTradingAccount"; isMut: true; isSigner: false; }, { name: "tokenProgram"; isMut: false; isSigner: false; } ]; args: [ { name: "underlyingToSend"; type: "u64"; }, { name: "stableToSend"; type: "u64"; }, { name: "minUnderlyingToReceive"; type: "u64"; }, { name: "minStableToReceive"; type: "u64"; } ]; } ]; accounts: [ { name: "optionChain"; type: { kind: "struct"; fields: [ { name: "nextSeriesId"; type: "u16"; }, { name: "padding1"; type: { array: ["u8", 14]; }; }, { name: "ownerAuthority"; type: "publicKey"; }, { name: "taskerAuthority"; type: "publicKey"; }, { name: "underlyingAssetMint"; type: "publicKey"; }, { name: "stableAssetMint"; type: "publicKey"; }, { name: "dataFeed"; type: { defined: "DataFeed"; }; }, { name: "reserved1"; type: { array: ["u128", 30]; }; }, { name: "euroMetaHistory"; type: { array: [ { defined: "EuroMetaHistory"; }, 100 ]; }; }, { name: "reserved2"; type: { array: ["u128", 256]; }; }, { name: "optionGroups"; type: { array: [ { defined: "OptionGroup"; }, 6 ]; }; } ]; }; }, { name: "optionVault"; type: { kind: "struct"; fields: [ { name: "ownerAuthority"; type: "publicKey"; }, { name: "managerAuthority"; type: "publicKey"; }, { name: "taskerAuthority"; type: "publicKey"; }, { name: "underlyingAssetMint"; type: "publicKey"; }, { name: "stableAssetMint"; type: "publicKey"; }, { name: "lpTokenMint"; type: "publicKey"; }, { name: "optionChain"; type: "publicKey"; }, { name: "underlyingFeeAccount"; type: "publicKey"; }, { name: "stableFeeAccount"; type: "publicKey"; }, { name: "pendingUnderlyingAsset"; type: "publicKey"; }, { name: "pendingStableAsset"; type: "publicKey"; }, { name: "pendingLpToken"; type: "publicKey"; }, { name: "tradingUnderlyingTokenAccount"; type: "publicKey"; }, { name: "tradingStableTokenAccount"; type: "publicKey"; }, { name: "tradingParams"; type: { defined: "TradingParams"; }; }, { name: "feeParams"; type: { defined: "Fees"; }; }, { name: "lpParams"; type: { defined: "LpParams"; }; }, { name: "uniqueSeed"; type: "u16"; }, { name: "vaultBump"; type: "u8"; }, { name: "status"; type: "u8"; }, { name: "padding1"; type: { array: ["u8", 12]; }; }, { name: "accountSummary"; type: { defined: "AccountSummary"; }; }, { name: "reserved"; type: { array: ["u64", 16]; }; }, { name: "hedgeParams"; type: { defined: "HedgeParams"; }; } ]; }; }, { name: "prizePool"; type: { kind: "struct"; fields: [ { name: "version"; type: "u8"; }, { name: "bump"; type: "u8"; }, { name: "season"; type: "u8"; }, { name: "reserved1"; type: { array: ["u64", 4]; }; }, { name: "winningNumber"; type: "u32"; }, { name: "totalPoints"; type: "u64"; }, { name: "totalSolAward"; type: "u64"; }, { name: "reserved2"; type: { array: ["u64", 32]; }; }, { name: "prizeCriteria"; type: { array: [ { defined: "PrizeCriteria"; }, 6 ]; }; } ]; }; }, { name: "programAuthority"; type: { kind: "struct"; fields: [ { name: "ownerAuthority"; type: "publicKey"; }, { name: "tokenWhitelist"; type: "publicKey"; }, { name: "taskerAuthority"; type: "publicKey"; }, { name: "bump"; type: "u8"; } ]; }; }, { name: "transferQueue"; type: { kind: "struct"; fields: [ { name: "optionVault"; type: "publicKey"; }, { name: "transferType"; type: "u8"; }, { name: "queueBump"; type: "u8"; }, { name: "totalUnderlyingAmount"; type: "u64"; }, { name: "totalStableAmount"; type: "u64"; }, { name: "totalLpTokenAmount"; type: "u64"; }, { name: "records"; type: { vec: "publicKey"; }; } ]; }; }, { name: "transferRecord"; type: { kind: "struct"; fields: [ { name: "owner"; type: "publicKey"; }, { name: "bump"; type: "u8"; }, { name: "transferType"; type: "u8"; }, { name: "underlyingAmount"; type: "u64"; }, { name: "stableAmount"; type: "u64"; }, { name: "lpTokenAmount"; type: "u64"; }, { name: "modifiedAt"; type: "i64"; } ]; }; }, { name: "spinRecord"; type: { kind: "struct"; fields: [ { name: "owner"; type: "publicKey"; }, { name: "tradingAccount"; type: "publicKey"; }, { name: "version"; type: "u8"; }, { name: "initialized"; type: "bool"; }, { name: "bump"; type: "u8"; }, { name: "season"; type: "u8"; }, { name: "randomnessRequests"; type: { vec: { defined: "Request"; }; }; } ]; }; }, { name: "tokenWhitelist"; type: { kind: "struct"; fields: [ { name: "ownerAuthority"; type: "publicKey"; }, { name: "reserved1"; type: { array: ["u128", 32]; }; }, { name: "regularTokens"; type: { array: ["publicKey", 256]; }; }, { name: "euroMetaTokens"; type: { array: [ { defined: "ChainGroup"; }, 6 ]; }; } ]; }; }, { name: "tradingAccount"; type: { kind: "struct"; fields: [ { name: "owner"; type: "publicKey"; }, { name: "version"; type: "u8"; }, { name: "bump"; type: "u8"; }, { name: "accountType"; type: "u8"; }, { name: "feeTier"; type: "u8"; }, { name: "uniqueSeed"; type: "u16"; }, { name: "maxTokenAccounts"; type: "u16"; }, { name: "feeTierExpiry"; type: "i64"; }, { name: "accountStats"; type: { defined: "AccountStats"; }; }, { name: "withdrawalCriteria"; type: { defined: "WithdrawalCriteria"; }; }, { name: "rewards"; type: { defined: "Rewards"; }; }, { name: "reserved1"; type: { array: ["u64", 32]; }; }, { name: "reserved2"; type: { array: ["u64", 32]; }; }, { name: "reserved3"; type: { array: ["u64", 32]; }; }, { name: "reserved4"; type: { array: ["u64", 2]; }; }, { name: "tokenAccounts"; type: { vec: "publicKey"; }; }, { name: "assetGroups"; type: { vec: { defined: "AssetGroup"; }; }; } ]; }; }, { name: "volatilityFeed"; type: { kind: "struct"; fields: [ { name: "ownerAuthority"; type: "publicKey"; }, { name: "taskerAuthority"; type: "publicKey"; }, { name: "interestRateBps"; type: "u16"; }, { name: "bump"; type: "u8"; }, { name: "uniqueSeed"; type: "u16"; }, { name: "volatilityInfo"; type: { vec: { defined: "AssetVolatility"; }; }; }, { name: "priceInfo"; type: { vec: { defined: "PriceTimeSeries"; }; }; } ]; }; } ]; types: [ { name: "AccountMetaBorsh"; type: { kind: "struct"; fields: [ { name: "pubkey"; type: "publicKey"; }, { name: "isSigner"; type: "bool"; }, { name: "isWritable"; type: "bool"; } ]; }; }, { name: "CallbackInstruction"; type: { kind: "struct"; fields: [ { name: "programId"; type: "publicKey"; }, { name: "accounts"; type: { vec: { defined: "AccountMetaBorsh"; }; }; }, { name: "data"; type: "bytes"; } ]; }; }, { name: "RequestRandomnessArgs"; type: { kind: "struct"; fields: [ { name: "numBytes"; type: "u8"; }, { name: "callback"; type: { defined: "CallbackInstruction"; }; }, { name: "options"; type: { option: { defined: "TransactionOptions"; }; }; } ]; }; }, { name: "TransactionOptions"; type: { kind: "struct"; fields: [ { name: "computeUnits"; type: { option: "u32"; }; }, { name: "computeUnitPrice"; type: { option: "u64"; }; } ]; }; }, { name: "SpinHistory"; type: { kind: "struct"; fields: [ { name: "drawnNumber"; type: "u32"; }, { name: "matching"; type: "u8"; }, { name: "solAwarded"; type: "u64"; }, { name: "pointsAwarded"; type: "u32"; } ]; }; }, { name: "SkewUpdate"; type: { kind: "struct"; fields: [ { name: "seriesId"; type: "u16"; }, { name: "oldSkewBps"; type: { array: ["u16", 4]; }; }, { name: "newSkewBps"; type: { array: ["u16", 4]; }; } ]; }; }, { name: "BuyOptionBumps"; type: { kind: "struct"; fields: [ { name: "buyerCollateralTokenAccount"; type: "u8"; }, { name: "vaultOptionTokenAccount"; type: "u8"; }, { name: "vaultWriterTokenAccount"; type: "u8"; }, { name: "buyerOptionTokenAccount"; type: "u8"; }, { name: "buyerWriterTokenAccount"; type: "u8"; } ]; }; }, { name: "SellOptionBumps"; type: { kind: "struct"; fields: [ { name: "sellerCollateralTokenAccount"; type: "u8"; }, { name: "sellerOptionTokenAccount"; type: "u8"; }, { name: "sellerWriterTokenAccount"; type: "u8"; }, { name: "vaultOptionTokenAccount"; type: "u8"; }, { name: "vaultWriterTokenAccount"; type: "u8"; } ]; }; }, { name: "DataFeed"; type: { kind: "struct"; fields: [ { name: "volatilityFeed"; type: "publicKey"; }, { name: "underlyingPriceOracle"; type: "publicKey"; }, { name: "oracleProviderId"; type: "u8"; }, { name: "stablePriceOracle"; type: "publicKey"; }, { name: "padding1"; type: { array: ["u8", 15]; }; } ]; }; }, { name: "OptionGroup"; type: { kind: "struct"; fields: [ { name: "expirationGroups"; type: { array: [ { defined: "ExpirationGroup"; }, 6 ]; }; } ]; }; }, { name: "ExpirationGroup"; type: { kind: "struct"; fields: [ { name: "expiration"; type: "i64"; }, { name: "padding1"; type: "u64"; }, { name: "optionSeries"; type: { array: [ { defined: "OptionSeries"; }, 16 ]; }; } ]; }; }, { name: "OptionSeries"; type: { kind: "struct"; fields: [ { name: "seriesId"; type: "u16"; }, { name: "status"; type: "u8"; }, { name: "reserved1"; type: { array: ["u8", 13]; }; }, { name: "coinLotSize"; type: "u64"; }, { name: "skewLastUpdated"; type: "i64"; }, { name: "skewBps"; type: { array: ["u16", 4]; }; }, { name: "vaultPositionCap"; type: "u64"; }, { name: "reserved2"; type: { array: ["u64", 6]; }; }, { name: "euroMetaV2"; type: "publicKey"; }, { name: "strikePrices"; type: { array: ["u64", 4]; }; }, { name: "reserved3"; type: { array: ["u64", 2]; }; }, { name: "underlyingCollateralPerOption"; type: "u64"; }, { name: "stableCollateralPerOption"; type: "u64"; }, { name: "strikePriceDecimals"; type: "u8"; }, { name: "underlyingDecimals"; type: "u8"; }, { name: "stableDecimals"; type: "u8"; }, { name: "reserved4"; type: { array: ["u8", 13]; }; }, { name: "underlyingPrice"; type: "i128"; }, { name: "markPriceStable"; type: "i128"; }, { name: "markPriceUnderlying"; type: "i128"; }, { name: "greeks"; type: { defined: "Greeks"; }; }, { name: "lastRefreshed"; type: "i64"; }, { name: "reserved5"; type: { array: ["u64", 3]; }; } ]; }; }, { name: "Greeks"; type: { kind: "struct"; fields: [ { name: "delta"; type: "i128"; }, { name: "theta"; type: "i128"; }, { name: "gamma"; type: "i128"; }, { name: "vega"; type: "i128"; } ]; }; }, { name: "EuroMetaHistory"; type: { kind: "struct"; fields: [ { name: "seriesId"; type: "u16"; }, { name: "padding1"; type: { array: ["u8", 14]; }; }, { name: "euroMetaV2"; type: "publicKey"; } ]; }; }, { name: "Fees"; type: { kind: "struct"; fields: [ { name: "capitalUtilizationFeeBps"; type: "u16"; }, { name: "tradeFeeBps"; type: "u16"; }, { name: "underlyingFeeBps"; type: "u16"; }, { name: "withdrawalLpFeeBps"; type: "u16"; }, { name: "padding1"; type: { array: ["u8", 8]; }; } ]; }; }, { name: "LpParams"; type: { kind: "struct"; fields: [ { name: "targetDelta"; type: "i128"; }, { name: "maxNavInStable"; type: "i128"; }, { name: "depositDelay"; type: "i64"; }, { name: "withdrawalDelay"; type: "i64"; }, { name: "reserved1"; type: "u64"; }, { name: "reserved2"; type: "u64"; }, { name: "slippageFactorBps"; type: "u16"; }, { name: "padding1"; type: { array: ["u8", 14]; }; } ]; }; }, { name: "TradingParams"; type: { kind: "struct"; fields: [ { name: "haltDurationBeforeExpiry"; type: "i64"; }, { name: "priceConfThreshold"; type: "u16"; }, { name: "intrinsicDiscountFactorBps"; type: "u16"; }, { name: "minAskExpiryBps"; type: "u16"; }, { name: "maxBidExpiryBps"; type: "u16"; }, { name: "minDelta"; type: "i128"; }, { name: "maxDelta"; type: "i128"; }, { name: "minGamma"; type: "i128"; }, { name: "maxGamma"; type: "i128"; }, { name: "minVega"; type: "i128"; }, { name: "maxVega"; type: "i128"; }, { name: "minTheta"; type: "i128"; }, { name: "maxTheta"; type: "i128"; }, { name: "minFreeCapitalRatio"; type: "i128"; }, { name: "deltaCallPriceCurve"; type: { defined: "PriceCurveParams"; }; }, { name: "deltaPutPriceCurve"; type: { defined: "PriceCurveParams"; }; }, { name: "vegaPriceCurve"; type: { defined: "PriceCurveParams"; }; }, { name: "gammaPriceCurve"; type: { defined: "PriceCurveParams"; }; }, { name: "thetaPriceCurve"; type: { defined: "PriceCurveParams"; }; }, { name: "deltaWeightBps"; type: "u16"; }, { name: "vegaWeightBps"; type: "u16"; }, { name: "gammaWeightBps"; type: "u16"; }, { name: "thetaWeightBps"; type: "u16"; }, { name: "minOptionDeltaBps"; type: "u16"; }, { name: "minOptionPriceBps"; type: "u16"; }, { name: "shockAdjustAskBps"; type: "u16"; }, { name: "shockAdjustBidBps"; type: "u16"; } ]; }; }, { name: "PriceCurveParams"; type: { kind: "struct"; fields: [ { name: "a"; type: "i64"; }, { name: "b"; type: "i64"; }, { name: "c"; type: "i64"; }, { name: "d"; type: "i64"; }, { name: "k"; type: "i64"; }, { name: "t"; type: "i64"; }, { name: "maxAsk"; type: "i64"; }, { name: "minAsk"; type: "i64"; }, { name: "maxBid"; type: "i64"; }, { name: "minBid"; type: "i64"; }, { name: "bidMultiplierAdjustment"; type: "i64"; }, { name: "skewExponent"; type: "u8"; }, { name: "reserved1"; type: { array: ["u8", 7]; }; } ]; }; }, { name: "AccountSummary"; type: { kind: "struct"; fields: [ { name: "totalCapitalInStable"; type: "i128"; }, { name: "freeCapitalInStable"; type: "i128"; }, { name: "navInStable"; type: "i128"; }, { name: "navInUnderlying"; type: "i128"; }, { name: "normalizedGreeks"; type: { defined: "Greeks"; }; } ]; }; }, { name: "HedgeParams"; type: { kind: "struct"; fields: [ { name: "toleranceTiers"; type: { array: [ { defined: "ToleranceTier"; }, 4 ]; }; }, { name: "hedgeDelay"; type: "i64"; }, { name: "lastHedgedTimestamp"; type: "i64"; }, { name: "isEnabled"; type: "bool"; }, { name: "padding"; type: { array: ["u8", 7]; }; }, { name: "reserved"; type: { array: ["u64", 25]; }; } ]; }; }, { name: "ToleranceTier"; type: { kind: "struct"; fields: [ { name: "maxDeltaDifferenceBps"; type: "u16"; }, { name: "discountBps"; type: "u16"; }, { name: "padding1"; type: { array: ["u8", 4]; }; } ]; }; }, { name: "PricePoint"; type: { kind: "struct"; fields: [ { name: "timestamp"; type: "i64"; }, { name: "price"; type: "i128"; } ]; }; }, { name: "CircularQueue"; type: { kind: "struct"; fields: [ { name: "capacity"; type: "u16"; }, { name: "front"; type: "u16"; }, { name: "rear"; type: "u16"; }, { name: "size"; type: "u16"; }, { name: "data"; type: { vec: { option: { defined: "PricePoint"; }; }; }; } ]; }; }, { name: "PriceTimeSeries"; type: { kind: "struct"; fields: [ { name: "prices"; type: { defined: "CircularQueue"; }; }, { name: "assetMint"; type: "publicKey"; }, { name: "oracleId"; type: "u8"; }, { name: "oracle"; type: "publicKey"; }, { name: "enabled"; type: "bool"; }, { name: "duration"; type: "u16"; }, { name: "minTimeDifference"; type: "u16"; }, { name: "thresholdMultiplierBps"; type: "u16"; }, { name: "thresholdConstantBps"; type: "u16"; }, { name: "lastActivated"; type: "i64"; } ]; }; }, { name: "PrizeCriteria"; type: { kind: "struct"; fields: [ { name: "matching"; type: "u8"; }, { name: "solAward"; type: "u64"; }, { name: "pointsAward"; type: "u32"; } ]; }; }, { name: "Request"; type: { kind: "struct"; fields: [ { name: "address"; type: "publicKey"; }, { name: "tickets"; type: "u8"; } ]; }; }, { name: "ChainGroup"; type: { kind: "struct"; fields: [ { name: "optionChain"; type: "publicKey"; }, { name: "entries"; type: { array: [ { defined: "EuroMetaTokenEntry"; }, 256 ]; }; } ]; }; }, { name: "EuroMetaTokenEntry"; type: { kind: "struct"; fields: [ { name: "mint"; type: "publicKey"; }, { name: "euroMetaV2"; type: "publicKey"; } ]; }; }, { name: "AccountStats"; type: { kind: "struct"; fields: [ { name: "tradeCount"; type: "u32"; }, { name: "feesPaidInCents"; type: "u32"; }, { name: "reserved"; type: { array: ["u64", 5]; }; } ]; }; }, { name: "WithdrawalCriteria"; type: { kind: "struct"; fields: [ { name: "minFeesPaid"; type: "u32"; }, { name: "reserved"; type: "u32"; }, { name: "tokenWithdrawCriteria"; type: { array: [ { defined: "TokenWithdrawCriteria"; }, 3 ]; }; } ]; }; }, { name: "TokenWithdrawCriteria"; type: { kind: "struct"; fields: [ { name: "minBalance"; type: "u64"; }, { name: "mintIndex"; type: "u8"; }, { name: "reserved"; type: { array: ["u8", 7]; }; } ]; }; }, { name: "Rewards"; type: { kind: "struct"; fields: [ { name: "ticketsEarnedS1"; type: "u32"; }, { name: "ticketsSpentS1"; type: "u32"; }, { name: "receivedComplimentaryS1"; type: "bool"; }, { name: "pointsEarnedS1"; type: "u32"; }, { name: "padding1"; type: { array: ["u8", 3]; }; }, { name: "reserved"; type: { array: ["u64", 14]; }; } ]; }; }, { name: "AssetGroup"; type: { kind: "struct"; fields: [ { name: "summary"; type: { defined: "AssetGroupSummary"; }; }, { name: "optionChain"; type: "publicKey"; }, { name: "positions"; type: { vec: { defined: "Position"; }; }; } ]; }; }, { name: "AssetGroupSummary"; type: { kind: "struct"; fields: [ { name: "cummulativeMarkUnderlying"; type: "i128"; }, { name: "cummulativeMarkStable"; type: "i128"; }, { name: "totalLockedStable"; type: "i128"; }, { name: "totalLockedUnderlying"; type: "i128"; }, { name: "cummulativeGreeks"; type: { defined: "Greeks"; }; }, { name: "reserved"; type: { array: ["u64", 8]; }; } ]; }; }, { name: "Position"; type: { kind: "struct"; fields: [ { name: "seriesId"; type: "u16"; }, { name: "padding1"; type: { array: ["u8", 6]; }; }, { name: "contracts"; type: "i64"; }, { name: "cashflow"; type: "i64"; }, { name: "feesPaid"; type: "u64"; }, { name: "expiration"; type: "i64"; }, { name: "reserved"; type: { array: ["u64", 3]; }; } ]; }; }, { name: "AssetVolatility"; type: { kind: "struct"; fields: [ { name: "assetMint"; type: "publicKey"; }, { name: "lastUpdated"; type: "i64"; }, { name: "markVolBps"; type: "u32"; }, { name: "stakingRateBps"; type: "u16"; }, { name: "padding1"; type: { array: ["u8", 2]; }; }, { name: "reserved1"; type: "u64"; }, { name: "reserved2"; type: "u64"; }, { name: "reserved3"; type: "u64"; } ]; }; }, { name: "GreekType"; type: { kind: "enum"; variants: [ { name: "Delta"; }, { name: "Gamma"; }, { name: "Theta"; }, { name: "Vega"; } ]; }; }, { name: "OrderType"; type: { kind: "enum"; variants: [ { name: "MarketBuy"; }, { name: "MarketSell"; }, { name: "LimitBuy"; }, { name: "LimitSell"; } ]; }; }, { name: "TransferType"; type: { kind: "enum"; variants: [ { name: "Deposit"; }, { name: "Withdraw"; } ]; }; }, { name: "VaultStatus"; type: { kind: "enum"; variants: [ { name: "Pending"; }, { name: "Active"; }, { name: "NearExpiry"; }, { name: "HaltedForTrading"; }, { name: "HaltedForDeposits"; }, { name: "HaltedForWithdraws"; }, { name: "HaltedForAll"; } ]; }; }, { name: "SeriesStatus"; type: { kind: "enum"; variants: [ { name: "Pending"; }, { name: "Active"; }, { name: "HaltedForBuying"; }, { name: "HaltedForSelling"; }, { name: "HaltedForAll"; } ]; }; }, { name: "FeeTier"; type: { kind: "enum"; variants: [ { name: "Normal"; }, { name: "Maker"; }, { name: "VIP1"; }, { name: "VIP2"; }, { name: "VIP3"; } ]; }; } ]; events: [ { name: "SettlementEvent"; fields: [ { name: "owner"; type: "publicKey"; index: false; }, { name: "seriesId"; type: "u16"; index: false; }, { name: "contracts"; type: "i64"; index: false; }, { name: "cashflow"; type: "i64"; index: false; }, { name: "feesPaid"; type: "u64"; index: false; }, { name: "priceAtExpiration"; type: "u64"; index: false; }, { name: "priceDecimals"; type: "u8"; index: false; } ]; }, { name: "SwapEvent"; fields: [ { name: "keeper"; type: "publicKey"; index: false; }, { name: "optionVault"; type: "publicKey"; index: false; }, { name: "paymentPrice"; type: "i128"; index: false; }, { name: "pythPrice"; type: "i128"; index: false; }, { name: "pythConf"; type: "i128"; index: false; }, { name: "discountBps"; type: "u16"; index: false; }, { name: "buyUnderlying"; type: "bool"; index: false; }, { name: "amountToSend"; type: "u64"; index: false; }, { name: "amountToReceive"; type: "u64"; index: false; }, { name: "newFreeCapitalRatio"; type: "i128"; index: false; }, { name: "initialNormDelta"; type: "i128"; index: false; }, { name: "finalNormDelta"; type: "i128"; index: false; }, { name: "targetNormDelta"; type: "i128"; index: false; }, { name: "timestamp"; type: "i64"; index: false; } ]; }, { name: "SpendTicketsEvent"; fields: [ { name: "owner"; type: "publicKey"; index: false; }, { name: "tradingAccount"; type: "publicKey"; index: false; }, { name: "timestamp"; type: "i64"; index: false; }, { name: "season"; type: "u8"; index: false; }, { name: "amount"; type: "u32"; index: false; } ]; }, { name: "AddTicketsEvent"; fields: [ { name: "owner"; type: "publicKey"; index: false; }, { name: "tradingAccount"; type: "publicKey"; index: false; }, { name: "timestamp"; type: "i64"; index: false; }, { name: "season"; type: "u8"; index: false; }, { name: "amount"; type: "u32"; index: false; } ]; }, { name: "EvaluateSpinEvent"; fields: [ { name: "owner"; type: "publicKey"; index: false; }, { name: "tradingAccount"; type: "publicKey"; index: false; }, { name: "randomnessRequest"; type: "publicKey"; index: false; }, { name: "timestamp"; type: "i64"; index: false; }, { name: "season"; type: "u8"; index: false; }, { name: "spinHistory"; type: { vec: { defined: "SpinHistory"; }; }; index: false; } ]; }, { name: "TradeHistoryEvent"; fields: [ { name: "underlyingPrice"; type: "i128"; index: false; }, { name: "markPrice"; type: "i128"; index: false; }, { name: "capitalUtilizationFee"; type: "i128"; index: false; }, { name: "newNormalizedGreeks"; type: { array: ["i128", 4]; }; index: false; }, { name: "weightedMultiplier"; type: "i128"; index: false; }, { name: "orderType"; type: { defined: "OrderType"; }; index: false; }, { name: "isVolShock"; type: "bool"; index: false; }, { name: "isNearExpiry"; type: "bool"; index: false; } ]; }, { name: "UpdateSkewEvent"; fields: [ { name: "skewUpdates"; type: { vec: { defined: "SkewUpdate"; }; }; index: false; } ]; }, { name: "UpdateMarkVolEvent"; fields: [ { name: "oldInterestRateBps"; type: "u16"; index: false; }, { name: "newInterestRateBps"; type: "u16"; index: false; }, { name: "oldMarkVolBps"; type: "u32"; index: false; }, { name: "newMarkVolBps"; type: "u32"; index: false; } ]; }, { name: "VolShockEvent"; fields: [ { name: "currentTime"; type: "i64"; index: false; }, { name: "priceInserted"; type: "i128"; index: false; }, { name: "isVolShock"; type: "bool"; index: false; } ]; } ]; errors: [ { code: 6000; name: "UnsupportedTransferType"; msg: "Unsupported Transfer Type"; }, { code: 6001; name: "OptionGroupExists"; msg: "Option Group already exists"; }, { code: 6002; name: "OptionGroupNotFound"; msg: "Option Group not found"; }, { code: 6003; name: "ExpirationMustBeFuture"; msg: "Expiration must be in the future"; }, { code: 6004; name: "ExpirationGroupExists"; msg: "Expiration Group already exists"; }, { code: 6005; name: "OptionSeriesExists"; msg: "Option Series already exists"; }, { code: 6006; name: "AssetVolatilityExists"; msg: "Asset Volatility already exists"; }, { code: 6007; name: "AssetVolatilityNotFound"; msg: "AssetVolatility not found"; }, { code: 6008; name: "TransferTypeMismatch"; msg: "Mismatch between transfer amount and transfer type"; }, { code: 6009; name: "RecordNotFront"; msg: "Record not at front of queue"; }, { code: 6010; name: "AccountAlreadyExists"; msg: "Token account already exists"; }, { code: 6011; name: "OracleResponseIssue"; msg: "OracleResponseIssue"; }, { code: 6012; name: "OracleExponentIssue"; msg: "OracleExponentIssue"; }, { code: 6013; name: "NumericalOverflow"; msg: "NumericalOverflow"; }, { code: 6014; name: "ExpirationMustBePast"; msg: "Expiration must be in the past"; }, { code: 6015; name: "SeriesIdMustMatchEuroMeta"; msg: "Option Series Id must match associated EuroMeta"; }, { code: 6016; name: "OptionTokenAccountNeeded"; msg: "Option Token Account Needed"; }, { code: 6017; name: "WriterTokenAccountNeeded"; msg: "Writer Token Account Needed"; }, { code: 6018; name: "TradingNotAllowed"; msg: "Trading is not allowed"; }, { code: 6019; name: "WaitingPeriodNotPassed"; msg: "Waiting period for deposit or withdraw has not passed"; }, { code: 6020; name: "TokenNotWhitelisted"; msg: "Token is not whitelisted"; }, { code: 6021; name: "TokenAlreadyWhitelisted"; msg: "Token already whitelisted"; }, { code: 6022; name: "IncorrectTransferType"; msg: "Incorrect transfer type for record"; }, { code: 6023; name: "AmountsCannotBeZero"; msg: "Amounts cannot be zero"; }, { code: 6024; name: "InvalidFutureTime"; msg: "Current time must be before the future time"; }, { code: 6025; name: "MaxNavExceeded"; msg: "Max Net Asset Value allowed for Vault exceeded"; }, { code: 6026; name: "FeeConstraintViolated"; msg: "Fee constraint violated"; }, { code: 6027; name: "LpParamsConstraintViolated"; msg: "LP Params constraint violated"; }, { code: 6028; name: "TradingParamsConstraintViolated"; msg: "TradingParams constraint violated"; }, { code: 6029; name: "PriceCurveConstraintViolated"; msg: "PriceCurve constraint violated"; }, { code: 6030; name: "InvalidFeeTier"; msg: "Invalid fee tier"; }, { code: 6031; name: "TooManyPositions"; msg: "Cannot exceed max number of positions"; }, { code: 6032; name: "LpDepositNotAllowed"; msg: "Liquidity Pool deposit not allowed"; }, { code: 6033; name: "LpWithdrawNotAllowed"; msg: "Liquidity Pool withdraw not allowed"; }, { code: 6034; name: "InvalidStatus"; msg: "Invalid status"; }, { code: 6035; name: "InvalidVecSize"; msg: "Invalid vec size"; }, { code: 6036; name: "UnauthorizedSigner"; msg: "Unauthorized signer"; }, { code: 6037; name: "NonZeroTokenBalance"; msg: "Token balance must be zero"; }, { code: 6038; name: "ReallocSizeTooSmall"; msg: "New size must be larger than current size"; }, { code: 6039; name: "ReallocSizeTooLarge"; msg: "New size cannot exceed permitted"; }, { code: 6040; name: "InvalidCoinLotSize"; msg: "Trade amount not in coin lot size"; }, { code: 6041; name: "InvalidEuroMetaV2"; msg: "Invalid EuroMetaV2"; }, { code: 6042; name: "InvalidSkewBps"; msg: "Invalid Skew Bps Values"; }, { code: 6043; name: "InvalidSeriesId"; msg: "Invalid Series Id"; }, { code: 6044; name: "OptionSeriesNotFound"; msg: "OptionSeries not found"; }, { code: 6045; name: "InvalidMarkPrice"; msg: "Option mark price < 0"; }, { code: 6046; name: "VaultHasExpiredPositions"; msg: "Vault's positions needs to be settled. Call settled_expired_positions"; }, { code: 6047; name: "MaxTokenAccountsReached"; msg: "Max token accounts has been reached. Resize trading account to increase limit"; }, { code: 6048; name: "StaleOracleData"; msg: "Stale oracle data"; }, { code: 6049; name: "PositionCapExceeded"; msg: "Position cap exceeded"; }, { code: 6050; name: "InvalidReduceOnly"; msg: "Reduce only check failed"; }, { code: 6051; name: "SpreadLegsNotInitialized"; msg: "Individual option legs of a spread must be initialized first"; }, { code: 6052; name: "InvalidCreditMint"; msg: "Only regular tokens can be credited"; }, { code: 6053; name: "WithdrawalCriteriaNotMet"; msg: "Withdrawal criteria not met"; }, { code: 6054; name: "KeeperConstraintsViolated"; msg: "Keeper swap constraints violated"; }, { code: 6055; name: "InsufficientTickets"; msg: "Insufficent tickets to spend"; }, { code: 6056; name: "InvalidSeason"; msg: "Invalid season"; }, { code: 6057; name: "InvalidInputAmount"; msg: "Invalid input amount"; }, { code: 6058; name: "OracleStalePrice"; msg: "Stale Price Oracle Data"; }, { code: 6059; name: "OracleLowConf"; msg: "Oracle Low Confidence In Price"; }, { code: 6060; name: "HedgeDelayNotPassed"; msg: "Hedge delay not passed"; }, { code: 6061; name: "HedgeTierViolated"; msg: "Hedge tier violated"; }, { code: 6062; name: "FeatureDisabled"; msg: "Feature disabled"; }, { code: 6063; name: "HedgeTierInvalid"; msg: "Hedge tier does not exist"; }, { code: 6064; name: "MinFreeCapitalViolated"; msg: "Min free capital requirements violated"; }, { code: 6065; name: "HedgeParamsConstraintViolated"; msg: "Hedge Params constraint violated"; }, { code: 6066; name: "StableOracleDepeg"; msg: "Stable oracle price not within allowed range"; }, { code: 6067; name: "ComplimentaryTicketViolated"; msg: "Account cannot be closed as complimentary ticket was spent"; }, { code: 6068; name: "TokenAccountsViolated"; msg: "Account cannot be closed as token accounts are not closed"; }, { code: 6069; name: "PositionsViolated"; msg: "Account cannot be closed as positions are not closed"; }, { code: 6070; name: "PriceDataInsufficient"; msg: "Pricing data insufficient/stale"; }, { code: 6071; name: "OracleMismatch"; msg: "Oracle key mismatch"; }, { code: 6072; name: "PriceTimeSeriesAlreadyExists"; msg: "Price time series already exists"; } ]; }; export declare const IDL: Dsov; //# sourceMappingURL=programTypes.d.ts.map