Carrot: {
accounts: [
{
name: "vault";
type: {
fields: [
{ name: "authority"; type: "publicKey" },
{ name: "shares"; type: "publicKey" },
{ name: "fee"; type: { defined: "Fee" } },
{ name: "paused"; type: "bool" },
{ name: "assetIndex"; type: "u16" },
{ name: "strategyIndex"; type: "u16" },
{ name: "assets"; type: { vec: { defined: "Asset" } } },
{ name: "strategies"; type: { vec: { defined: "StrategyRecord" } } },
];
kind: "struct";
};
},
{
name: "strategy";
type: {
fields: [
{ name: "metadata"; type: { defined: "StrategyMetadata" } },
{ name: "strategyType"; type: { defined: "StrategyType" } },
];
kind: "struct";
};
},
];
errors: [
{ code: 6000; msg: "Asset Already Exists"; name: "AssetAlreadyExists" },
{ code: 6001; msg: "Asset Not Found"; name: "AssetNotFound" },
{ code: 6002; msg: "Oracle Not Found"; name: "OracleNotFound" },
{
code: 6003;
msg: "Oracle Returned Stale Price";
name: "OracleStalePrice";
},
{ code: 6004; msg: "Strategy Not Found"; name: "StrategyNotFound" },
{ code: 6005; msg: "Ata Not Found"; name: "AtaNotFound" },
{
code: 6006;
msg: "Strategy Already Exists";
name: "StrategyAlreadyExists";
},
{ code: 6007; msg: "Invalid Strategy Type"; name: "InvalidStrategyType" },
{
code: 6008;
msg: "Strategy Balance Calculation Error";
name: "StrategyBalanceCalculationError";
},
{ code: 6009; msg: "Vault is Paused"; name: "VaultIsPaused" },
{
code: 6010;
msg: "Invalid Vault Authority";
name: "InvalidVaultAuthority";
},
{ code: 6011; msg: "Account Migration Error"; name: "MigrationError" },
{
code: 6012;
msg: "Invalid Price Confidence Interval";
name: "InvalidPriceConf";
},
{
code: 6013;
msg: "Invalid Strategy Accounts";
name: "InvalidStrategyAccounts";
},
{ code: 6014; msg: "Strategy Not Empty"; name: "StrategyNotEmpty" },
{ code: 6015; msg: "Asset Not Empty"; name: "AssetNotEmpty" },
{ code: 6016; msg: "Invalid Fee Bps"; name: "InvalidFeeBps" },
{ code: 6017; msg: "Invalid Return Data"; name: "InvalidReturnData" },
{ code: 6018; msg: "Invalid Coin Supply"; name: "InvalidCoinSupply" },
{ code: 6019; msg: "Invalid NAV"; name: "InvalidNav" },
{ code: 6020; msg: "Math Error"; name: "MathError" },
];
instructions: [
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "shares" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [{ name: "args"; type: { defined: "InitVaultArgs" } }];
name: "initVault";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "newAuthority" },
{ isMut: true; isSigner: true; name: "oldAuthority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [];
name: "transferVaultAuthority";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: true; name: "authority" },
];
args: [{ name: "args"; type: { defined: "PauseVaultArgs" } }];
name: "pauseVault";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [];
name: "migrateVaultAccount";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "shares" },
{ isMut: true; isSigner: false; name: "sharesDestination" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "distributeVaultFees";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: true; name: "authority" },
];
args: [{ name: "args"; type: { defined: "UpdateFeeArgs" } }];
name: "updateFee";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "shares" },
{ isMut: true; isSigner: false; name: "userSharesAta" },
{ isMut: false; isSigner: false; name: "asset" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: false; name: "userAssetAta" },
{ isMut: true; isSigner: true; name: "user" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "assetTokenProgram" },
{ isMut: false; isSigner: false; name: "sharesTokenProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [{ name: "args"; type: { defined: "IssueArgs" } }];
name: "issue";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "shares" },
{ isMut: true; isSigner: false; name: "userSharesAta" },
{ isMut: false; isSigner: false; name: "asset" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: false; name: "userAssetAta" },
{ isMut: true; isSigner: true; name: "user" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "assetTokenProgram" },
{ isMut: false; isSigner: false; name: "sharesTokenProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [{ name: "args"; type: { defined: "RedeemArgs" } }];
name: "redeem";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: false; isSigner: false; name: "assetOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [];
name: "addAsset";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: true; name: "authority" },
];
args: [{ name: "args"; type: { defined: "UpdateAssetArgs" } }];
name: "updateAsset";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "asset" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
];
args: [];
name: "removeAsset";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [];
name: "removeStrategy";
},
{
accounts: [
{ isMut: false; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [{ name: "args"; type: { defined: "UpdateStrategyArgs" } }];
name: "updateStrategy";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: false; isSigner: false; name: "marginfiGroup" },
{ isMut: true; isSigner: true; name: "marginfiAccount" },
{ isMut: false; isSigner: false; name: "marginfiBank" },
{ isMut: false; isSigner: false; name: "marginfiBankLiquidityVault" },
{
isMut: false;
isSigner: false;
name: "marginfiBankLiquidityVaultAuthority";
},
{ isMut: false; isSigner: false; name: "marginfiOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "marginfiProgram" },
];
args: [
{ name: "args"; type: { defined: "MarginfiSupplyStrategyInitArgs" } },
];
name: "marginfiSupplyStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "marginfiGroup" },
{ isMut: true; isSigner: false; name: "marginfiAccount" },
{ isMut: true; isSigner: false; name: "marginfiBank" },
{ isMut: true; isSigner: false; name: "marginfiBankLiquidityVault" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "marginfiProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "MarginfiSupplyStrategyDepositArgs" };
},
];
name: "marginfiSupplyStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "marginfiGroup" },
{ isMut: true; isSigner: false; name: "marginfiAccount" },
{ isMut: true; isSigner: false; name: "marginfiBank" },
{ isMut: true; isSigner: false; name: "marginfiBankLiquidityVault" },
{
isMut: true;
isSigner: false;
name: "marginfiBankLiquidityVaultAuthority";
},
{ isMut: false; isSigner: false; name: "marginfiOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "marginfiProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "MarginfiSupplyStrategyWithdrawArgs" };
},
];
name: "marginfiSupplyStrategyWithdraw";
},
{
accounts: [
{ isMut: false; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "marginfiGroup" },
{ isMut: true; isSigner: false; name: "marginfiAccount" },
{ isMut: true; isSigner: false; name: "marginfiBank" },
{ isMut: true; isSigner: false; name: "marginfiEmissionsVault" },
{ isMut: false; isSigner: false; name: "marginfiEmissionsAuth" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "marginfiProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "marginfiSupplyStrategyClaimEmissions";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "assetPythOracle" },
{ isMut: true; isSigner: false; name: "scopePrices" },
{ isMut: true; isSigner: false; name: "userMetadata" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: true; isSigner: false; name: "obligationFarm" },
{ isMut: true; isSigner: false; name: "lendingMarket" },
{ isMut: true; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: true; isSigner: false; name: "reserve" },
{ isMut: false; isSigner: false; name: "reserveCollateralMint" },
{ isMut: false; isSigner: false; name: "reserveLiquiditySupply" },
{
isMut: false;
isSigner: false;
name: "reserveDestinationDepositCollateral";
},
{ isMut: true; isSigner: false; name: "reserveFarmState" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "klendProgram" },
{ isMut: false; isSigner: false; name: "kfarmsProgram" },
];
args: [
{ name: "args"; type: { defined: "KlendSupplyStrategyInitArgs" } },
];
name: "klendSupplyStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: false; name: "reserve" },
{ isMut: true; isSigner: false; name: "reserveLiquiditySupply" },
{ isMut: true; isSigner: false; name: "reserveCollateralMint" },
{
isMut: true;
isSigner: false;
name: "reserveDestinationDepositCollateral";
},
{ isMut: true; isSigner: false; name: "vaultCollateralAta" },
{ isMut: false; isSigner: false; name: "lendingMarket" },
{ isMut: true; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: false; isSigner: false; name: "oracle" },
{ isMut: false; isSigner: false; name: "scopePrices" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "instructionsSysvar" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "collateralTokenProgram" },
{ isMut: false; isSigner: false; name: "assetTokenProgram" },
{ isMut: false; isSigner: false; name: "klendProgram" },
{ isMut: false; isSigner: false; name: "kfarmsProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{ name: "args"; type: { defined: "KlendSupplyStrategyDepositArgs" } },
];
name: "klendSupplyStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: false; name: "reserve" },
{ isMut: true; isSigner: false; name: "reserveLiquiditySupply" },
{ isMut: true; isSigner: false; name: "reserveCollateralMint" },
{
isMut: true;
isSigner: false;
name: "reserveDestinationDepositCollateral";
},
{ isMut: true; isSigner: false; name: "vaultCollateralAta" },
{ isMut: false; isSigner: false; name: "lendingMarket" },
{ isMut: true; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: false; isSigner: false; name: "oracle" },
{ isMut: false; isSigner: false; name: "scopePrices" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "instructionsSysvar" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "collateralTokenProgram" },
{ isMut: false; isSigner: false; name: "assetTokenProgram" },
{ isMut: false; isSigner: false; name: "klendProgram" },
{ isMut: false; isSigner: false; name: "kfarmsProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "KlendSupplyStrategyWithdrawArgs" };
},
];
name: "klendSupplyStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "scopePrices" },
{ isMut: true; isSigner: false; name: "userState" },
{ isMut: true; isSigner: false; name: "farmState" },
{ isMut: false; isSigner: false; name: "kfarmsGlobalConfig" },
{ isMut: false; isSigner: false; name: "kfarmsVaultsAuthority" },
{ isMut: true; isSigner: false; name: "kfarmsRewardsVault" },
{ isMut: true; isSigner: false; name: "kfarmsRewardsTreasuryVault" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "kfarmsProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "klendSupplyStrategyClaimEmissions";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: false; isSigner: false; name: "assetPythOracle" },
{ isMut: false; isSigner: false; name: "assetSwitchboardOracle" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: false; isSigner: false; name: "lendingMarket" },
{ isMut: false; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: false; isSigner: false; name: "reserve" },
{ isMut: false; isSigner: false; name: "reserveCollateralMint" },
{ isMut: false; isSigner: false; name: "reserveLiquiditySupply" },
{ isMut: false; isSigner: false; name: "reserveDepositCollateralAta" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "solendProgram" },
];
args: [
{ name: "args"; type: { defined: "SolendSupplyStrategyInitArgs" } },
];
name: "solendSupplyStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetPythOracle" },
{ isMut: false; isSigner: false; name: "assetSwitchboardOracle" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: true; isSigner: false; name: "lendingMarket" },
{ isMut: false; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: true; isSigner: false; name: "reserve" },
{ isMut: true; isSigner: false; name: "reserveLiquiditySupply" },
{ isMut: true; isSigner: false; name: "reserveCollateralMint" },
{ isMut: true; isSigner: false; name: "vaultCollateralAta" },
{ isMut: true; isSigner: false; name: "depositCollateralAta" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "solendProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "SolendSupplyStrategyDepositArgs" };
},
];
name: "solendSupplyStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetPythOracle" },
{ isMut: false; isSigner: false; name: "assetSwitchboardOracle" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: true; isSigner: false; name: "lendingMarket" },
{ isMut: false; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: true; isSigner: false; name: "reserve" },
{ isMut: true; isSigner: false; name: "reserveLiquiditySupply" },
{ isMut: true; isSigner: false; name: "reserveCollateralMint" },
{ isMut: true; isSigner: false; name: "vaultCollateralAta" },
{ isMut: true; isSigner: false; name: "withdrawCollateralAta" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "solendProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "SolendSupplyStrategyWithdrawArgs" };
},
];
name: "solendSupplyStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: false; isSigner: false; name: "mangoGroup" },
{ isMut: true; isSigner: false; name: "mangoAccount" },
{ isMut: false; isSigner: false; name: "mangoBank" },
{ isMut: false; isSigner: false; name: "mangoVault" },
{ isMut: false; isSigner: false; name: "pythOracle" },
{ isMut: false; isSigner: false; name: "switchboardOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "mangoProgram" },
];
args: [
{ name: "args"; type: { defined: "MangoSupplyStrategyInitArgs" } },
];
name: "mangoSupplyStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "mangoGroup" },
{ isMut: true; isSigner: false; name: "mangoAccount" },
{ isMut: true; isSigner: false; name: "mangoBank" },
{ isMut: true; isSigner: false; name: "mangoVault" },
{ isMut: false; isSigner: false; name: "pythOracle" },
{ isMut: false; isSigner: false; name: "switchboardOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "mangoProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{ name: "args"; type: { defined: "MangoSupplyStrategyDepositArgs" } },
];
name: "mangoSupplyStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "mangoGroup" },
{ isMut: true; isSigner: false; name: "mangoAccount" },
{ isMut: true; isSigner: false; name: "mangoBank" },
{ isMut: true; isSigner: false; name: "mangoVault" },
{ isMut: false; isSigner: false; name: "pythOracle" },
{ isMut: false; isSigner: false; name: "switchboardOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "mangoProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "MangoSupplyStrategyWithdrawArgs" };
},
];
name: "mangoSupplyStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftState" },
{ isMut: false; isSigner: false; name: "driftSigner" },
{ isMut: false; isSigner: false; name: "driftSpotMarket" },
{ isMut: false; isSigner: false; name: "driftPerpMarket" },
{ isMut: false; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: false; isSigner: false; name: "spotPythOracle" },
{ isMut: false; isSigner: false; name: "perpPythOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
];
args: [
{ name: "args"; type: { defined: "DriftSupplyStrategyInitArgs" } },
];
name: "driftSupplyStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: true; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{ name: "args"; type: { defined: "DriftSupplyStrategyDepositArgs" } },
];
name: "driftSupplyStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: false; isSigner: false; name: "driftSigner" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "DriftSupplyStrategyWithdrawArgs" };
},
];
name: "driftSupplyStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: false; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: true; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundStake" },
{ isMut: false; isSigner: false; name: "driftInsuranceFundVault" },
{ isMut: true; isSigner: false; name: "driftSigner" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
];
args: [
{
name: "args";
type: { defined: "DriftInsuranceFundStrategyInitArgs" };
},
];
name: "driftInsuranceFundStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: true; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: false; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundStake" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundVault" },
{ isMut: true; isSigner: false; name: "driftSigner" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "DriftInsuranceFundStrategyStakeArgs" };
},
];
name: "driftInsuranceFundStrategyStake";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundStake" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundVault" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "driftProgram" },
];
args: [
{
name: "args";
type: { defined: "DriftInsuranceFundStrategyUnstakeArgs" };
},
];
name: "driftInsuranceFundStrategyUnstake";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: false; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundStake" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundVault" },
{ isMut: true; isSigner: false; name: "driftSigner" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "driftInsuranceFundStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: false; isSigner: false; name: "assetTokenAccount" },
{ isMut: false; isSigner: false; name: "chest" },
{ isMut: false; isSigner: false; name: "coinTokenAccount" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [{ name: "args"; type: { defined: "ChestStrategyInitArgs" } }];
name: "chestStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "chest" },
{ isMut: true; isSigner: false; name: "coin" },
{ isMut: true; isSigner: false; name: "chestAssetReserve" },
{ isMut: true; isSigner: false; name: "driftVault" },
{ isMut: true; isSigner: false; name: "driftVaultDepositor" },
{ isMut: true; isSigner: false; name: "driftVaultTokenAccount" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: true; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: true; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "vaultAssetTokenAccount" },
{ isMut: true; isSigner: false; name: "vaultCoinTokenAccount" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "chestProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
{ isMut: false; isSigner: false; name: "driftVaultsProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [{ name: "args"; type: { defined: "ChestStrategyDepositArgs" } }];
name: "chestStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "chest" },
{ isMut: true; isSigner: false; name: "coin" },
{ isMut: true; isSigner: false; name: "chestCoinReserve" },
{ isMut: true; isSigner: false; name: "redemptionRequest" },
{ isMut: true; isSigner: false; name: "driftVault" },
{ isMut: true; isSigner: false; name: "driftVaultDepositor" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: false; isSigner: false; name: "assetDestination" },
{ isMut: true; isSigner: false; name: "vaultCoinTokenAccount" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "chestProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "ChestStrategyRequestWithdrawArgs" };
},
];
name: "chestStrategyRequestWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: false; name: "strategyAssetTokenAccount" },
{ isMut: true; isSigner: false; name: "chest" },
{ isMut: false; isSigner: false; name: "chestRedemptionRequest" },
{ isMut: true; isSigner: false; name: "coin" },
{ isMut: true; isSigner: false; name: "vaultCoinTokenAccount" },
{ isMut: true; isSigner: false; name: "driftVault" },
{ isMut: true; isSigner: false; name: "driftVaultDepositor" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "chestProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "chestStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "shares" },
{ isMut: true; isSigner: false; name: "feed" },
{ isMut: false; isSigner: false; name: "queue" },
{ isMut: false; isSigner: false; name: "programState" },
{ isMut: false; isSigner: false; name: "recentSlothashes" },
{ isMut: true; isSigner: false; name: "rewardVault" },
{ isMut: false; isSigner: false; name: "tokenMint" },
{ isMut: false; isSigner: false; name: "switchboardOnDemandProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "updateSwitchboardOraclePrice";
},
];
name: "carrot";
types: [
{
name: "ChestStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "ChestStrategyInitArgs";
type: { fields: [{ name: "name"; type: "string" }]; kind: "struct" };
},
{
name: "ChestStrategyRequestWithdrawArgs";
type: { fields: [{ name: "assetAmount"; type: "u64" }]; kind: "struct" };
},
{
name: "DriftInsuranceFundStrategyInitArgs";
type: {
fields: [
{ name: "name"; type: "string" },
{ name: "driftMarketIndex"; type: "u16" },
];
kind: "struct";
};
},
{
name: "DriftInsuranceFundStrategyStakeArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "DriftInsuranceFundStrategyUnstakeArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "DriftSupplyStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "DriftSupplyStrategyInitArgs";
type: {
fields: [
{ name: "name"; type: "string" },
{ name: "driftSubAccountId"; type: "u16" },
{ name: "driftMarketIndex"; type: "u16" },
];
kind: "struct";
};
},
{
name: "DriftSupplyStrategyWithdrawArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "InitVaultArgs";
type: {
fields: [
{ name: "redemptionFeeBps"; type: "u16" },
{ name: "managementFeeBps"; type: "u16" },
{ name: "performanceFeeBps"; type: "u16" },
];
kind: "struct";
};
},
{
name: "IssueArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "KlendSupplyStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "KlendSupplyStrategyInitArgs";
type: { fields: [{ name: "name"; type: "string" }]; kind: "struct" };
},
{
name: "KlendSupplyStrategyWithdrawArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "MangoSupplyStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "MangoSupplyStrategyInitArgs";
type: { fields: [{ name: "name"; type: "string" }]; kind: "struct" };
},
{
name: "MangoSupplyStrategyWithdrawArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "MarginfiSupplyStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "MarginfiSupplyStrategyInitArgs";
type: { fields: [{ name: "name"; type: "string" }]; kind: "struct" };
},
{
name: "MarginfiSupplyStrategyWithdrawArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "PauseVaultArgs";
type: { fields: [{ name: "paused"; type: "bool" }]; kind: "struct" };
},
{
name: "RedeemArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "SolendSupplyStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "SolendSupplyStrategyInitArgs";
type: { fields: [{ name: "name"; type: "string" }]; kind: "struct" };
},
{
name: "SolendSupplyStrategyWithdrawArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "UpdateAssetArgs";
type: {
fields: [
{ name: "assetId"; type: "u16" },
{ name: "assetNewOracle"; type: "publicKey" },
];
kind: "struct";
};
},
{
name: "UpdateFeeArgs";
type: {
fields: [
{ name: "newRedemptionFeeBps"; type: { option: "u16" } },
{ name: "newManagementFeeBps"; type: { option: "u16" } },
{ name: "newPerformanceFeeBps"; type: { option: "u16" } },
];
kind: "struct";
};
},
{
name: "UpdateStrategyArgs";
type: {
fields: [
{ name: "newStrategyType"; type: { defined: "StrategyType" } },
];
kind: "struct";
};
},
{
name: "Asset";
type: {
fields: [
{ name: "assetId"; type: "u16" },
{ name: "mint"; type: "publicKey" },
{ name: "decimals"; type: "u8" },
{ name: "ata"; type: "publicKey" },
{ name: "oracle"; type: "publicKey" },
];
kind: "struct";
};
},
{
name: "StrategyRecord";
type: {
fields: [
{ name: "strategyId"; type: "u16" },
{ name: "assetId"; type: "u16" },
{ name: "balance"; type: "u64" },
{ name: "netEarnings"; type: "i64" },
];
kind: "struct";
};
},
{
name: "StrategyMetadata";
type: {
fields: [
{ name: "name"; type: "string" },
{ name: "strategyId"; type: "u16" },
{ name: "assetMint"; type: "publicKey" },
{ name: "vault"; type: "publicKey" },
];
kind: "struct";
};
},
{
name: "Fee";
type: {
fields: [
{ name: "redemptionFeeBps"; type: "u16" },
{ name: "redemptionFeeAccumulated"; type: "u64" },
{ name: "managementFeeBps"; type: "u16" },
{ name: "managementFeeLastUpdate"; type: "i64" },
{ name: "managementFeeAccumulated"; type: "u64" },
{ name: "performanceFeeBps"; type: "u16" },
];
kind: "struct";
};
},
{
name: "IssueEvent";
type: {
fields: [
{ name: "depositor"; type: "publicKey" },
{ name: "mint"; type: "publicKey" },
{ name: "amount"; type: "u64" },
{ name: "sharesMinted"; type: "u64" },
{ name: "managementFee"; type: "u64" },
{ name: "tvl"; type: "u128" },
];
kind: "struct";
};
},
{
name: "RedeemEvent";
type: {
fields: [
{ name: "withdrawer"; type: "publicKey" },
{ name: "mint"; type: "publicKey" },
{ name: "amount"; type: "u64" },
{ name: "sharesBurned"; type: "u64" },
{ name: "redemptionFee"; type: "u64" },
{ name: "managementFee"; type: "u64" },
{ name: "tvl"; type: "u128" },
];
kind: "struct";
};
},
{
name: "StrategyDepositEvent";
type: {
fields: [
{ name: "strategy"; type: "publicKey" },
{ name: "mint"; type: "publicKey" },
{ name: "depositAmount"; type: "u64" },
{ name: "netEarnings"; type: "i64" },
{ name: "strategyBalance"; type: "u64" },
];
kind: "struct";
};
},
{
name: "StrategyWithdrawEvent";
type: {
fields: [
{ name: "strategy"; type: "publicKey" },
{ name: "mint"; type: "publicKey" },
{ name: "withdrawAmount"; type: "u64" },
{ name: "netEarnings"; type: "i64" },
{ name: "strategyBalance"; type: "u64" },
];
kind: "struct";
};
},
{
name: "StrategyClaimEmissionsEvent";
type: {
fields: [
{ name: "strategy"; type: "publicKey" },
{ name: "mint"; type: "publicKey" },
];
kind: "struct";
};
},
{
name: "DistributeVaultFeesEvent";
type: {
fields: [
{ name: "managementFeeAmountDistributed"; type: "u64" },
{ name: "performanceFeeAmountDistributed"; type: "u64" },
{ name: "redemptionFeeAmountDistributed"; type: "u64" },
];
kind: "struct";
};
},
{
name: "UpdateSwitchboardOraclePriceEvent";
type: {
fields: [
{ name: "vaultNav"; type: "i128" },
{ name: "vaultTvl"; type: "u128" },
{ name: "sharesSupply"; type: "u64" },
];
kind: "struct";
};
},
{
name: "StrategyType";
type: {
kind: "enum";
variants: [
{
fields: [
{ name: "account"; type: "publicKey" },
{ name: "group"; type: "publicKey" },
{ name: "bank"; type: "publicKey" },
{ name: "bank_liquidity_vault"; type: "publicKey" },
{ name: "bank_liquidity_vault_authority"; type: "publicKey" },
{ name: "oracle"; type: "publicKey" },
];
name: "MarginfiSupply";
},
{
fields: [
{ name: "reserve"; type: "publicKey" },
{ name: "reserve_collateral_mint"; type: "publicKey" },
{ name: "reserve_liquidity_supply"; type: "publicKey" },
{ name: "reserve_destination_deposit_collateral"; type: "publicKey" },
{ name: "reserve_farm_state"; type: "publicKey" },
{ name: "lending_market"; type: "publicKey" },
{ name: "oracle"; type: "publicKey" },
{ name: "scope_prices"; type: "publicKey" },
];
name: "KlendSupply";
},
{
fields: [
{ name: "reserve"; type: "publicKey" },
{ name: "reserve_collateral_mint"; type: "publicKey" },
{ name: "reserve_liquidity_supply"; type: "publicKey" },
{ name: "deposit_collateral_ata"; type: "publicKey" },
{ name: "lending_market"; type: "publicKey" },
{ name: "lending_market_authority"; type: "publicKey" },
{ name: "pyth_oracle"; type: "publicKey" },
{ name: "switchboard_oracle"; type: "publicKey" },
];
name: "SolendSupply";
},
{
fields: [
{ name: "group"; type: "publicKey" },
{ name: "account"; type: "publicKey" },
{ name: "bank"; type: "publicKey" },
{ name: "vault"; type: "publicKey" },
{ name: "pyth_oracle"; type: "publicKey" },
{ name: "switchboard_oracle"; type: "publicKey" },
];
name: "MangoSupply";
},
{
fields: [
{ name: "state"; type: "publicKey" },
{ name: "signer"; type: "publicKey" },
{ name: "spot_market"; type: "publicKey" },
{ name: "spot_market_vault"; type: "publicKey" },
{ name: "perp_market"; type: "publicKey" },
{ name: "spot_pyth_oracle"; type: "publicKey" },
{ name: "perp_pyth_oracle"; type: "publicKey" },
{ name: "sub_account_id"; type: "u16" },
{ name: "market_index"; type: "u16" },
];
name: "DriftSupply";
},
{
fields: [
{ name: "state"; type: "publicKey" },
{ name: "spot_market"; type: "publicKey" },
{ name: "spot_market_vault"; type: "publicKey" },
{ name: "market_index"; type: "u16" },
];
name: "DriftInsuranceFund";
},
{
fields: [
{ name: "chest"; type: "publicKey" },
{ name: "coin"; type: "publicKey" },
{ name: "drift_vault"; type: "publicKey" },
{ name: "coin_token_account"; type: "publicKey" },
{ name: "asset_destination"; type: "publicKey" },
{ name: "redemption_request"; type: { option: "publicKey" } },
{ name: "spot_market_index"; type: "u16" },
];
name: "Chest";
},
];
};
},
{
name: "StrategyTypeSelection";
type: {
kind: "enum";
variants: [
{ name: "MarginfiSupply" },
{ name: "KlendSupply" },
{ name: "SolendSupply" },
{ name: "MangoSupply" },
{ name: "DriftSupply" },
{ name: "DriftInsuranceFund" },
{ name: "Chest" },
];
};
},
{
name: "CarrotEvent";
type: {
kind: "enum";
variants: [
{ fields: [{ defined: "IssueEvent" }]; name: "Issue" },
{ fields: [{ defined: "RedeemEvent" }]; name: "Redeem" },
{
fields: [{ defined: "StrategyDepositEvent" }];
name: "StrategyDeposit";
},
{
fields: [{ defined: "StrategyWithdrawEvent" }];
name: "StrategyWithdraw";
},
{
fields: [{ defined: "StrategyClaimEmissionsEvent" }];
name: "StrategyClaimEmissions";
},
{
fields: [{ defined: "DistributeVaultFeesEvent" }];
name: "DistributeVaultFees";
},
{
fields: [{ defined: "UpdateSwitchboardOraclePriceEvent" }];
name: "UpdateSwitchboardOraclePrice";
},
];
};
},
{
name: "RoundingMode";
type: {
kind: "enum";
variants: [{ name: "RoundUp" }, { name: "RoundDown" }, { name: "Avg" }];
};
},
];
version: "0.1.0";
}
Type declaration
accounts: [
{
name: "vault";
type: {
fields: [
{ name: "authority"; type: "publicKey" },
{ name: "shares"; type: "publicKey" },
{ name: "fee"; type: { defined: "Fee" } },
{ name: "paused"; type: "bool" },
{ name: "assetIndex"; type: "u16" },
{ name: "strategyIndex"; type: "u16" },
{ name: "assets"; type: { vec: { defined: "Asset" } } },
{ name: "strategies"; type: { vec: { defined: "StrategyRecord" } } },
];
kind: "struct";
};
},
{
name: "strategy";
type: {
fields: [
{ name: "metadata"; type: { defined: "StrategyMetadata" } },
{ name: "strategyType"; type: { defined: "StrategyType" } },
];
kind: "struct";
};
},
]
errors: [
{ code: 6000; msg: "Asset Already Exists"; name: "AssetAlreadyExists" },
{ code: 6001; msg: "Asset Not Found"; name: "AssetNotFound" },
{ code: 6002; msg: "Oracle Not Found"; name: "OracleNotFound" },
{
code: 6003;
msg: "Oracle Returned Stale Price";
name: "OracleStalePrice";
},
{ code: 6004; msg: "Strategy Not Found"; name: "StrategyNotFound" },
{ code: 6005; msg: "Ata Not Found"; name: "AtaNotFound" },
{
code: 6006;
msg: "Strategy Already Exists";
name: "StrategyAlreadyExists";
},
{ code: 6007; msg: "Invalid Strategy Type"; name: "InvalidStrategyType" },
{
code: 6008;
msg: "Strategy Balance Calculation Error";
name: "StrategyBalanceCalculationError";
},
{ code: 6009; msg: "Vault is Paused"; name: "VaultIsPaused" },
{
code: 6010;
msg: "Invalid Vault Authority";
name: "InvalidVaultAuthority";
},
{ code: 6011; msg: "Account Migration Error"; name: "MigrationError" },
{
code: 6012;
msg: "Invalid Price Confidence Interval";
name: "InvalidPriceConf";
},
{
code: 6013;
msg: "Invalid Strategy Accounts";
name: "InvalidStrategyAccounts";
},
{ code: 6014; msg: "Strategy Not Empty"; name: "StrategyNotEmpty" },
{ code: 6015; msg: "Asset Not Empty"; name: "AssetNotEmpty" },
{ code: 6016; msg: "Invalid Fee Bps"; name: "InvalidFeeBps" },
{ code: 6017; msg: "Invalid Return Data"; name: "InvalidReturnData" },
{ code: 6018; msg: "Invalid Coin Supply"; name: "InvalidCoinSupply" },
{ code: 6019; msg: "Invalid NAV"; name: "InvalidNav" },
{ code: 6020; msg: "Math Error"; name: "MathError" },
]
instructions: [
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "shares" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [{ name: "args"; type: { defined: "InitVaultArgs" } }];
name: "initVault";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "newAuthority" },
{ isMut: true; isSigner: true; name: "oldAuthority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [];
name: "transferVaultAuthority";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: true; name: "authority" },
];
args: [{ name: "args"; type: { defined: "PauseVaultArgs" } }];
name: "pauseVault";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [];
name: "migrateVaultAccount";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "shares" },
{ isMut: true; isSigner: false; name: "sharesDestination" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "distributeVaultFees";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: true; name: "authority" },
];
args: [{ name: "args"; type: { defined: "UpdateFeeArgs" } }];
name: "updateFee";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "shares" },
{ isMut: true; isSigner: false; name: "userSharesAta" },
{ isMut: false; isSigner: false; name: "asset" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: false; name: "userAssetAta" },
{ isMut: true; isSigner: true; name: "user" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "assetTokenProgram" },
{ isMut: false; isSigner: false; name: "sharesTokenProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [{ name: "args"; type: { defined: "IssueArgs" } }];
name: "issue";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "shares" },
{ isMut: true; isSigner: false; name: "userSharesAta" },
{ isMut: false; isSigner: false; name: "asset" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: false; name: "userAssetAta" },
{ isMut: true; isSigner: true; name: "user" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "assetTokenProgram" },
{ isMut: false; isSigner: false; name: "sharesTokenProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [{ name: "args"; type: { defined: "RedeemArgs" } }];
name: "redeem";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: false; isSigner: false; name: "assetOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [];
name: "addAsset";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: true; name: "authority" },
];
args: [{ name: "args"; type: { defined: "UpdateAssetArgs" } }];
name: "updateAsset";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "asset" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
];
args: [];
name: "removeAsset";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [];
name: "removeStrategy";
},
{
accounts: [
{ isMut: false; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [{ name: "args"; type: { defined: "UpdateStrategyArgs" } }];
name: "updateStrategy";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: false; isSigner: false; name: "marginfiGroup" },
{ isMut: true; isSigner: true; name: "marginfiAccount" },
{ isMut: false; isSigner: false; name: "marginfiBank" },
{ isMut: false; isSigner: false; name: "marginfiBankLiquidityVault" },
{
isMut: false;
isSigner: false;
name: "marginfiBankLiquidityVaultAuthority";
},
{ isMut: false; isSigner: false; name: "marginfiOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "marginfiProgram" },
];
args: [
{ name: "args"; type: { defined: "MarginfiSupplyStrategyInitArgs" } },
];
name: "marginfiSupplyStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "marginfiGroup" },
{ isMut: true; isSigner: false; name: "marginfiAccount" },
{ isMut: true; isSigner: false; name: "marginfiBank" },
{ isMut: true; isSigner: false; name: "marginfiBankLiquidityVault" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "marginfiProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "MarginfiSupplyStrategyDepositArgs" };
},
];
name: "marginfiSupplyStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "marginfiGroup" },
{ isMut: true; isSigner: false; name: "marginfiAccount" },
{ isMut: true; isSigner: false; name: "marginfiBank" },
{ isMut: true; isSigner: false; name: "marginfiBankLiquidityVault" },
{
isMut: true;
isSigner: false;
name: "marginfiBankLiquidityVaultAuthority";
},
{ isMut: false; isSigner: false; name: "marginfiOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "marginfiProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "MarginfiSupplyStrategyWithdrawArgs" };
},
];
name: "marginfiSupplyStrategyWithdraw";
},
{
accounts: [
{ isMut: false; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "marginfiGroup" },
{ isMut: true; isSigner: false; name: "marginfiAccount" },
{ isMut: true; isSigner: false; name: "marginfiBank" },
{ isMut: true; isSigner: false; name: "marginfiEmissionsVault" },
{ isMut: false; isSigner: false; name: "marginfiEmissionsAuth" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "marginfiProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "marginfiSupplyStrategyClaimEmissions";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "assetPythOracle" },
{ isMut: true; isSigner: false; name: "scopePrices" },
{ isMut: true; isSigner: false; name: "userMetadata" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: true; isSigner: false; name: "obligationFarm" },
{ isMut: true; isSigner: false; name: "lendingMarket" },
{ isMut: true; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: true; isSigner: false; name: "reserve" },
{ isMut: false; isSigner: false; name: "reserveCollateralMint" },
{ isMut: false; isSigner: false; name: "reserveLiquiditySupply" },
{
isMut: false;
isSigner: false;
name: "reserveDestinationDepositCollateral";
},
{ isMut: true; isSigner: false; name: "reserveFarmState" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "klendProgram" },
{ isMut: false; isSigner: false; name: "kfarmsProgram" },
];
args: [{ name: "args"; type: { defined: "KlendSupplyStrategyInitArgs" } }];
name: "klendSupplyStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: false; name: "reserve" },
{ isMut: true; isSigner: false; name: "reserveLiquiditySupply" },
{ isMut: true; isSigner: false; name: "reserveCollateralMint" },
{
isMut: true;
isSigner: false;
name: "reserveDestinationDepositCollateral";
},
{ isMut: true; isSigner: false; name: "vaultCollateralAta" },
{ isMut: false; isSigner: false; name: "lendingMarket" },
{ isMut: true; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: false; isSigner: false; name: "oracle" },
{ isMut: false; isSigner: false; name: "scopePrices" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "instructionsSysvar" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "collateralTokenProgram" },
{ isMut: false; isSigner: false; name: "assetTokenProgram" },
{ isMut: false; isSigner: false; name: "klendProgram" },
{ isMut: false; isSigner: false; name: "kfarmsProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{ name: "args"; type: { defined: "KlendSupplyStrategyDepositArgs" } },
];
name: "klendSupplyStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: false; name: "reserve" },
{ isMut: true; isSigner: false; name: "reserveLiquiditySupply" },
{ isMut: true; isSigner: false; name: "reserveCollateralMint" },
{
isMut: true;
isSigner: false;
name: "reserveDestinationDepositCollateral";
},
{ isMut: true; isSigner: false; name: "vaultCollateralAta" },
{ isMut: false; isSigner: false; name: "lendingMarket" },
{ isMut: true; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: false; isSigner: false; name: "oracle" },
{ isMut: false; isSigner: false; name: "scopePrices" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "instructionsSysvar" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "collateralTokenProgram" },
{ isMut: false; isSigner: false; name: "assetTokenProgram" },
{ isMut: false; isSigner: false; name: "klendProgram" },
{ isMut: false; isSigner: false; name: "kfarmsProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{ name: "args"; type: { defined: "KlendSupplyStrategyWithdrawArgs" } },
];
name: "klendSupplyStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "scopePrices" },
{ isMut: true; isSigner: false; name: "userState" },
{ isMut: true; isSigner: false; name: "farmState" },
{ isMut: false; isSigner: false; name: "kfarmsGlobalConfig" },
{ isMut: false; isSigner: false; name: "kfarmsVaultsAuthority" },
{ isMut: true; isSigner: false; name: "kfarmsRewardsVault" },
{ isMut: true; isSigner: false; name: "kfarmsRewardsTreasuryVault" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "kfarmsProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "klendSupplyStrategyClaimEmissions";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: false; isSigner: false; name: "assetPythOracle" },
{ isMut: false; isSigner: false; name: "assetSwitchboardOracle" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: false; isSigner: false; name: "lendingMarket" },
{ isMut: false; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: false; isSigner: false; name: "reserve" },
{ isMut: false; isSigner: false; name: "reserveCollateralMint" },
{ isMut: false; isSigner: false; name: "reserveLiquiditySupply" },
{ isMut: false; isSigner: false; name: "reserveDepositCollateralAta" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "solendProgram" },
];
args: [
{ name: "args"; type: { defined: "SolendSupplyStrategyInitArgs" } },
];
name: "solendSupplyStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetPythOracle" },
{ isMut: false; isSigner: false; name: "assetSwitchboardOracle" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: true; isSigner: false; name: "lendingMarket" },
{ isMut: false; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: true; isSigner: false; name: "reserve" },
{ isMut: true; isSigner: false; name: "reserveLiquiditySupply" },
{ isMut: true; isSigner: false; name: "reserveCollateralMint" },
{ isMut: true; isSigner: false; name: "vaultCollateralAta" },
{ isMut: true; isSigner: false; name: "depositCollateralAta" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "solendProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{ name: "args"; type: { defined: "SolendSupplyStrategyDepositArgs" } },
];
name: "solendSupplyStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetPythOracle" },
{ isMut: false; isSigner: false; name: "assetSwitchboardOracle" },
{ isMut: true; isSigner: false; name: "obligation" },
{ isMut: true; isSigner: false; name: "lendingMarket" },
{ isMut: false; isSigner: false; name: "lendingMarketAuthority" },
{ isMut: true; isSigner: false; name: "reserve" },
{ isMut: true; isSigner: false; name: "reserveLiquiditySupply" },
{ isMut: true; isSigner: false; name: "reserveCollateralMint" },
{ isMut: true; isSigner: false; name: "vaultCollateralAta" },
{ isMut: true; isSigner: false; name: "withdrawCollateralAta" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "solendProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "SolendSupplyStrategyWithdrawArgs" };
},
];
name: "solendSupplyStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: false; isSigner: false; name: "mangoGroup" },
{ isMut: true; isSigner: false; name: "mangoAccount" },
{ isMut: false; isSigner: false; name: "mangoBank" },
{ isMut: false; isSigner: false; name: "mangoVault" },
{ isMut: false; isSigner: false; name: "pythOracle" },
{ isMut: false; isSigner: false; name: "switchboardOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "mangoProgram" },
];
args: [{ name: "args"; type: { defined: "MangoSupplyStrategyInitArgs" } }];
name: "mangoSupplyStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "mangoGroup" },
{ isMut: true; isSigner: false; name: "mangoAccount" },
{ isMut: true; isSigner: false; name: "mangoBank" },
{ isMut: true; isSigner: false; name: "mangoVault" },
{ isMut: false; isSigner: false; name: "pythOracle" },
{ isMut: false; isSigner: false; name: "switchboardOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "mangoProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{ name: "args"; type: { defined: "MangoSupplyStrategyDepositArgs" } },
];
name: "mangoSupplyStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "mangoGroup" },
{ isMut: true; isSigner: false; name: "mangoAccount" },
{ isMut: true; isSigner: false; name: "mangoBank" },
{ isMut: true; isSigner: false; name: "mangoVault" },
{ isMut: false; isSigner: false; name: "pythOracle" },
{ isMut: false; isSigner: false; name: "switchboardOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "mangoProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{ name: "args"; type: { defined: "MangoSupplyStrategyWithdrawArgs" } },
];
name: "mangoSupplyStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftState" },
{ isMut: false; isSigner: false; name: "driftSigner" },
{ isMut: false; isSigner: false; name: "driftSpotMarket" },
{ isMut: false; isSigner: false; name: "driftPerpMarket" },
{ isMut: false; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: false; isSigner: false; name: "spotPythOracle" },
{ isMut: false; isSigner: false; name: "perpPythOracle" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
];
args: [{ name: "args"; type: { defined: "DriftSupplyStrategyInitArgs" } }];
name: "driftSupplyStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: true; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{ name: "args"; type: { defined: "DriftSupplyStrategyDepositArgs" } },
];
name: "driftSupplyStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: false; isSigner: false; name: "driftSigner" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{ name: "args"; type: { defined: "DriftSupplyStrategyWithdrawArgs" } },
];
name: "driftSupplyStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: false; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: true; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundStake" },
{ isMut: false; isSigner: false; name: "driftInsuranceFundVault" },
{ isMut: true; isSigner: false; name: "driftSigner" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "rent" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
];
args: [
{
name: "args";
type: { defined: "DriftInsuranceFundStrategyInitArgs" };
},
];
name: "driftInsuranceFundStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: true; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: false; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundStake" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundVault" },
{ isMut: true; isSigner: false; name: "driftSigner" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "DriftInsuranceFundStrategyStakeArgs" };
},
];
name: "driftInsuranceFundStrategyStake";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "strategy" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundStake" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundVault" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "driftProgram" },
];
args: [
{
name: "args";
type: { defined: "DriftInsuranceFundStrategyUnstakeArgs" };
},
];
name: "driftInsuranceFundStrategyUnstake";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: false; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundStake" },
{ isMut: true; isSigner: false; name: "driftInsuranceFundVault" },
{ isMut: true; isSigner: false; name: "driftSigner" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "driftInsuranceFundStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: false; isSigner: false; name: "assetTokenAccount" },
{ isMut: false; isSigner: false; name: "chest" },
{ isMut: false; isSigner: false; name: "coinTokenAccount" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
];
args: [{ name: "args"; type: { defined: "ChestStrategyInitArgs" } }];
name: "chestStrategyInit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "chest" },
{ isMut: true; isSigner: false; name: "coin" },
{ isMut: true; isSigner: false; name: "chestAssetReserve" },
{ isMut: true; isSigner: false; name: "driftVault" },
{ isMut: true; isSigner: false; name: "driftVaultDepositor" },
{ isMut: true; isSigner: false; name: "driftVaultTokenAccount" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: true; isSigner: false; name: "driftUserStats" },
{ isMut: true; isSigner: false; name: "driftSpotMarket" },
{ isMut: true; isSigner: false; name: "driftSpotMarketVault" },
{ isMut: true; isSigner: false; name: "driftState" },
{ isMut: true; isSigner: false; name: "vaultAssetTokenAccount" },
{ isMut: true; isSigner: false; name: "vaultCoinTokenAccount" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "chestProgram" },
{ isMut: false; isSigner: false; name: "driftProgram" },
{ isMut: false; isSigner: false; name: "driftVaultsProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [{ name: "args"; type: { defined: "ChestStrategyDepositArgs" } }];
name: "chestStrategyDeposit";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "chest" },
{ isMut: true; isSigner: false; name: "coin" },
{ isMut: true; isSigner: false; name: "chestCoinReserve" },
{ isMut: true; isSigner: false; name: "redemptionRequest" },
{ isMut: true; isSigner: false; name: "driftVault" },
{ isMut: true; isSigner: false; name: "driftVaultDepositor" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: false; isSigner: false; name: "assetDestination" },
{ isMut: true; isSigner: false; name: "vaultCoinTokenAccount" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "chestProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [
{
name: "args";
type: { defined: "ChestStrategyRequestWithdrawArgs" };
},
];
name: "chestStrategyRequestWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: true; isSigner: false; name: "strategy" },
{ isMut: false; isSigner: false; name: "assetMint" },
{ isMut: true; isSigner: false; name: "vaultAssetAta" },
{ isMut: true; isSigner: false; name: "strategyAssetTokenAccount" },
{ isMut: true; isSigner: false; name: "chest" },
{ isMut: false; isSigner: false; name: "chestRedemptionRequest" },
{ isMut: true; isSigner: false; name: "coin" },
{ isMut: true; isSigner: false; name: "vaultCoinTokenAccount" },
{ isMut: true; isSigner: false; name: "driftVault" },
{ isMut: true; isSigner: false; name: "driftVaultDepositor" },
{ isMut: true; isSigner: false; name: "driftUser" },
{ isMut: true; isSigner: true; name: "authority" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "chestProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "chestStrategyWithdraw";
},
{
accounts: [
{ isMut: true; isSigner: false; name: "vault" },
{ isMut: false; isSigner: false; name: "shares" },
{ isMut: true; isSigner: false; name: "feed" },
{ isMut: false; isSigner: false; name: "queue" },
{ isMut: false; isSigner: false; name: "programState" },
{ isMut: false; isSigner: false; name: "recentSlothashes" },
{ isMut: true; isSigner: false; name: "rewardVault" },
{ isMut: false; isSigner: false; name: "tokenMint" },
{ isMut: false; isSigner: false; name: "switchboardOnDemandProgram" },
{ isMut: false; isSigner: false; name: "tokenProgram" },
{ isMut: false; isSigner: false; name: "systemProgram" },
{ isMut: false; isSigner: false; name: "logProgram" },
];
args: [];
name: "updateSwitchboardOraclePrice";
},
]
name: "carrot"
types: [
{
name: "ChestStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "ChestStrategyInitArgs";
type: { fields: [{ name: "name"; type: "string" }]; kind: "struct" };
},
{
name: "ChestStrategyRequestWithdrawArgs";
type: { fields: [{ name: "assetAmount"; type: "u64" }]; kind: "struct" };
},
{
name: "DriftInsuranceFundStrategyInitArgs";
type: {
fields: [
{ name: "name"; type: "string" },
{ name: "driftMarketIndex"; type: "u16" },
];
kind: "struct";
};
},
{
name: "DriftInsuranceFundStrategyStakeArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "DriftInsuranceFundStrategyUnstakeArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "DriftSupplyStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "DriftSupplyStrategyInitArgs";
type: {
fields: [
{ name: "name"; type: "string" },
{ name: "driftSubAccountId"; type: "u16" },
{ name: "driftMarketIndex"; type: "u16" },
];
kind: "struct";
};
},
{
name: "DriftSupplyStrategyWithdrawArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "InitVaultArgs";
type: {
fields: [
{ name: "redemptionFeeBps"; type: "u16" },
{ name: "managementFeeBps"; type: "u16" },
{ name: "performanceFeeBps"; type: "u16" },
];
kind: "struct";
};
},
{
name: "IssueArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "KlendSupplyStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "KlendSupplyStrategyInitArgs";
type: { fields: [{ name: "name"; type: "string" }]; kind: "struct" };
},
{
name: "KlendSupplyStrategyWithdrawArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "MangoSupplyStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "MangoSupplyStrategyInitArgs";
type: { fields: [{ name: "name"; type: "string" }]; kind: "struct" };
},
{
name: "MangoSupplyStrategyWithdrawArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "MarginfiSupplyStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "MarginfiSupplyStrategyInitArgs";
type: { fields: [{ name: "name"; type: "string" }]; kind: "struct" };
},
{
name: "MarginfiSupplyStrategyWithdrawArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "PauseVaultArgs";
type: { fields: [{ name: "paused"; type: "bool" }]; kind: "struct" };
},
{
name: "RedeemArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "SolendSupplyStrategyDepositArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "SolendSupplyStrategyInitArgs";
type: { fields: [{ name: "name"; type: "string" }]; kind: "struct" };
},
{
name: "SolendSupplyStrategyWithdrawArgs";
type: { fields: [{ name: "amount"; type: "u64" }]; kind: "struct" };
},
{
name: "UpdateAssetArgs";
type: {
fields: [
{ name: "assetId"; type: "u16" },
{ name: "assetNewOracle"; type: "publicKey" },
];
kind: "struct";
};
},
{
name: "UpdateFeeArgs";
type: {
fields: [
{ name: "newRedemptionFeeBps"; type: { option: "u16" } },
{ name: "newManagementFeeBps"; type: { option: "u16" } },
{ name: "newPerformanceFeeBps"; type: { option: "u16" } },
];
kind: "struct";
};
},
{
name: "UpdateStrategyArgs";
type: {
fields: [
{ name: "newStrategyType"; type: { defined: "StrategyType" } },
];
kind: "struct";
};
},
{
name: "Asset";
type: {
fields: [
{ name: "assetId"; type: "u16" },
{ name: "mint"; type: "publicKey" },
{ name: "decimals"; type: "u8" },
{ name: "ata"; type: "publicKey" },
{ name: "oracle"; type: "publicKey" },
];
kind: "struct";
};
},
{
name: "StrategyRecord";
type: {
fields: [
{ name: "strategyId"; type: "u16" },
{ name: "assetId"; type: "u16" },
{ name: "balance"; type: "u64" },
{ name: "netEarnings"; type: "i64" },
];
kind: "struct";
};
},
{
name: "StrategyMetadata";
type: {
fields: [
{ name: "name"; type: "string" },
{ name: "strategyId"; type: "u16" },
{ name: "assetMint"; type: "publicKey" },
{ name: "vault"; type: "publicKey" },
];
kind: "struct";
};
},
{
name: "Fee";
type: {
fields: [
{ name: "redemptionFeeBps"; type: "u16" },
{ name: "redemptionFeeAccumulated"; type: "u64" },
{ name: "managementFeeBps"; type: "u16" },
{ name: "managementFeeLastUpdate"; type: "i64" },
{ name: "managementFeeAccumulated"; type: "u64" },
{ name: "performanceFeeBps"; type: "u16" },
];
kind: "struct";
};
},
{
name: "IssueEvent";
type: {
fields: [
{ name: "depositor"; type: "publicKey" },
{ name: "mint"; type: "publicKey" },
{ name: "amount"; type: "u64" },
{ name: "sharesMinted"; type: "u64" },
{ name: "managementFee"; type: "u64" },
{ name: "tvl"; type: "u128" },
];
kind: "struct";
};
},
{
name: "RedeemEvent";
type: {
fields: [
{ name: "withdrawer"; type: "publicKey" },
{ name: "mint"; type: "publicKey" },
{ name: "amount"; type: "u64" },
{ name: "sharesBurned"; type: "u64" },
{ name: "redemptionFee"; type: "u64" },
{ name: "managementFee"; type: "u64" },
{ name: "tvl"; type: "u128" },
];
kind: "struct";
};
},
{
name: "StrategyDepositEvent";
type: {
fields: [
{ name: "strategy"; type: "publicKey" },
{ name: "mint"; type: "publicKey" },
{ name: "depositAmount"; type: "u64" },
{ name: "netEarnings"; type: "i64" },
{ name: "strategyBalance"; type: "u64" },
];
kind: "struct";
};
},
{
name: "StrategyWithdrawEvent";
type: {
fields: [
{ name: "strategy"; type: "publicKey" },
{ name: "mint"; type: "publicKey" },
{ name: "withdrawAmount"; type: "u64" },
{ name: "netEarnings"; type: "i64" },
{ name: "strategyBalance"; type: "u64" },
];
kind: "struct";
};
},
{
name: "StrategyClaimEmissionsEvent";
type: {
fields: [
{ name: "strategy"; type: "publicKey" },
{ name: "mint"; type: "publicKey" },
];
kind: "struct";
};
},
{
name: "DistributeVaultFeesEvent";
type: {
fields: [
{ name: "managementFeeAmountDistributed"; type: "u64" },
{ name: "performanceFeeAmountDistributed"; type: "u64" },
{ name: "redemptionFeeAmountDistributed"; type: "u64" },
];
kind: "struct";
};
},
{
name: "UpdateSwitchboardOraclePriceEvent";
type: {
fields: [
{ name: "vaultNav"; type: "i128" },
{ name: "vaultTvl"; type: "u128" },
{ name: "sharesSupply"; type: "u64" },
];
kind: "struct";
};
},
{
name: "StrategyType";
type: {
kind: "enum";
variants: [
{
fields: [
{ name: "account"; type: "publicKey" },
{ name: "group"; type: "publicKey" },
{ name: "bank"; type: "publicKey" },
{ name: "bank_liquidity_vault"; type: "publicKey" },
{ name: "bank_liquidity_vault_authority"; type: "publicKey" },
{ name: "oracle"; type: "publicKey" },
];
name: "MarginfiSupply";
},
{
fields: [
{ name: "reserve"; type: "publicKey" },
{ name: "reserve_collateral_mint"; type: "publicKey" },
{ name: "reserve_liquidity_supply"; type: "publicKey" },
{ name: "reserve_destination_deposit_collateral"; type: "publicKey" },
{ name: "reserve_farm_state"; type: "publicKey" },
{ name: "lending_market"; type: "publicKey" },
{ name: "oracle"; type: "publicKey" },
{ name: "scope_prices"; type: "publicKey" },
];
name: "KlendSupply";
},
{
fields: [
{ name: "reserve"; type: "publicKey" },
{ name: "reserve_collateral_mint"; type: "publicKey" },
{ name: "reserve_liquidity_supply"; type: "publicKey" },
{ name: "deposit_collateral_ata"; type: "publicKey" },
{ name: "lending_market"; type: "publicKey" },
{ name: "lending_market_authority"; type: "publicKey" },
{ name: "pyth_oracle"; type: "publicKey" },
{ name: "switchboard_oracle"; type: "publicKey" },
];
name: "SolendSupply";
},
{
fields: [
{ name: "group"; type: "publicKey" },
{ name: "account"; type: "publicKey" },
{ name: "bank"; type: "publicKey" },
{ name: "vault"; type: "publicKey" },
{ name: "pyth_oracle"; type: "publicKey" },
{ name: "switchboard_oracle"; type: "publicKey" },
];
name: "MangoSupply";
},
{
fields: [
{ name: "state"; type: "publicKey" },
{ name: "signer"; type: "publicKey" },
{ name: "spot_market"; type: "publicKey" },
{ name: "spot_market_vault"; type: "publicKey" },
{ name: "perp_market"; type: "publicKey" },
{ name: "spot_pyth_oracle"; type: "publicKey" },
{ name: "perp_pyth_oracle"; type: "publicKey" },
{ name: "sub_account_id"; type: "u16" },
{ name: "market_index"; type: "u16" },
];
name: "DriftSupply";
},
{
fields: [
{ name: "state"; type: "publicKey" },
{ name: "spot_market"; type: "publicKey" },
{ name: "spot_market_vault"; type: "publicKey" },
{ name: "market_index"; type: "u16" },
];
name: "DriftInsuranceFund";
},
{
fields: [
{ name: "chest"; type: "publicKey" },
{ name: "coin"; type: "publicKey" },
{ name: "drift_vault"; type: "publicKey" },
{ name: "coin_token_account"; type: "publicKey" },
{ name: "asset_destination"; type: "publicKey" },
{ name: "redemption_request"; type: { option: "publicKey" } },
{ name: "spot_market_index"; type: "u16" },
];
name: "Chest";
},
];
};
},
{
name: "StrategyTypeSelection";
type: {
kind: "enum";
variants: [
{ name: "MarginfiSupply" },
{ name: "KlendSupply" },
{ name: "SolendSupply" },
{ name: "MangoSupply" },
{ name: "DriftSupply" },
{ name: "DriftInsuranceFund" },
{ name: "Chest" },
];
};
},
{
name: "CarrotEvent";
type: {
kind: "enum";
variants: [
{ fields: [{ defined: "IssueEvent" }]; name: "Issue" },
{ fields: [{ defined: "RedeemEvent" }]; name: "Redeem" },
{
fields: [{ defined: "StrategyDepositEvent" }];
name: "StrategyDeposit";
},
{
fields: [{ defined: "StrategyWithdrawEvent" }];
name: "StrategyWithdraw";
},
{
fields: [{ defined: "StrategyClaimEmissionsEvent" }];
name: "StrategyClaimEmissions";
},
{
fields: [{ defined: "DistributeVaultFeesEvent" }];
name: "DistributeVaultFees";
},
{
fields: [{ defined: "UpdateSwitchboardOraclePriceEvent" }];
name: "UpdateSwitchboardOraclePrice";
},
];
};
},
{
name: "RoundingMode";
type: {
kind: "enum";
variants: [{ name: "RoundUp" }, { name: "RoundDown" }, { name: "Avg" }];
};
},
]
version: "0.1.0"