Dsov: {
accounts: [{
name: "optionChain";
type: {
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", 32];
};
}, {
name: "euroMetaHistory";
type: {
array: [{
defined: "EuroMetaHistory";
}, 100];
};
}, {
name: "reserved2";
type: {
array: ["u128", 256];
};
}, {
name: "optionGroups";
type: {
array: [{
defined: "OptionGroup";
}, 6];
};
}];
kind: "struct";
};
}, {
name: "optionVault";
type: {
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";
};
}];
kind: "struct";
};
}, {
name: "programAuthority";
type: {
fields: [{
name: "ownerAuthority";
type: "publicKey";
}, {
name: "tokenWhitelist";
type: "publicKey";
}, {
name: "taskerAuthority";
type: "publicKey";
}, {
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
name: "transferQueue";
type: {
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";
};
}];
kind: "struct";
};
}, {
name: "transferRecord";
type: {
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";
}];
kind: "struct";
};
}, {
name: "tokenWhitelist";
type: {
fields: [{
name: "ownerAuthority";
type: "publicKey";
}, {
name: "reserved1";
type: {
array: ["u128", 32];
};
}, {
name: "regularTokens";
type: {
array: ["publicKey", 256];
};
}, {
name: "euroMetaTokens";
type: {
array: [{
defined: "ChainGroup";
}, 6];
};
}];
kind: "struct";
};
}, {
name: "tradingAccount";
type: {
fields: [{
name: "owner";
type: "publicKey";
}, {
name: "bump";
type: "u8";
}, {
name: "uniqueSeed";
type: "u16";
}, {
name: "tokenAccounts";
type: {
vec: "publicKey";
};
}, {
name: "assetGroups";
type: {
vec: {
defined: "AssetGroup";
};
};
}, {
name: "feeTier";
type: "u8";
}, {
name: "accountType";
type: "u8";
}];
kind: "struct";
};
}, {
name: "volatilityFeed";
type: {
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";
};
};
}];
kind: "struct";
};
}];
errors: [{
code: 6000;
msg: "Unsupported Transfer Type";
name: "UnsupportedTransferType";
}, {
code: 6001;
msg: "Option Group already exists";
name: "OptionGroupExists";
}, {
code: 6002;
msg: "Option Group not found";
name: "OptionGroupNotFound";
}, {
code: 6003;
msg: "Expiration must be in the future";
name: "ExpirationMustBeFuture";
}, {
code: 6004;
msg: "Expiration Group already exists";
name: "ExpirationGroupExists";
}, {
code: 6005;
msg: "Option Series already exists";
name: "OptionSeriesExists";
}, {
code: 6006;
msg: "Asset Volatility already exists";
name: "AssetVolatilityExists";
}, {
code: 6007;
msg: "AssetVolatility not found";
name: "AssetVolatilityNotFound";
}, {
code: 6008;
msg: "Mismatch between transfer amount and transfer type";
name: "TransferTypeMismatch";
}, {
code: 6009;
msg: "Record not at front of queue";
name: "RecordNotFront";
}, {
code: 6010;
msg: "Token account already exists";
name: "AccountAlreadyExists";
}, {
code: 6011;
msg: "OracleResponseIssue";
name: "OracleResponseIssue";
}, {
code: 6012;
msg: "OracleExponentIssue";
name: "OracleExponentIssue";
}, {
code: 6013;
msg: "NumericalOverflow";
name: "NumericalOverflow";
}, {
code: 6014;
msg: "Expiration must be in the past";
name: "ExpirationMustBePast";
}, {
code: 6015;
msg: "Option Series Id must match associated EuroMeta";
name: "SeriesIdMustMatchEuroMeta";
}, {
code: 6016;
msg: "Option Token Account Needed";
name: "OptionTokenAccountNeeded";
}, {
code: 6017;
msg: "Writer Token Account Needed";
name: "WriterTokenAccountNeeded";
}, {
code: 6018;
msg: "Trading is not allowed";
name: "TradingNotAllowed";
}, {
code: 6019;
msg: "Waiting period for deposit or withdraw has not passed";
name: "WaitingPeriodNotPassed";
}, {
code: 6020;
msg: "Token is not whitelisted";
name: "TokenNotWhitelisted";
}, {
code: 6021;
msg: "Token already whitelisted";
name: "TokenAlreadyWhitelisted";
}, {
code: 6022;
msg: "Incorrect transfer type for record";
name: "IncorrectTransferType";
}, {
code: 6023;
msg: "Amounts cannot be zero";
name: "AmountsCannotBeZero";
}, {
code: 6024;
msg: "Current time must be before the future time";
name: "InvalidFutureTime";
}, {
code: 6025;
msg: "Max Net Asset Value allowed for Vault exceeded";
name: "MaxNavExceeded";
}, {
code: 6026;
msg: "Fee constraint violated";
name: "FeeConstraintViolated";
}, {
code: 6027;
msg: "LpParams constraint violated";
name: "LpParamsConstraintViolated";
}, {
code: 6028;
msg: "TradingParams constraint violated";
name: "TradingParamsConstraintViolated";
}, {
code: 6029;
msg: "PriceCurve constraint violated";
name: "PriceCurveConstraintViolated";
}, {
code: 6030;
msg: "Invalid fee tier";
name: "InvalidFeeTier";
}, {
code: 6031;
msg: "Cannot exceed max number of positions";
name: "TooManyPositions";
}, {
code: 6032;
msg: "Liquidity Pool deposit not allowed";
name: "LpDepositNotAllowed";
}, {
code: 6033;
msg: "Liquidity Pool withdraw not allowed";
name: "LpWithdrawNotAllowed";
}, {
code: 6034;
msg: "Invalid status";
name: "InvalidStatus";
}, {
code: 6035;
msg: "Invalid vec size";
name: "InvalidVecSize";
}, {
code: 6036;
msg: "Unauthorized signer";
name: "UnauthorizedSigner";
}, {
code: 6037;
msg: "Token balance must be zero";
name: "NonZeroTokenBalance";
}];
events: [{
fields: [{
index: false;
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";
}];
name: "TradeHistoryEvent";
}];
instructions: [{
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "programAuthority";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "initProgramAuthority";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "newOwnerAuthority";
}, {
isMut: false;
isSigner: false;
name: "newTaskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "programAuthority";
}];
args: [];
name: "updateProgramAuthority";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: true;
isSigner: false;
name: "programAuthority";
}];
args: [];
name: "initTokenWhitelist";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "tokenWhitelist";
}];
args: [{
name: "tokenMints";
type: {
array: ["publicKey", 5];
};
}];
name: "addRegularTokens";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}];
args: [{
name: "tokenMints";
type: {
array: ["publicKey", 5];
};
}, {
name: "euroMetaV2s";
type: {
array: ["publicKey", 5];
};
}];
name: "addEuroMetaTokens";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "euroMetaV2";
}, {
isMut: false;
isSigner: false;
name: "mint";
}];
args: [];
name: "removeEuroMetaToken";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "programAuthority";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}];
args: [{
name: "feeTier";
type: "u8";
}];
name: "updateFeeTier";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}];
args: [{
name: "status";
type: "u8";
}];
name: "updateVaultStatus";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}];
args: [{
name: "optionType";
type: "u8";
}, {
name: "expiration";
type: "i64";
}, {
name: "seriesIdToUpdate";
type: {
vec: "u16";
};
}, {
name: "status";
type: "u8";
}];
name: "updateSeriesStatus";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "managerAuthority";
}, {
isMut: false;
isSigner: false;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "lpTokenMint";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: false;
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";
}];
args: [{
name: "uniqueSeed";
type: "u16";
}, {
name: "lpTokenDecimals";
type: "u8";
}, {
name: "feeParams";
type: {
defined: "Fees";
};
}, {
name: "lpParams";
type: {
defined: "LpParams";
};
}];
name: "initVault";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "keeper";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}];
args: [];
name: "toggleVaultForExpiry";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}];
args: [{
name: "tradingParams";
type: {
defined: "TradingParams";
};
}];
name: "updateTradingParams";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: false;
isSigner: false;
name: "underlyingAssetMint";
}, {
isMut: false;
isSigner: false;
name: "stableAssetMint";
}, {
isMut: false;
isSigner: false;
name: "lpTokenMint";
}, {
isMut: true;
isSigner: false;
name: "underlyingFeeAccount";
}, {
isMut: true;
isSigner: false;
name: "stableFeeAccount";
}, {
isMut: true;
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: false;
isSigner: false;
name: "rent";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "initVaultDependencies";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "transferQueue";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "transferType";
type: "u8";
}];
name: "initQueue";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "underlyingAssetMint";
}, {
isMut: false;
isSigner: false;
name: "stableAssetMint";
}, {
isMut: false;
isSigner: false;
name: "oracle";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "oracleProviderId";
type: "u8";
}];
name: "initOptionChain";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "optionType";
type: "u8";
}, {
name: "expiration";
type: "i64";
}];
name: "initExpirationGroup";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "euroMetaV2";
}, {
isMut: false;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "skewBps";
type: {
vec: "u16";
};
}, {
name: "coinLotSize";
type: "u64";
}];
name: "initOptionSeries";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "uniqueSeed";
type: "u16";
}, {
name: "interestRateBps";
type: "u16";
}];
name: "initVolatilityFeed";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "assetMint";
}];
args: [{
name: "markVolBps";
type: "u32";
}];
name: "initAssetVolatility";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "assetMint";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "interestRateBps";
type: "u16";
}, {
name: "markVolBps";
type: "u32";
}];
name: "updateMarkVol";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}];
args: [{
name: "optionType";
type: "u8";
}, {
name: "expiration";
type: "i64";
}, {
name: "seriesIdToUpdate";
type: {
vec: "u16";
};
}, {
name: "newSkewBps";
type: {
vec: {
vec: "u16";
};
};
}];
name: "updateSkew";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "volatilityFeed";
}];
args: [];
name: "updateFeedAuthority";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: true;
isSigner: false;
name: "transferRecord";
}, {
isMut: true;
isSigner: false;
name: "transferQueue";
}, {
isMut: false;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
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: false;
isSigner: false;
name: "tokenProgram";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "underlyingAmount";
type: "u64";
}, {
name: "stableAmount";
type: "u64";
}, {
name: "lpTokenAmount";
type: "u64";
}];
name: "initTransferRecord";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "keeper";
}, {
isMut: true;
isSigner: false;
name: "transferRecord";
}, {
isMut: true;
isSigner: false;
name: "transferQueue";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: true;
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: false;
isSigner: false;
name: "underlyingAssetMint";
}, {
isMut: false;
isSigner: false;
name: "stableAssetMint";
}, {
isMut: true;
isSigner: false;
name: "lpTokenMint";
}, {
isMut: false;
isSigner: false;
name: "priceOracle";
}, {
isMut: true;
isSigner: false;
name: "vaultTradingAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "processDeposit";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "keeper";
}, {
isMut: true;
isSigner: false;
name: "transferRecord";
}, {
isMut: true;
isSigner: false;
name: "transferQueue";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: true;
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: false;
isSigner: false;
name: "underlyingAssetMint";
}, {
isMut: false;
isSigner: false;
name: "stableAssetMint";
}, {
isMut: true;
isSigner: false;
name: "lpTokenMint";
}, {
isMut: false;
isSigner: false;
name: "priceOracle";
}, {
isMut: true;
isSigner: false;
name: "vaultTradingAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "processWithdraw";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: true;
isSigner: false;
name: "newTokenAccount";
}, {
isMut: false;
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";
}];
args: [];
name: "initTokenAccount";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "signer";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: true;
isSigner: false;
name: "tokenAccount";
}, {
isMut: false;
isSigner: false;
name: "mint";
}, {
isMut: false;
isSigner: false;
name: "programAuthority";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "closeTokenAccount";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "uniqueSeed";
type: "u16";
}];
name: "initTradingAccount";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: false;
isSigner: false;
name: "tradingAccount";
}, {
isMut: true;
isSigner: false;
name: "sourceTokenAccount";
}, {
isMut: true;
isSigner: false;
name: "receivingTokenAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "mint";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "amount";
type: "u64";
}];
name: "depositToTradingAccount";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: false;
isSigner: false;
name: "tradingAccount";
}, {
isMut: true;
isSigner: false;
name: "sourceTokenAccount";
}, {
isMut: true;
isSigner: false;
name: "receivingTokenAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "mint";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "amount";
type: "u64";
}];
name: "withdrawFromTradingAccount";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "owner";
}, {
isMut: true;
isSigner: false;
name: "transferRecord";
}, {
isMut: true;
isSigner: false;
name: "transferQueue";
}, {
isMut: false;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
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: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "cancelTransferRecord";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: true;
isSigner: false;
name: "buyerTradingAccount";
}, {
isMut: true;
isSigner: false;
name: "vaultTradingAccount";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "euroMeta";
}, {
isMut: true;
isSigner: false;
name: "collateralPool";
}, {
isMut: false;
isSigner: false;
name: "poolAuthority";
}, {
isMut: true;
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: false;
isSigner: false;
name: "priceOracle";
}, {
isMut: true;
isSigner: false;
name: "tradeFeeAccount";
}, {
isMut: false;
isSigner: false;
name: "euroPrimitiveProgram";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "bumps";
type: {
defined: "BuyOptionBumps";
};
}, {
name: "optionAmount";
type: "u64";
}, {
name: "maxAmountToPay";
type: "u64";
}, {
name: "seriesId";
type: "u16";
}];
name: "buyOption";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: true;
isSigner: false;
name: "sellerTradingAccount";
}, {
isMut: true;
isSigner: false;
name: "vaultTradingAccount";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "euroMeta";
}, {
isMut: true;
isSigner: false;
name: "collateralPool";
}, {
isMut: false;
isSigner: false;
name: "poolAuthority";
}, {
isMut: true;
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: false;
isSigner: false;
name: "priceOracle";
}, {
isMut: true;
isSigner: false;
name: "tradeFeeAccount";
}, {
isMut: false;
isSigner: false;
name: "euroPrimitiveProgram";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "bumps";
type: {
defined: "SellOptionBumps";
};
}, {
name: "optionAmount";
type: "u64";
}, {
name: "minAmountToReceive";
type: "u64";
}, {
name: "seriesId";
type: "u16";
}];
name: "sellOption";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "keeper";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "euroMetaV2";
}, {
isMut: false;
isSigner: false;
name: "expirationData";
}, {
isMut: false;
isSigner: false;
name: "poolAuthority";
}, {
isMut: true;
isSigner: false;
name: "collateralPool";
}, {
isMut: true;
isSigner: false;
name: "optionMint";
}, {
isMut: true;
isSigner: false;
name: "writerMint";
}, {
isMut: true;
isSigner: false;
name: "collateralTokenAccount";
}, {
isMut: false;
isSigner: false;
name: "euroPrimitiveProgram";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "seriesId";
type: "u16";
}];
name: "settleExpiredPosition";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}];
args: [{
name: "optionType";
type: "u8";
}, {
name: "expiration";
type: "i64";
}];
name: "removeExpirationGroup";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "euroMetaV2";
}];
args: [];
name: "removeEuroMetaHistory";
}];
name: "dsov";
types: [{
name: "BuyOptionBumps";
type: {
fields: [{
name: "buyerCollateralTokenAccount";
type: "u8";
}, {
name: "vaultOptionTokenAccount";
type: "u8";
}, {
name: "vaultWriterTokenAccount";
type: "u8";
}, {
name: "buyerOptionTokenAccount";
type: "u8";
}, {
name: "buyerWriterTokenAccount";
type: "u8";
}];
kind: "struct";
};
}, {
name: "SellOptionBumps";
type: {
fields: [{
name: "sellerCollateralTokenAccount";
type: "u8";
}, {
name: "sellerOptionTokenAccount";
type: "u8";
}, {
name: "sellerWriterTokenAccount";
type: "u8";
}, {
name: "vaultOptionTokenAccount";
type: "u8";
}, {
name: "vaultWriterTokenAccount";
type: "u8";
}];
kind: "struct";
};
}, {
name: "DataFeed";
type: {
fields: [{
name: "volatilityFeed";
type: "publicKey";
}, {
name: "underlyingPriceOracle";
type: "publicKey";
}, {
name: "oracleProviderId";
type: "u8";
}, {
name: "padding1";
type: {
array: ["u8", 15];
};
}];
kind: "struct";
};
}, {
name: "OptionGroup";
type: {
fields: [{
name: "expirationGroups";
type: {
array: [{
defined: "ExpirationGroup";
}, 6];
};
}];
kind: "struct";
};
}, {
name: "ExpirationGroup";
type: {
fields: [{
name: "expiration";
type: "i64";
}, {
name: "padding1";
type: "u64";
}, {
name: "optionSeries";
type: {
array: [{
defined: "OptionSeries";
}, 16];
};
}];
kind: "struct";
};
}, {
name: "OptionSeries";
type: {
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: "reserved2";
type: {
array: ["u64", 7];
};
}, {
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];
};
}];
kind: "struct";
};
}, {
name: "Greeks";
type: {
fields: [{
name: "delta";
type: "i128";
}, {
name: "theta";
type: "i128";
}, {
name: "gamma";
type: "i128";
}, {
name: "vega";
type: "i128";
}];
kind: "struct";
};
}, {
name: "EuroMetaHistory";
type: {
fields: [{
name: "seriesId";
type: "u16";
}, {
name: "padding1";
type: {
array: ["u8", 14];
};
}, {
name: "euroMetaV2";
type: "publicKey";
}];
kind: "struct";
};
}, {
name: "Fees";
type: {
fields: [{
name: "capitalUtilizationFeeBps";
type: "u16";
}, {
name: "tradeFeeBps";
type: "u16";
}, {
name: "underlyingFeeBps";
type: "u16";
}, {
name: "withdrawalLpFeeBps";
type: "u16";
}, {
name: "padding1";
type: {
array: ["u8", 8];
};
}];
kind: "struct";
};
}, {
name: "LpParams";
type: {
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];
};
}];
kind: "struct";
};
}, {
name: "TradingParams";
type: {
fields: [{
name: "haltDurationBeforeExpiry";
type: "i64";
}, {
name: "reserved1";
type: "u64";
}, {
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: "padding1";
type: {
array: ["u8", 8];
};
}];
kind: "struct";
};
}, {
name: "PriceCurveParams";
type: {
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: "reserved1";
type: {
array: ["u8", 8];
};
}];
kind: "struct";
};
}, {
name: "AccountSummary";
type: {
fields: [{
name: "totalCapitalInStable";
type: "i128";
}, {
name: "freeCapitalInStable";
type: "i128";
}, {
name: "navInStable";
type: "i128";
}, {
name: "navInUnderlying";
type: "i128";
}, {
name: "normalizedGreeks";
type: {
defined: "Greeks";
};
}];
kind: "struct";
};
}, {
name: "ChainGroup";
type: {
fields: [{
name: "optionChain";
type: "publicKey";
}, {
name: "entries";
type: {
array: [{
defined: "EuroMetaTokenEntry";
}, 256];
};
}];
kind: "struct";
};
}, {
name: "EuroMetaTokenEntry";
type: {
fields: [{
name: "mint";
type: "publicKey";
}, {
name: "euroMetaV2";
type: "publicKey";
}];
kind: "struct";
};
}, {
name: "AssetGroup";
type: {
fields: [{
name: "summary";
type: {
defined: "AssetGroupSummary";
};
}, {
name: "optionChain";
type: "publicKey";
}, {
name: "positions";
type: {
vec: {
defined: "Position";
};
};
}];
kind: "struct";
};
}, {
name: "AssetGroupSummary";
type: {
fields: [{
name: "cummulativeMarkUnderlying";
type: "i128";
}, {
name: "cummulativeMarkStable";
type: "i128";
}, {
name: "totalLockedStable";
type: "i128";
}, {
name: "totalLockedUnderlying";
type: "i128";
}, {
name: "cummulativeGreeks";
type: {
defined: "Greeks";
};
}];
kind: "struct";
};
}, {
name: "Position";
type: {
fields: [{
name: "seriesId";
type: "u16";
}, {
name: "padding1";
type: {
array: ["u8", 6];
};
}, {
name: "contracts";
type: "i64";
}, {
name: "cashflow";
type: "i64";
}, {
name: "feesPaid";
type: "u64";
}, {
name: "reserved1";
type: "u64";
}, {
name: "reserved2";
type: "u64";
}];
kind: "struct";
};
}, {
name: "AssetVolatility";
type: {
fields: [{
name: "assetMint";
type: "publicKey";
}, {
name: "lastUpdated";
type: "i64";
}, {
name: "markVolBps";
type: "u32";
}, {
name: "padding1";
type: {
array: ["u8", 4];
};
}, {
name: "reserved1";
type: "u64";
}, {
name: "reserved2";
type: "u64";
}, {
name: "reserved3";
type: "u64";
}];
kind: "struct";
};
}, {
name: "GreekType";
type: {
kind: "enum";
variants: [{
name: "Delta";
}, {
name: "Gamma";
}, {
name: "Theta";
}, {
name: "Vega";
}];
};
}, {
name: "TransferType";
type: {
kind: "enum";
variants: [{
name: "Deposit";
}, {
name: "Withdraw";
}];
};
}, {
name: "VaultStatus";
type: {
kind: "enum";
variants: [{
name: "Pending";
}, {
name: "Active";
}, {
name: "HaltedForExpiry";
}, {
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: "VIP1";
}, {
name: "VIP2";
}, {
name: "VIP3";
}, {
name: "Maker";
}];
};
}];
version: "0.1.0";
}
Type declaration
-
accounts: [{
name: "optionChain";
type: {
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", 32];
};
}, {
name: "euroMetaHistory";
type: {
array: [{
defined: "EuroMetaHistory";
}, 100];
};
}, {
name: "reserved2";
type: {
array: ["u128", 256];
};
}, {
name: "optionGroups";
type: {
array: [{
defined: "OptionGroup";
}, 6];
};
}];
kind: "struct";
};
}, {
name: "optionVault";
type: {
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";
};
}];
kind: "struct";
};
}, {
name: "programAuthority";
type: {
fields: [{
name: "ownerAuthority";
type: "publicKey";
}, {
name: "tokenWhitelist";
type: "publicKey";
}, {
name: "taskerAuthority";
type: "publicKey";
}, {
name: "bump";
type: "u8";
}];
kind: "struct";
};
}, {
name: "transferQueue";
type: {
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";
};
}];
kind: "struct";
};
}, {
name: "transferRecord";
type: {
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";
}];
kind: "struct";
};
}, {
name: "tokenWhitelist";
type: {
fields: [{
name: "ownerAuthority";
type: "publicKey";
}, {
name: "reserved1";
type: {
array: ["u128", 32];
};
}, {
name: "regularTokens";
type: {
array: ["publicKey", 256];
};
}, {
name: "euroMetaTokens";
type: {
array: [{
defined: "ChainGroup";
}, 6];
};
}];
kind: "struct";
};
}, {
name: "tradingAccount";
type: {
fields: [{
name: "owner";
type: "publicKey";
}, {
name: "bump";
type: "u8";
}, {
name: "uniqueSeed";
type: "u16";
}, {
name: "tokenAccounts";
type: {
vec: "publicKey";
};
}, {
name: "assetGroups";
type: {
vec: {
defined: "AssetGroup";
};
};
}, {
name: "feeTier";
type: "u8";
}, {
name: "accountType";
type: "u8";
}];
kind: "struct";
};
}, {
name: "volatilityFeed";
type: {
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";
};
};
}];
kind: "struct";
};
}]
-
errors: [{
code: 6000;
msg: "Unsupported Transfer Type";
name: "UnsupportedTransferType";
}, {
code: 6001;
msg: "Option Group already exists";
name: "OptionGroupExists";
}, {
code: 6002;
msg: "Option Group not found";
name: "OptionGroupNotFound";
}, {
code: 6003;
msg: "Expiration must be in the future";
name: "ExpirationMustBeFuture";
}, {
code: 6004;
msg: "Expiration Group already exists";
name: "ExpirationGroupExists";
}, {
code: 6005;
msg: "Option Series already exists";
name: "OptionSeriesExists";
}, {
code: 6006;
msg: "Asset Volatility already exists";
name: "AssetVolatilityExists";
}, {
code: 6007;
msg: "AssetVolatility not found";
name: "AssetVolatilityNotFound";
}, {
code: 6008;
msg: "Mismatch between transfer amount and transfer type";
name: "TransferTypeMismatch";
}, {
code: 6009;
msg: "Record not at front of queue";
name: "RecordNotFront";
}, {
code: 6010;
msg: "Token account already exists";
name: "AccountAlreadyExists";
}, {
code: 6011;
msg: "OracleResponseIssue";
name: "OracleResponseIssue";
}, {
code: 6012;
msg: "OracleExponentIssue";
name: "OracleExponentIssue";
}, {
code: 6013;
msg: "NumericalOverflow";
name: "NumericalOverflow";
}, {
code: 6014;
msg: "Expiration must be in the past";
name: "ExpirationMustBePast";
}, {
code: 6015;
msg: "Option Series Id must match associated EuroMeta";
name: "SeriesIdMustMatchEuroMeta";
}, {
code: 6016;
msg: "Option Token Account Needed";
name: "OptionTokenAccountNeeded";
}, {
code: 6017;
msg: "Writer Token Account Needed";
name: "WriterTokenAccountNeeded";
}, {
code: 6018;
msg: "Trading is not allowed";
name: "TradingNotAllowed";
}, {
code: 6019;
msg: "Waiting period for deposit or withdraw has not passed";
name: "WaitingPeriodNotPassed";
}, {
code: 6020;
msg: "Token is not whitelisted";
name: "TokenNotWhitelisted";
}, {
code: 6021;
msg: "Token already whitelisted";
name: "TokenAlreadyWhitelisted";
}, {
code: 6022;
msg: "Incorrect transfer type for record";
name: "IncorrectTransferType";
}, {
code: 6023;
msg: "Amounts cannot be zero";
name: "AmountsCannotBeZero";
}, {
code: 6024;
msg: "Current time must be before the future time";
name: "InvalidFutureTime";
}, {
code: 6025;
msg: "Max Net Asset Value allowed for Vault exceeded";
name: "MaxNavExceeded";
}, {
code: 6026;
msg: "Fee constraint violated";
name: "FeeConstraintViolated";
}, {
code: 6027;
msg: "LpParams constraint violated";
name: "LpParamsConstraintViolated";
}, {
code: 6028;
msg: "TradingParams constraint violated";
name: "TradingParamsConstraintViolated";
}, {
code: 6029;
msg: "PriceCurve constraint violated";
name: "PriceCurveConstraintViolated";
}, {
code: 6030;
msg: "Invalid fee tier";
name: "InvalidFeeTier";
}, {
code: 6031;
msg: "Cannot exceed max number of positions";
name: "TooManyPositions";
}, {
code: 6032;
msg: "Liquidity Pool deposit not allowed";
name: "LpDepositNotAllowed";
}, {
code: 6033;
msg: "Liquidity Pool withdraw not allowed";
name: "LpWithdrawNotAllowed";
}, {
code: 6034;
msg: "Invalid status";
name: "InvalidStatus";
}, {
code: 6035;
msg: "Invalid vec size";
name: "InvalidVecSize";
}, {
code: 6036;
msg: "Unauthorized signer";
name: "UnauthorizedSigner";
}, {
code: 6037;
msg: "Token balance must be zero";
name: "NonZeroTokenBalance";
}]
-
events: [{
fields: [{
index: false;
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";
}];
name: "TradeHistoryEvent";
}]
-
instructions: [{
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "programAuthority";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "initProgramAuthority";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "newOwnerAuthority";
}, {
isMut: false;
isSigner: false;
name: "newTaskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "programAuthority";
}];
args: [];
name: "updateProgramAuthority";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: true;
isSigner: false;
name: "programAuthority";
}];
args: [];
name: "initTokenWhitelist";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "tokenWhitelist";
}];
args: [{
name: "tokenMints";
type: {
array: ["publicKey", 5];
};
}];
name: "addRegularTokens";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}];
args: [{
name: "tokenMints";
type: {
array: ["publicKey", 5];
};
}, {
name: "euroMetaV2s";
type: {
array: ["publicKey", 5];
};
}];
name: "addEuroMetaTokens";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "euroMetaV2";
}, {
isMut: false;
isSigner: false;
name: "mint";
}];
args: [];
name: "removeEuroMetaToken";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "programAuthority";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}];
args: [{
name: "feeTier";
type: "u8";
}];
name: "updateFeeTier";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}];
args: [{
name: "status";
type: "u8";
}];
name: "updateVaultStatus";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}];
args: [{
name: "optionType";
type: "u8";
}, {
name: "expiration";
type: "i64";
}, {
name: "seriesIdToUpdate";
type: {
vec: "u16";
};
}, {
name: "status";
type: "u8";
}];
name: "updateSeriesStatus";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "managerAuthority";
}, {
isMut: false;
isSigner: false;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "lpTokenMint";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: false;
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";
}];
args: [{
name: "uniqueSeed";
type: "u16";
}, {
name: "lpTokenDecimals";
type: "u8";
}, {
name: "feeParams";
type: {
defined: "Fees";
};
}, {
name: "lpParams";
type: {
defined: "LpParams";
};
}];
name: "initVault";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "keeper";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}];
args: [];
name: "toggleVaultForExpiry";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}];
args: [{
name: "tradingParams";
type: {
defined: "TradingParams";
};
}];
name: "updateTradingParams";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: false;
isSigner: false;
name: "underlyingAssetMint";
}, {
isMut: false;
isSigner: false;
name: "stableAssetMint";
}, {
isMut: false;
isSigner: false;
name: "lpTokenMint";
}, {
isMut: true;
isSigner: false;
name: "underlyingFeeAccount";
}, {
isMut: true;
isSigner: false;
name: "stableFeeAccount";
}, {
isMut: true;
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: false;
isSigner: false;
name: "rent";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "initVaultDependencies";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "transferQueue";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "transferType";
type: "u8";
}];
name: "initQueue";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "underlyingAssetMint";
}, {
isMut: false;
isSigner: false;
name: "stableAssetMint";
}, {
isMut: false;
isSigner: false;
name: "oracle";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "oracleProviderId";
type: "u8";
}];
name: "initOptionChain";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "optionType";
type: "u8";
}, {
name: "expiration";
type: "i64";
}];
name: "initExpirationGroup";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "euroMetaV2";
}, {
isMut: false;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "skewBps";
type: {
vec: "u16";
};
}, {
name: "coinLotSize";
type: "u64";
}];
name: "initOptionSeries";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "uniqueSeed";
type: "u16";
}, {
name: "interestRateBps";
type: "u16";
}];
name: "initVolatilityFeed";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: true;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "assetMint";
}];
args: [{
name: "markVolBps";
type: "u32";
}];
name: "initAssetVolatility";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "assetMint";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "interestRateBps";
type: "u16";
}, {
name: "markVolBps";
type: "u32";
}];
name: "updateMarkVol";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}];
args: [{
name: "optionType";
type: "u8";
}, {
name: "expiration";
type: "i64";
}, {
name: "seriesIdToUpdate";
type: {
vec: "u16";
};
}, {
name: "newSkewBps";
type: {
vec: {
vec: "u16";
};
};
}];
name: "updateSkew";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "ownerAuthority";
}, {
isMut: false;
isSigner: false;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "volatilityFeed";
}];
args: [];
name: "updateFeedAuthority";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: true;
isSigner: false;
name: "transferRecord";
}, {
isMut: true;
isSigner: false;
name: "transferQueue";
}, {
isMut: false;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
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: false;
isSigner: false;
name: "tokenProgram";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "underlyingAmount";
type: "u64";
}, {
name: "stableAmount";
type: "u64";
}, {
name: "lpTokenAmount";
type: "u64";
}];
name: "initTransferRecord";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "keeper";
}, {
isMut: true;
isSigner: false;
name: "transferRecord";
}, {
isMut: true;
isSigner: false;
name: "transferQueue";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: true;
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: false;
isSigner: false;
name: "underlyingAssetMint";
}, {
isMut: false;
isSigner: false;
name: "stableAssetMint";
}, {
isMut: true;
isSigner: false;
name: "lpTokenMint";
}, {
isMut: false;
isSigner: false;
name: "priceOracle";
}, {
isMut: true;
isSigner: false;
name: "vaultTradingAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "processDeposit";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "keeper";
}, {
isMut: true;
isSigner: false;
name: "transferRecord";
}, {
isMut: true;
isSigner: false;
name: "transferQueue";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: true;
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: false;
isSigner: false;
name: "underlyingAssetMint";
}, {
isMut: false;
isSigner: false;
name: "stableAssetMint";
}, {
isMut: true;
isSigner: false;
name: "lpTokenMint";
}, {
isMut: false;
isSigner: false;
name: "priceOracle";
}, {
isMut: true;
isSigner: false;
name: "vaultTradingAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "processWithdraw";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: true;
isSigner: false;
name: "newTokenAccount";
}, {
isMut: false;
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";
}];
args: [];
name: "initTokenAccount";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "signer";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: true;
isSigner: false;
name: "tokenAccount";
}, {
isMut: false;
isSigner: false;
name: "mint";
}, {
isMut: false;
isSigner: false;
name: "programAuthority";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "closeTokenAccount";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "payer";
}, {
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "uniqueSeed";
type: "u16";
}];
name: "initTradingAccount";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: false;
isSigner: false;
name: "tradingAccount";
}, {
isMut: true;
isSigner: false;
name: "sourceTokenAccount";
}, {
isMut: true;
isSigner: false;
name: "receivingTokenAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "mint";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "amount";
type: "u64";
}];
name: "depositToTradingAccount";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: false;
isSigner: false;
name: "tradingAccount";
}, {
isMut: true;
isSigner: false;
name: "sourceTokenAccount";
}, {
isMut: true;
isSigner: false;
name: "receivingTokenAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenWhitelist";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "mint";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "amount";
type: "u64";
}];
name: "withdrawFromTradingAccount";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "owner";
}, {
isMut: true;
isSigner: false;
name: "transferRecord";
}, {
isMut: true;
isSigner: false;
name: "transferQueue";
}, {
isMut: false;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
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: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "cancelTransferRecord";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: true;
isSigner: false;
name: "buyerTradingAccount";
}, {
isMut: true;
isSigner: false;
name: "vaultTradingAccount";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "euroMeta";
}, {
isMut: true;
isSigner: false;
name: "collateralPool";
}, {
isMut: false;
isSigner: false;
name: "poolAuthority";
}, {
isMut: true;
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: false;
isSigner: false;
name: "priceOracle";
}, {
isMut: true;
isSigner: false;
name: "tradeFeeAccount";
}, {
isMut: false;
isSigner: false;
name: "euroPrimitiveProgram";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "bumps";
type: {
defined: "BuyOptionBumps";
};
}, {
name: "optionAmount";
type: "u64";
}, {
name: "maxAmountToPay";
type: "u64";
}, {
name: "seriesId";
type: "u16";
}];
name: "buyOption";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "owner";
}, {
isMut: true;
isSigner: false;
name: "sellerTradingAccount";
}, {
isMut: true;
isSigner: false;
name: "vaultTradingAccount";
}, {
isMut: true;
isSigner: false;
name: "optionVault";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "volatilityFeed";
}, {
isMut: false;
isSigner: false;
name: "euroMeta";
}, {
isMut: true;
isSigner: false;
name: "collateralPool";
}, {
isMut: false;
isSigner: false;
name: "poolAuthority";
}, {
isMut: true;
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: false;
isSigner: false;
name: "priceOracle";
}, {
isMut: true;
isSigner: false;
name: "tradeFeeAccount";
}, {
isMut: false;
isSigner: false;
name: "euroPrimitiveProgram";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "bumps";
type: {
defined: "SellOptionBumps";
};
}, {
name: "optionAmount";
type: "u64";
}, {
name: "minAmountToReceive";
type: "u64";
}, {
name: "seriesId";
type: "u16";
}];
name: "sellOption";
}, {
accounts: [{
isMut: true;
isSigner: true;
name: "keeper";
}, {
isMut: true;
isSigner: false;
name: "tradingAccount";
}, {
isMut: false;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "euroMetaV2";
}, {
isMut: false;
isSigner: false;
name: "expirationData";
}, {
isMut: false;
isSigner: false;
name: "poolAuthority";
}, {
isMut: true;
isSigner: false;
name: "collateralPool";
}, {
isMut: true;
isSigner: false;
name: "optionMint";
}, {
isMut: true;
isSigner: false;
name: "writerMint";
}, {
isMut: true;
isSigner: false;
name: "collateralTokenAccount";
}, {
isMut: false;
isSigner: false;
name: "euroPrimitiveProgram";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "seriesId";
type: "u16";
}];
name: "settleExpiredPosition";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}];
args: [{
name: "optionType";
type: "u8";
}, {
name: "expiration";
type: "i64";
}];
name: "removeExpirationGroup";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "taskerAuthority";
}, {
isMut: true;
isSigner: false;
name: "optionChain";
}, {
isMut: false;
isSigner: false;
name: "euroMetaV2";
}];
args: [];
name: "removeEuroMetaHistory";
}]
-
name: "dsov"
-
types: [{
name: "BuyOptionBumps";
type: {
fields: [{
name: "buyerCollateralTokenAccount";
type: "u8";
}, {
name: "vaultOptionTokenAccount";
type: "u8";
}, {
name: "vaultWriterTokenAccount";
type: "u8";
}, {
name: "buyerOptionTokenAccount";
type: "u8";
}, {
name: "buyerWriterTokenAccount";
type: "u8";
}];
kind: "struct";
};
}, {
name: "SellOptionBumps";
type: {
fields: [{
name: "sellerCollateralTokenAccount";
type: "u8";
}, {
name: "sellerOptionTokenAccount";
type: "u8";
}, {
name: "sellerWriterTokenAccount";
type: "u8";
}, {
name: "vaultOptionTokenAccount";
type: "u8";
}, {
name: "vaultWriterTokenAccount";
type: "u8";
}];
kind: "struct";
};
}, {
name: "DataFeed";
type: {
fields: [{
name: "volatilityFeed";
type: "publicKey";
}, {
name: "underlyingPriceOracle";
type: "publicKey";
}, {
name: "oracleProviderId";
type: "u8";
}, {
name: "padding1";
type: {
array: ["u8", 15];
};
}];
kind: "struct";
};
}, {
name: "OptionGroup";
type: {
fields: [{
name: "expirationGroups";
type: {
array: [{
defined: "ExpirationGroup";
}, 6];
};
}];
kind: "struct";
};
}, {
name: "ExpirationGroup";
type: {
fields: [{
name: "expiration";
type: "i64";
}, {
name: "padding1";
type: "u64";
}, {
name: "optionSeries";
type: {
array: [{
defined: "OptionSeries";
}, 16];
};
}];
kind: "struct";
};
}, {
name: "OptionSeries";
type: {
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: "reserved2";
type: {
array: ["u64", 7];
};
}, {
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];
};
}];
kind: "struct";
};
}, {
name: "Greeks";
type: {
fields: [{
name: "delta";
type: "i128";
}, {
name: "theta";
type: "i128";
}, {
name: "gamma";
type: "i128";
}, {
name: "vega";
type: "i128";
}];
kind: "struct";
};
}, {
name: "EuroMetaHistory";
type: {
fields: [{
name: "seriesId";
type: "u16";
}, {
name: "padding1";
type: {
array: ["u8", 14];
};
}, {
name: "euroMetaV2";
type: "publicKey";
}];
kind: "struct";
};
}, {
name: "Fees";
type: {
fields: [{
name: "capitalUtilizationFeeBps";
type: "u16";
}, {
name: "tradeFeeBps";
type: "u16";
}, {
name: "underlyingFeeBps";
type: "u16";
}, {
name: "withdrawalLpFeeBps";
type: "u16";
}, {
name: "padding1";
type: {
array: ["u8", 8];
};
}];
kind: "struct";
};
}, {
name: "LpParams";
type: {
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];
};
}];
kind: "struct";
};
}, {
name: "TradingParams";
type: {
fields: [{
name: "haltDurationBeforeExpiry";
type: "i64";
}, {
name: "reserved1";
type: "u64";
}, {
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: "padding1";
type: {
array: ["u8", 8];
};
}];
kind: "struct";
};
}, {
name: "PriceCurveParams";
type: {
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: "reserved1";
type: {
array: ["u8", 8];
};
}];
kind: "struct";
};
}, {
name: "AccountSummary";
type: {
fields: [{
name: "totalCapitalInStable";
type: "i128";
}, {
name: "freeCapitalInStable";
type: "i128";
}, {
name: "navInStable";
type: "i128";
}, {
name: "navInUnderlying";
type: "i128";
}, {
name: "normalizedGreeks";
type: {
defined: "Greeks";
};
}];
kind: "struct";
};
}, {
name: "ChainGroup";
type: {
fields: [{
name: "optionChain";
type: "publicKey";
}, {
name: "entries";
type: {
array: [{
defined: "EuroMetaTokenEntry";
}, 256];
};
}];
kind: "struct";
};
}, {
name: "EuroMetaTokenEntry";
type: {
fields: [{
name: "mint";
type: "publicKey";
}, {
name: "euroMetaV2";
type: "publicKey";
}];
kind: "struct";
};
}, {
name: "AssetGroup";
type: {
fields: [{
name: "summary";
type: {
defined: "AssetGroupSummary";
};
}, {
name: "optionChain";
type: "publicKey";
}, {
name: "positions";
type: {
vec: {
defined: "Position";
};
};
}];
kind: "struct";
};
}, {
name: "AssetGroupSummary";
type: {
fields: [{
name: "cummulativeMarkUnderlying";
type: "i128";
}, {
name: "cummulativeMarkStable";
type: "i128";
}, {
name: "totalLockedStable";
type: "i128";
}, {
name: "totalLockedUnderlying";
type: "i128";
}, {
name: "cummulativeGreeks";
type: {
defined: "Greeks";
};
}];
kind: "struct";
};
}, {
name: "Position";
type: {
fields: [{
name: "seriesId";
type: "u16";
}, {
name: "padding1";
type: {
array: ["u8", 6];
};
}, {
name: "contracts";
type: "i64";
}, {
name: "cashflow";
type: "i64";
}, {
name: "feesPaid";
type: "u64";
}, {
name: "reserved1";
type: "u64";
}, {
name: "reserved2";
type: "u64";
}];
kind: "struct";
};
}, {
name: "AssetVolatility";
type: {
fields: [{
name: "assetMint";
type: "publicKey";
}, {
name: "lastUpdated";
type: "i64";
}, {
name: "markVolBps";
type: "u32";
}, {
name: "padding1";
type: {
array: ["u8", 4];
};
}, {
name: "reserved1";
type: "u64";
}, {
name: "reserved2";
type: "u64";
}, {
name: "reserved3";
type: "u64";
}];
kind: "struct";
};
}, {
name: "GreekType";
type: {
kind: "enum";
variants: [{
name: "Delta";
}, {
name: "Gamma";
}, {
name: "Theta";
}, {
name: "Vega";
}];
};
}, {
name: "TransferType";
type: {
kind: "enum";
variants: [{
name: "Deposit";
}, {
name: "Withdraw";
}];
};
}, {
name: "VaultStatus";
type: {
kind: "enum";
variants: [{
name: "Pending";
}, {
name: "Active";
}, {
name: "HaltedForExpiry";
}, {
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: "VIP1";
}, {
name: "VIP2";
}, {
name: "VIP3";
}, {
name: "Maker";
}];
};
}]
-
version: "0.1.0"