UNPKG

goosefx-amm-sdk

Version:

SDK for the GooseFx AMM

2,177 lines 85.9 kB
{ "version": "0.1.0", "name": "kamino_lending", "instructions": [ { "name": "initLendingMarket", "accounts": [ { "name": "lendingMarketOwner", "isMut": true, "isSigner": true }, { "name": "lendingMarket", "isMut": true, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false } ], "args": [ { "name": "quoteCurrency", "type": { "array": ["u8", 32] } } ] }, { "name": "updateLendingMarket", "accounts": [ { "name": "lendingMarketOwner", "isMut": false, "isSigner": true }, { "name": "lendingMarket", "isMut": true, "isSigner": false } ], "args": [ { "name": "mode", "type": "u64" }, { "name": "value", "type": { "array": ["u8", 72] } } ] }, { "name": "updateLendingMarketOwner", "accounts": [ { "name": "lendingMarketOwnerCached", "isMut": false, "isSigner": true }, { "name": "lendingMarket", "isMut": true, "isSigner": false } ], "args": [] }, { "name": "initReserve", "accounts": [ { "name": "lendingMarketOwner", "isMut": true, "isSigner": true }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "reserveLiquidityMint", "isMut": false, "isSigner": false }, { "name": "reserveLiquiditySupply", "isMut": true, "isSigner": false }, { "name": "feeReceiver", "isMut": true, "isSigner": false }, { "name": "reserveCollateralMint", "isMut": true, "isSigner": false }, { "name": "reserveCollateralSupply", "isMut": true, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false } ], "args": [] }, { "name": "initFarmsForReserve", "accounts": [ { "name": "lendingMarketOwner", "isMut": true, "isSigner": true }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": true, "isSigner": false }, { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "farmsProgram", "isMut": false, "isSigner": false }, { "name": "farmsGlobalConfig", "isMut": false, "isSigner": false }, { "name": "farmState", "isMut": true, "isSigner": false }, { "name": "farmsVaultAuthority", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "mode", "type": "u8" } ] }, { "name": "updateSingleReserveConfig", "accounts": [ { "name": "lendingMarketOwner", "isMut": false, "isSigner": true }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "reserve", "isMut": true, "isSigner": false } ], "args": [ { "name": "mode", "type": "u64" }, { "name": "value", "type": { "array": ["u8", 32] } } ] }, { "name": "updateEntireReserveConfig", "accounts": [ { "name": "lendingMarketOwner", "isMut": false, "isSigner": true }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "reserve", "isMut": true, "isSigner": false } ], "args": [ { "name": "mode", "type": "u64" }, { "name": "value", "type": { "array": ["u8", 648] } } ] }, { "name": "refreshReserve", "accounts": [ { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "pythOracle", "isMut": false, "isSigner": false, "isOptional": true }, { "name": "switchboardPriceOracle", "isMut": false, "isSigner": false, "isOptional": true }, { "name": "switchboardTwapOracle", "isMut": false, "isSigner": false, "isOptional": true }, { "name": "scopePrices", "isMut": false, "isSigner": false, "isOptional": true } ], "args": [] }, { "name": "depositReserveLiquidity", "accounts": [ { "name": "owner", "isMut": false, "isSigner": true }, { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "reserveLiquiditySupply", "isMut": true, "isSigner": false }, { "name": "reserveCollateralMint", "isMut": true, "isSigner": false }, { "name": "userSourceLiquidity", "isMut": true, "isSigner": false }, { "name": "userDestinationCollateral", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "liquidityAmount", "type": "u64" } ] }, { "name": "redeemReserveCollateral", "accounts": [ { "name": "owner", "isMut": false, "isSigner": true }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "reserveCollateralMint", "isMut": true, "isSigner": false }, { "name": "reserveLiquiditySupply", "isMut": true, "isSigner": false }, { "name": "userSourceCollateral", "isMut": true, "isSigner": false }, { "name": "userDestinationLiquidity", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "collateralAmount", "type": "u64" } ] }, { "name": "initObligation", "accounts": [ { "name": "obligationOwner", "isMut": true, "isSigner": true }, { "name": "obligation", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "seed1Account", "isMut": false, "isSigner": false }, { "name": "seed2Account", "isMut": false, "isSigner": false }, { "name": "ownerUserMetadata", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "args", "type": { "defined": "InitObligationArgs" } } ] }, { "name": "initObligationFarmsForReserve", "accounts": [ { "name": "payer", "isMut": true, "isSigner": true }, { "name": "owner", "isMut": false, "isSigner": false }, { "name": "obligation", "isMut": true, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": true, "isSigner": false }, { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "reserveFarmState", "isMut": true, "isSigner": false }, { "name": "obligationFarm", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "farmsProgram", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "mode", "type": "u8" } ] }, { "name": "refreshObligationFarmsForReserve", "accounts": [ { "name": "crank", "isMut": true, "isSigner": true }, { "name": "obligation", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": true, "isSigner": false }, { "name": "reserve", "isMut": false, "isSigner": false }, { "name": "reserveFarmState", "isMut": true, "isSigner": false }, { "name": "obligationFarmUserState", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "farmsProgram", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "mode", "type": "u8" } ] }, { "name": "refreshObligation", "accounts": [ { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "obligation", "isMut": true, "isSigner": false } ], "args": [] }, { "name": "depositObligationCollateral", "accounts": [ { "name": "owner", "isMut": false, "isSigner": true }, { "name": "obligation", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "depositReserve", "isMut": true, "isSigner": false }, { "name": "reserveDestinationCollateral", "isMut": true, "isSigner": false }, { "name": "userSourceCollateral", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "instructionSysvarAccount", "isMut": false, "isSigner": false } ], "args": [ { "name": "collateralAmount", "type": "u64" } ] }, { "name": "withdrawObligationCollateral", "accounts": [ { "name": "owner", "isMut": false, "isSigner": true }, { "name": "obligation", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "withdrawReserve", "isMut": false, "isSigner": false }, { "name": "reserveSourceCollateral", "isMut": true, "isSigner": false }, { "name": "userDestinationCollateral", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "instructionSysvarAccount", "isMut": false, "isSigner": false } ], "args": [ { "name": "collateralAmount", "type": "u64" } ] }, { "name": "borrowObligationLiquidity", "accounts": [ { "name": "owner", "isMut": false, "isSigner": true }, { "name": "obligation", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "borrowReserve", "isMut": true, "isSigner": false }, { "name": "reserveSourceLiquidity", "isMut": true, "isSigner": false }, { "name": "borrowReserveLiquidityFeeReceiver", "isMut": true, "isSigner": false }, { "name": "userDestinationLiquidity", "isMut": true, "isSigner": false }, { "name": "referrerTokenState", "isMut": true, "isSigner": false, "isOptional": true }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "instructionSysvarAccount", "isMut": false, "isSigner": false } ], "args": [ { "name": "liquidityAmount", "type": "u64" } ] }, { "name": "repayObligationLiquidity", "accounts": [ { "name": "owner", "isMut": false, "isSigner": true }, { "name": "obligation", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "repayReserve", "isMut": true, "isSigner": false }, { "name": "reserveDestinationLiquidity", "isMut": true, "isSigner": false }, { "name": "userSourceLiquidity", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "instructionSysvarAccount", "isMut": false, "isSigner": false } ], "args": [ { "name": "liquidityAmount", "type": "u64" } ] }, { "name": "depositReserveLiquidityAndObligationCollateral", "accounts": [ { "name": "owner", "isMut": true, "isSigner": true }, { "name": "obligation", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "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": "userSourceLiquidity", "isMut": true, "isSigner": false }, { "name": "userDestinationCollateral", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "instructionSysvarAccount", "isMut": false, "isSigner": false } ], "args": [ { "name": "liquidityAmount", "type": "u64" } ] }, { "name": "withdrawObligationCollateralAndRedeemReserveCollateral", "accounts": [ { "name": "owner", "isMut": false, "isSigner": true }, { "name": "obligation", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "withdrawReserve", "isMut": true, "isSigner": false }, { "name": "reserveSourceCollateral", "isMut": true, "isSigner": false }, { "name": "reserveCollateralMint", "isMut": true, "isSigner": false }, { "name": "reserveLiquiditySupply", "isMut": true, "isSigner": false }, { "name": "userDestinationLiquidity", "isMut": true, "isSigner": false }, { "name": "userDestinationCollateral", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "instructionSysvarAccount", "isMut": false, "isSigner": false } ], "args": [ { "name": "collateralAmount", "type": "u64" } ] }, { "name": "liquidateObligationAndRedeemReserveCollateral", "accounts": [ { "name": "liquidator", "isMut": false, "isSigner": true }, { "name": "obligation", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "repayReserve", "isMut": true, "isSigner": false }, { "name": "repayReserveLiquiditySupply", "isMut": true, "isSigner": false }, { "name": "withdrawReserve", "isMut": true, "isSigner": false }, { "name": "withdrawReserveCollateralMint", "isMut": true, "isSigner": false }, { "name": "withdrawReserveCollateralSupply", "isMut": true, "isSigner": false }, { "name": "withdrawReserveLiquiditySupply", "isMut": true, "isSigner": false }, { "name": "withdrawReserveLiquidityFeeReceiver", "isMut": true, "isSigner": false }, { "name": "userSourceLiquidity", "isMut": true, "isSigner": false }, { "name": "userDestinationCollateral", "isMut": true, "isSigner": false }, { "name": "userDestinationLiquidity", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "instructionSysvarAccount", "isMut": false, "isSigner": false } ], "args": [ { "name": "liquidityAmount", "type": "u64" }, { "name": "minAcceptableReceivedCollateralAmount", "type": "u64" }, { "name": "maxAllowedLtvOverridePercent", "type": "u64" } ] }, { "name": "redeemFees", "accounts": [ { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "reserveLiquidityFeeReceiver", "isMut": true, "isSigner": false }, { "name": "reserveSupplyLiquidity", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [] }, { "name": "flashRepayReserveLiquidity", "accounts": [ { "name": "userTransferAuthority", "isMut": false, "isSigner": true }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "reserveDestinationLiquidity", "isMut": true, "isSigner": false }, { "name": "userSourceLiquidity", "isMut": true, "isSigner": false }, { "name": "reserveLiquidityFeeReceiver", "isMut": true, "isSigner": false }, { "name": "referrerTokenState", "isMut": true, "isSigner": false, "isOptional": true }, { "name": "referrerAccount", "isMut": true, "isSigner": false, "isOptional": true }, { "name": "sysvarInfo", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "liquidityAmount", "type": "u64" }, { "name": "borrowInstructionIndex", "type": "u8" } ] }, { "name": "flashBorrowReserveLiquidity", "accounts": [ { "name": "userTransferAuthority", "isMut": false, "isSigner": true }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "reserveSourceLiquidity", "isMut": true, "isSigner": false }, { "name": "userDestinationLiquidity", "isMut": true, "isSigner": false }, { "name": "reserveLiquidityFeeReceiver", "isMut": true, "isSigner": false }, { "name": "referrerTokenState", "isMut": true, "isSigner": false, "isOptional": true }, { "name": "referrerAccount", "isMut": true, "isSigner": false, "isOptional": true }, { "name": "sysvarInfo", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "liquidityAmount", "type": "u64" } ] }, { "name": "socializeLoss", "accounts": [ { "name": "riskCouncil", "isMut": false, "isSigner": true }, { "name": "obligation", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "instructionSysvarAccount", "isMut": false, "isSigner": false } ], "args": [ { "name": "liquidityAmount", "type": "u64" } ] }, { "name": "requestElevationGroup", "accounts": [ { "name": "owner", "isMut": false, "isSigner": true }, { "name": "obligation", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false } ], "args": [ { "name": "elevationGroup", "type": "u8" } ] }, { "name": "initReferrerTokenState", "accounts": [ { "name": "payer", "isMut": true, "isSigner": true }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "reserve", "isMut": false, "isSigner": false }, { "name": "referrerTokenState", "isMut": true, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "referrer", "type": "publicKey" } ] }, { "name": "initUserMetadata", "accounts": [ { "name": "owner", "isMut": true, "isSigner": true }, { "name": "userMetadata", "isMut": true, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "referrer", "type": "publicKey" }, { "name": "userLookupTable", "type": "publicKey" } ] }, { "name": "withdrawReferrerFees", "accounts": [ { "name": "referrer", "isMut": true, "isSigner": true }, { "name": "referrerTokenState", "isMut": true, "isSigner": false }, { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "reserveSupplyLiquidity", "isMut": true, "isSigner": false }, { "name": "referrerTokenAccount", "isMut": true, "isSigner": false }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [] }, { "name": "withdrawProtocolFee", "accounts": [ { "name": "lendingMarketOwner", "isMut": false, "isSigner": true }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "reserve", "isMut": false, "isSigner": false }, { "name": "lendingMarketAuthority", "isMut": false, "isSigner": false }, { "name": "feeVault", "isMut": true, "isSigner": false }, { "name": "lendingMarketOwnerAta", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "amount", "type": "u64" } ] }, { "name": "initReferrerStateAndShortUrl", "accounts": [ { "name": "referrer", "isMut": true, "isSigner": true }, { "name": "referrerState", "isMut": true, "isSigner": false }, { "name": "referrerShortUrl", "isMut": true, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "shortUrl", "type": "string" } ] }, { "name": "deleteReferrerStateAndShortUrl", "accounts": [ { "name": "referrer", "isMut": true, "isSigner": true }, { "name": "referrerState", "isMut": true, "isSigner": false }, { "name": "shortUrl", "isMut": true, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false } ], "args": [] } ], "accounts": [ { "name": "LendingMarket", "type": { "kind": "struct", "fields": [ { "name": "version", "docs": ["Version of lending market"], "type": "u64" }, { "name": "bumpSeed", "docs": ["Bump seed for derived authority address"], "type": "u64" }, { "name": "lendingMarketOwner", "docs": ["Owner authority which can add new reserves"], "type": "publicKey" }, { "name": "lendingMarketOwnerCached", "docs": ["Temporary cache of the lending market owner, used in update_lending_market_owner"], "type": "publicKey" }, { "name": "quoteCurrency", "docs": [ "Currency market prices are quoted in", "e.g. \"USD\" null padded (`*b\"USD\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\"`) or a SPL token mint pubkey" ], "type": { "array": ["u8", 32] } }, { "name": "referralFeeBps", "docs": ["Referral fee for the lending market, as bps out of the total protocol fee"], "type": "u16" }, { "name": "emergencyMode", "type": "u8" }, { "name": "reserved", "docs": ["Padding used for alignment"], "type": { "array": ["u8", 2] } }, { "name": "priceRefreshTriggerToMaxAgePct", "docs": [ "Refresh price from oracle only if it's older than this percentage of the price max age.", "e.g. if the max age is set to 100s and this is set to 80%, the price will be refreshed if it's older than 80s.", "Price is always refreshed if this set to 0." ], "type": "u8" }, { "name": "liquidationMaxDebtCloseFactorPct", "docs": ["Percentage of the total borrowed value in an obligation available for liquidation"], "type": "u8" }, { "name": "insolvencyRiskUnhealthyLtvPct", "docs": ["Minimum acceptable unhealthy LTV before max_debt_close_factor_pct becomes 100%"], "type": "u8" }, { "name": "minFullLiquidationAmountThreshold", "docs": ["Minimum liquidation amount threshold triggering full liquidation for an obligation"], "type": "u64" }, { "name": "maxLiquidatableDebtMarketValueAtOnce", "docs": ["Max allowed liquidation value in one ix call"], "type": "u64" }, { "name": "globalUnhealthyBorrowValue", "docs": ["Global maximum unhealthy borrow value allowed for any obligation"], "type": "u64" }, { "name": "globalAllowedBorrowValue", "docs": ["Global maximum allowed borrow value allowed for any obligation"], "type": "u64" }, { "name": "riskCouncil", "docs": [ "The address of the risk council, in charge of making parameter and risk decisions on behalf of the protocol" ], "type": "publicKey" }, { "name": "multiplierPointsTagBoost", "docs": ["Reward points multiplier per obligation type"], "type": { "array": ["u8", 8] } }, { "name": "elevationGroups", "docs": [ "Elevation groups are used to group together reserves that have the same risk parameters and can bump the ltv and liquidation threshold" ], "type": { "array": [ { "defined": "ElevationGroup" }, 32 ] } }, { "name": "elevationGroupPadding", "type": { "array": ["u64", 90] } }, { "name": "padding1", "type": { "array": ["u64", 180] } } ] } }, { "name": "Obligation", "docs": ["Lending market obligation state"], "type": { "kind": "struct", "fields": [ { "name": "tag", "docs": ["Version of the struct"], "type": "u64" }, { "name": "lastUpdate", "docs": ["Last update to collateral, liquidity, or their market values"], "type": { "defined": "LastUpdate" } }, { "name": "lendingMarket", "docs": ["Lending market address"], "type": "publicKey" }, { "name": "owner", "docs": ["Owner authority which can borrow liquidity"], "type": "publicKey" }, { "name": "deposits", "docs": [ "TODO: Does this break the stack size when copied onto the stack, if too big?", "Deposited collateral for the obligation, unique by deposit reserve address" ], "type": { "array": [ { "defined": "ObligationCollateral" }, 8 ] } }, { "name": "lowestReserveDepositLtv", "docs": ["Worst LTV for the collaterals backing the loan, represented as a percentage"], "type": "u64" }, { "name": "depositedValueSf", "docs": ["Market value of deposits (scaled fraction)"], "type": "u128" }, { "name": "borrows", "docs": ["Borrowed liquidity for the obligation, unique by borrow reserve address"], "type": { "array": [ { "defined": "ObligationLiquidity" }, 5 ] } }, { "name": "borrowFactorAdjustedDebtValueSf", "docs": [ "Risk adjusted market value of borrows/debt (sum of price * borrowed_amount * borrow_factor) (scaled fraction)" ], "type": "u128" }, { "name": "borrowedAssetsMarketValueSf", "docs": ["Market value of borrows - used for max_liquidatable_borrowed_amount (scaled fraction)"], "type": "u128" }, { "name": "allowedBorrowValueSf", "docs": ["The maximum borrow value at the weighted average loan to value ratio (scaled fraction)"], "type": "u128" }, { "name": "unhealthyBorrowValueSf", "docs": ["The dangerous borrow value at the weighted average liquidation threshold (scaled fraction)"], "type": "u128" }, { "name": "depositsAssetTiers", "docs": ["The asset tier of the deposits"], "type": { "array": ["u8", 8] } }, { "name": "borrowsAssetTiers", "docs": ["The asset tier of the borrows"], "type": { "array": ["u8", 5] } }, { "name": "elevationGroup", "docs": ["The elevation group id the obligation opted into."], "type": "u8" }, { "name": "numOfObsoleteReserves", "type": "u8" }, { "name": "reserved", "type": { "array": ["u8", 1] } }, { "name": "referrer", "docs": ["Wallet address of the referrer"], "type": "publicKey" }, { "name": "padding3", "type": { "array": ["u64", 128] } } ] } }, { "name": "ReferrerTokenState", "docs": ["Referrer account -> each owner can have multiple accounts for specific reserves"], "type": { "kind": "struct", "fields": [ { "name": "referrer", "docs": ["Pubkey of the referrer/owner"], "type": "publicKey" }, { "name": "mint", "docs": ["Token mint for the account"], "type": "publicKey" }, { "name": "amountUnclaimedSf", "docs": ["Amount that has been accumulated and not claimed yet -> available to claim (scaled fraction)"], "type": "u128" }, { "name": "amountCumulativeSf", "docs": [ "Amount that has been accumulated in total -> both already claimed and unclaimed (scaled fraction)" ], "type": "u128" }, { "name": "bump", "docs": ["Referrer token state bump, used for address validation"], "type": "u64" }, { "name": "padding", "type": { "array": ["u64", 31] } } ] } }, { "name": "UserMetadata", "docs": ["Referrer account -> each owner can have multiple accounts for specific reserves"], "type": { "kind": "struct", "fields": [ { "name": "referrer", "docs": ["Pubkey of the referrer/owner - pubkey::default if no referrer"], "type": "publicKey" }, { "name": "bump", "docs": ["Bump used for validation of account address"], "type": "u64" }, { "name": "userLookupTable", "docs": [ "User lookup table - used to store all user accounts - atas for each reserve mint, each obligation PDA, UserMetadata itself and all referrer_token_states if there is a referrer" ], "type": "publicKey" }, { "name": "padding1", "type": { "array": ["u64", 55] } }, { "name": "padding2", "type": { "array": ["u64", 64] } } ] } }, { "name": "ReferrerState", "type": { "kind": "struct", "fields": [ { "name": "shortUrl", "type": "publicKey" } ] } }, { "name": "ShortUrl", "type": { "kind": "struct", "fields": [ { "name": "referrer", "type": "publicKey" }, { "name": "shortUrl", "type": "string" } ] } }, { "name": "Reserve", "type": { "kind": "struct", "fields": [ { "name": "version", "docs": ["Version of the reserve"], "type": "u64" }, { "name": "lastUpdate", "docs": ["Last slot when supply and rates updated"], "type": { "defined": "LastUpdate" } }, { "name": "lendingMarket", "docs": ["Lending market address"], "type": "publicKey" }, { "name": "farmCollateral", "type": "publicKey" }, { "name": "farmDebt", "type": "publicKey" }, { "name": "liquidity", "docs": ["Reserve liquidity"], "type": { "defined": "ReserveLiquidity" } }, { "name": "reserveLiquidityPadding", "type": { "array": ["u64", 150] } }, { "name": "collateral", "docs": ["Reserve collateral"], "type": { "defined": "ReserveCollateral" } }, { "name": "reserveCollateralPadding", "type": { "array": ["u64", 150] } }, { "name": "config", "docs": ["Reserve configuration values"], "type": { "defined": "ReserveConfig" } }, { "name": "configPadding", "type": { "array": ["u64", 150] } }, { "name": "padding", "type": { "array": ["u64", 240] } } ] } } ], "types": [ { "name": "LastUpdate", "docs": ["Last update state"], "type": { "kind": "struct", "fields": [ { "name": "slot", "docs": ["Last slot when updated"], "type": "u64" }, { "name": "stale", "docs": ["True when marked stale, false when slot updated"], "type": "u8" }, { "name": "placeholder", "type": { "array": ["u8", 7] } } ] } }, { "name": "ElevationGroup", "type": { "kind": "struct", "fields": [ { "name": "maxLiquidationBonusBps", "type": "u16" }, { "name": "id", "type": "u8" }, { "name": "ltvPct", "type": "u8" }, { "name": "liquidationThresholdPct", "type": "u8" }, { "name": "allowNewLoans", "type": "u8" }, { "name": "reserved", "type": { "array": ["u8", 2] } }, { "name": "padding", "type": { "array": ["u64", 8] } } ] } }, { "name": "InitObligationArgs", "type": { "kind": "struct", "fields": [ { "name": "tag", "type": "u8" }, { "name": "id", "type": "u8" } ] } }, { "name": "ObligationCollateral", "docs": ["Obligation collateral state"], "type": { "kind": "struct", "fields": [ { "name": "depositReserve", "docs": ["Reserve collateral is deposited to"], "type": "publicKey" }, { "name": "depositedAmount", "docs": ["Amount of collateral deposited"], "type": "u64" }, { "name": "marketValueSf", "docs": ["Collateral market value in quote currency (scaled fraction)"], "type": "u128" }, { "name": "padding", "type": { "array": ["u64", 10] } } ] } }, { "name": "ObligationLiquidity", "docs": ["Obligation liquidity state"], "type": { "kind": "struct", "fields": [ { "name": "borrowReserve", "docs": ["Reserve liquidity is borrowed from"], "type": "publicKey" }, { "name": "cumulativeBorrowRateBsf", "docs": ["Borrow rate used for calculating interest (big scaled fraction)"], "type": { "defined": "BigFractionBytes" } }, { "name": "padding", "type": "u64" }, { "name": "borrowedAmountSf", "docs": ["Amount of liquidity borrowed plus interest (scaled fraction)"], "type": "u128" }, { "name": "marketValueSf", "docs":