UNPKG

@kamino-finance/klend-sdk

Version:

Typescript SDK for interacting with the Kamino Lending (klend) protocol

1,659 lines (1,658 loc) 147 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": "liquidityTokenProgram", "isMut": false, "isSigner": false }, { "name": "collateralTokenProgram", "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": "systemProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "mode", "type": "u8" } ] }, { "name": "updateReserveConfig", "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": "bytes" }, { "name": "skipValidation", "type": "bool" } ] }, { "name": "redeemFees", "accounts": [ { "name": "reserve", "isMut": true, "isSigner": false }, { "name": "reserveLiquidityMint", "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": "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": "withdrawProtocolFee", "accounts": [ { "name": "lendingMarketOwner", "isMut": false, "isSigner": true }, { "name": "lendingMarket", "isMut": false, "isSigner": false }, { "name": "reserve", "isMut": false, "isSigner": false }, { "name": "reserveLiquidityMint", "isMut": true, "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": "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": "refreshReservesBatch", "accounts": [], "args": [ { "name": "skipPriceUpdates", "type": "bool" } ] }, { "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": "reserveLiquidityMint", "isMut": true, "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": "collateralTokenProgram", "isMut": false, "isSigner": false }, { "name": "liquidityTokenProgram", "isMut": false, "isSigner": false }, { "name": "instructionSysvarAccount", "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": "reserveLiquidityMint", "isMut": true, "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": "collateralTokenProgram", "isMut": false, "isSigner": false }, { "name": "liquidityTokenProgram", "isMut": false, "isSigner": false }, { "name": "instructionSysvarAccount", "isMut": false, "isSigner": false } ], "args": [ { "name": "collateralAmount", "type": "u64" } ] }, { "name": "initObligation", "accounts": [ { "name": "obligationOwner", "isMut": false, "isSigner": true }, { "name": "feePayer", "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": "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": "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": "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": true, "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": "borrowReserveLiquidityMint", "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": "reserveLiquidityMint", "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": "reserveLiquidityMint", "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": "placeholderUserDestinationCollateral", "isMut": false, "isSigner": false, "isOptional": true }, { "name": "collateralTokenProgram", "isMut": false, "isSigner": false }, { "name": "liquidityTokenProgram", "isMut": false, "isSigner": false }, { "name": "instructionSysvarAccount", "isMut": false, "isSigner": false } ], "args": [ { "name": "liquidityAmount", "type": "u64" } ] }, { "name": "withdrawObligationCollateralAndRedeemReserveCollateral", "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": "withdrawReserve", "isMut": true, "isSigner": false }, { "name": "reserveLiquidityMint", "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": "placeholderUserDestinationCollateral", "isMut": false, "isSigner": false, "isOptional": true }, { "name": "collateralTokenProgram", "isMut": false, "isSigner": false }, { "name": "liquidityTokenProgram", "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": "repayReserveLiquidityMint", "isMut": true, "isSigner": false }, { "name": "repayReserveLiquiditySupply", "isMut": true, "isSigner": false }, { "name": "withdrawReserve", "isMut": true, "isSigner": false }, { "name": "withdrawReserveLiquidityMint", "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": "collateralTokenProgram", "isMut": false, "isSigner": false }, { "name": "repayLiquidityTokenProgram", "isMut": false, "isSigner": false }, { "name": "withdrawLiquidityTokenProgram", "isMut": false, "isSigner": false }, { "name": "instructionSysvarAccount", "isMut": false, "isSigner": false } ], "args": [ { "name": "liquidityAmount", "type": "u64" }, { "name": "minAcceptableReceivedLiquidityAmount", "type": "u64" }, { "name": "maxAllowedLtvOverridePercent", "type": "u64" } ] }, { "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": "reserveLiquidityMint", "isMut": false, "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": "reserveLiquidityMint", "isMut": false, "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": "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": false, "isSigner": true }, { "name": "feePayer", "isMut": true, "isSigner": true }, { "name": "userMetadata", "isMut": true, "isSigner": false }, { "name": "referrerUserMetadata", "isMut": false, "isSigner": false, "isOptional": true }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false } ], "args": [ { "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": "reserveLiquidityMint", "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": "initReferrerStateAndShortUrl", "accounts": [ { "name": "referrer", "isMut": true, "isSigner": true }, { "name": "referrerState", "isMut": true, "isSigner": false }, { "name": "referrerShortUrl", "isMut": true, "isSigner": false }, { "name": "referrerUserMetadata", "isMut": false, "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,