goosefx-amm-sdk
Version:
SDK for the GooseFx AMM
2 lines • 45.3 kB
JavaScript
"use strict";var c=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var k=(a,e)=>{for(var i in e)c(a,i,{get:e[i],enumerable:!0})},R=(a,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of S(e))!w.call(a,t)&&t!==i&&c(a,t,{get:()=>e[t],enumerable:!(r=v(e,t))||r.enumerable});return a};var P=a=>R(c({},"__esModule",{value:!0}),a);var T={};k(T,{LENDING_MARKET_AUTH_SEED:()=>b,getGammaPoolDestinationCollateral:()=>M,getLendingMarketAuthority:()=>h,getReserveAccountsForWithdraw:()=>L,getReservesForMarket:()=>C});module.exports=P(T);var g={version:"0.1.0",name:"kamino_lending",instructions:[{name:"initLendingMarket",accounts:[{name:"lendingMarketOwner",isMut:!0,isSigner:!0},{name:"lendingMarket",isMut:!0,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}],args:[{name:"quoteCurrency",type:{array:["u8",32]}}]},{name:"updateLendingMarket",accounts:[{name:"lendingMarketOwner",isMut:!1,isSigner:!0},{name:"lendingMarket",isMut:!0,isSigner:!1}],args:[{name:"mode",type:"u64"},{name:"value",type:{array:["u8",72]}}]},{name:"updateLendingMarketOwner",accounts:[{name:"lendingMarketOwnerCached",isMut:!1,isSigner:!0},{name:"lendingMarket",isMut:!0,isSigner:!1}],args:[]},{name:"initReserve",accounts:[{name:"lendingMarketOwner",isMut:!0,isSigner:!0},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"reserve",isMut:!0,isSigner:!1},{name:"reserveLiquidityMint",isMut:!1,isSigner:!1},{name:"reserveLiquiditySupply",isMut:!0,isSigner:!1},{name:"feeReceiver",isMut:!0,isSigner:!1},{name:"reserveCollateralMint",isMut:!0,isSigner:!1},{name:"reserveCollateralSupply",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"initFarmsForReserve",accounts:[{name:"lendingMarketOwner",isMut:!0,isSigner:!0},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!0,isSigner:!1},{name:"reserve",isMut:!0,isSigner:!1},{name:"farmsProgram",isMut:!1,isSigner:!1},{name:"farmsGlobalConfig",isMut:!1,isSigner:!1},{name:"farmState",isMut:!0,isSigner:!1},{name:"farmsVaultAuthority",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"mode",type:"u8"}]},{name:"updateSingleReserveConfig",accounts:[{name:"lendingMarketOwner",isMut:!1,isSigner:!0},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"reserve",isMut:!0,isSigner:!1}],args:[{name:"mode",type:"u64"},{name:"value",type:{array:["u8",32]}}]},{name:"updateEntireReserveConfig",accounts:[{name:"lendingMarketOwner",isMut:!1,isSigner:!0},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"reserve",isMut:!0,isSigner:!1}],args:[{name:"mode",type:"u64"},{name:"value",type:{array:["u8",648]}}]},{name:"refreshReserve",accounts:[{name:"reserve",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"pythOracle",isMut:!1,isSigner:!1,isOptional:!0},{name:"switchboardPriceOracle",isMut:!1,isSigner:!1,isOptional:!0},{name:"switchboardTwapOracle",isMut:!1,isSigner:!1,isOptional:!0},{name:"scopePrices",isMut:!1,isSigner:!1,isOptional:!0}],args:[]},{name:"depositReserveLiquidity",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"reserve",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"reserveLiquiditySupply",isMut:!0,isSigner:!1},{name:"reserveCollateralMint",isMut:!0,isSigner:!1},{name:"userSourceLiquidity",isMut:!0,isSigner:!1},{name:"userDestinationCollateral",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"liquidityAmount",type:"u64"}]},{name:"redeemReserveCollateral",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"reserve",isMut:!0,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"reserveCollateralMint",isMut:!0,isSigner:!1},{name:"reserveLiquiditySupply",isMut:!0,isSigner:!1},{name:"userSourceCollateral",isMut:!0,isSigner:!1},{name:"userDestinationLiquidity",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"collateralAmount",type:"u64"}]},{name:"initObligation",accounts:[{name:"obligationOwner",isMut:!0,isSigner:!0},{name:"obligation",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"seed1Account",isMut:!1,isSigner:!1},{name:"seed2Account",isMut:!1,isSigner:!1},{name:"ownerUserMetadata",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitObligationArgs"}}]},{name:"initObligationFarmsForReserve",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"owner",isMut:!1,isSigner:!1},{name:"obligation",isMut:!0,isSigner:!1},{name:"lendingMarketAuthority",isMut:!0,isSigner:!1},{name:"reserve",isMut:!0,isSigner:!1},{name:"reserveFarmState",isMut:!0,isSigner:!1},{name:"obligationFarm",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"farmsProgram",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"mode",type:"u8"}]},{name:"refreshObligationFarmsForReserve",accounts:[{name:"crank",isMut:!0,isSigner:!0},{name:"obligation",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!0,isSigner:!1},{name:"reserve",isMut:!1,isSigner:!1},{name:"reserveFarmState",isMut:!0,isSigner:!1},{name:"obligationFarmUserState",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"farmsProgram",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"mode",type:"u8"}]},{name:"refreshObligation",accounts:[{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"obligation",isMut:!0,isSigner:!1}],args:[]},{name:"depositObligationCollateral",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"obligation",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"depositReserve",isMut:!0,isSigner:!1},{name:"reserveDestinationCollateral",isMut:!0,isSigner:!1},{name:"userSourceCollateral",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"instructionSysvarAccount",isMut:!1,isSigner:!1}],args:[{name:"collateralAmount",type:"u64"}]},{name:"withdrawObligationCollateral",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"obligation",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"withdrawReserve",isMut:!1,isSigner:!1},{name:"reserveSourceCollateral",isMut:!0,isSigner:!1},{name:"userDestinationCollateral",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"instructionSysvarAccount",isMut:!1,isSigner:!1}],args:[{name:"collateralAmount",type:"u64"}]},{name:"borrowObligationLiquidity",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"obligation",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"borrowReserve",isMut:!0,isSigner:!1},{name:"reserveSourceLiquidity",isMut:!0,isSigner:!1},{name:"borrowReserveLiquidityFeeReceiver",isMut:!0,isSigner:!1},{name:"userDestinationLiquidity",isMut:!0,isSigner:!1},{name:"referrerTokenState",isMut:!0,isSigner:!1,isOptional:!0},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"instructionSysvarAccount",isMut:!1,isSigner:!1}],args:[{name:"liquidityAmount",type:"u64"}]},{name:"repayObligationLiquidity",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"obligation",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"repayReserve",isMut:!0,isSigner:!1},{name:"reserveDestinationLiquidity",isMut:!0,isSigner:!1},{name:"userSourceLiquidity",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"instructionSysvarAccount",isMut:!1,isSigner:!1}],args:[{name:"liquidityAmount",type:"u64"}]},{name:"depositReserveLiquidityAndObligationCollateral",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"obligation",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"reserve",isMut:!0,isSigner:!1},{name:"reserveLiquiditySupply",isMut:!0,isSigner:!1},{name:"reserveCollateralMint",isMut:!0,isSigner:!1},{name:"reserveDestinationDepositCollateral",isMut:!0,isSigner:!1},{name:"userSourceLiquidity",isMut:!0,isSigner:!1},{name:"userDestinationCollateral",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"instructionSysvarAccount",isMut:!1,isSigner:!1}],args:[{name:"liquidityAmount",type:"u64"}]},{name:"withdrawObligationCollateralAndRedeemReserveCollateral",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"obligation",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"withdrawReserve",isMut:!0,isSigner:!1},{name:"reserveSourceCollateral",isMut:!0,isSigner:!1},{name:"reserveCollateralMint",isMut:!0,isSigner:!1},{name:"reserveLiquiditySupply",isMut:!0,isSigner:!1},{name:"userDestinationLiquidity",isMut:!0,isSigner:!1},{name:"userDestinationCollateral",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"instructionSysvarAccount",isMut:!1,isSigner:!1}],args:[{name:"collateralAmount",type:"u64"}]},{name:"liquidateObligationAndRedeemReserveCollateral",accounts:[{name:"liquidator",isMut:!1,isSigner:!0},{name:"obligation",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"repayReserve",isMut:!0,isSigner:!1},{name:"repayReserveLiquiditySupply",isMut:!0,isSigner:!1},{name:"withdrawReserve",isMut:!0,isSigner:!1},{name:"withdrawReserveCollateralMint",isMut:!0,isSigner:!1},{name:"withdrawReserveCollateralSupply",isMut:!0,isSigner:!1},{name:"withdrawReserveLiquiditySupply",isMut:!0,isSigner:!1},{name:"withdrawReserveLiquidityFeeReceiver",isMut:!0,isSigner:!1},{name:"userSourceLiquidity",isMut:!0,isSigner:!1},{name:"userDestinationCollateral",isMut:!0,isSigner:!1},{name:"userDestinationLiquidity",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"instructionSysvarAccount",isMut:!1,isSigner:!1}],args:[{name:"liquidityAmount",type:"u64"},{name:"minAcceptableReceivedCollateralAmount",type:"u64"},{name:"maxAllowedLtvOverridePercent",type:"u64"}]},{name:"redeemFees",accounts:[{name:"reserve",isMut:!0,isSigner:!1},{name:"reserveLiquidityFeeReceiver",isMut:!0,isSigner:!1},{name:"reserveSupplyLiquidity",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[]},{name:"flashRepayReserveLiquidity",accounts:[{name:"userTransferAuthority",isMut:!1,isSigner:!0},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"reserve",isMut:!0,isSigner:!1},{name:"reserveDestinationLiquidity",isMut:!0,isSigner:!1},{name:"userSourceLiquidity",isMut:!0,isSigner:!1},{name:"reserveLiquidityFeeReceiver",isMut:!0,isSigner:!1},{name:"referrerTokenState",isMut:!0,isSigner:!1,isOptional:!0},{name:"referrerAccount",isMut:!0,isSigner:!1,isOptional:!0},{name:"sysvarInfo",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"liquidityAmount",type:"u64"},{name:"borrowInstructionIndex",type:"u8"}]},{name:"flashBorrowReserveLiquidity",accounts:[{name:"userTransferAuthority",isMut:!1,isSigner:!0},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"reserve",isMut:!0,isSigner:!1},{name:"reserveSourceLiquidity",isMut:!0,isSigner:!1},{name:"userDestinationLiquidity",isMut:!0,isSigner:!1},{name:"reserveLiquidityFeeReceiver",isMut:!0,isSigner:!1},{name:"referrerTokenState",isMut:!0,isSigner:!1,isOptional:!0},{name:"referrerAccount",isMut:!0,isSigner:!1,isOptional:!0},{name:"sysvarInfo",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"liquidityAmount",type:"u64"}]},{name:"socializeLoss",accounts:[{name:"riskCouncil",isMut:!1,isSigner:!0},{name:"obligation",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"reserve",isMut:!0,isSigner:!1},{name:"instructionSysvarAccount",isMut:!1,isSigner:!1}],args:[{name:"liquidityAmount",type:"u64"}]},{name:"requestElevationGroup",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"obligation",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1}],args:[{name:"elevationGroup",type:"u8"}]},{name:"initReferrerTokenState",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"reserve",isMut:!1,isSigner:!1},{name:"referrerTokenState",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"referrer",type:"publicKey"}]},{name:"initUserMetadata",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"userMetadata",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"referrer",type:"publicKey"},{name:"userLookupTable",type:"publicKey"}]},{name:"withdrawReferrerFees",accounts:[{name:"referrer",isMut:!0,isSigner:!0},{name:"referrerTokenState",isMut:!0,isSigner:!1},{name:"reserve",isMut:!0,isSigner:!1},{name:"reserveSupplyLiquidity",isMut:!0,isSigner:!1},{name:"referrerTokenAccount",isMut:!0,isSigner:!1},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[]},{name:"withdrawProtocolFee",accounts:[{name:"lendingMarketOwner",isMut:!1,isSigner:!0},{name:"lendingMarket",isMut:!1,isSigner:!1},{name:"reserve",isMut:!1,isSigner:!1},{name:"lendingMarketAuthority",isMut:!1,isSigner:!1},{name:"feeVault",isMut:!0,isSigner:!1},{name:"lendingMarketOwnerAta",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"initReferrerStateAndShortUrl",accounts:[{name:"referrer",isMut:!0,isSigner:!0},{name:"referrerState",isMut:!0,isSigner:!1},{name:"referrerShortUrl",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"shortUrl",type:"string"}]},{name:"deleteReferrerStateAndShortUrl",accounts:[{name:"referrer",isMut:!0,isSigner:!0},{name:"referrerState",isMut:!0,isSigner:!1},{name:"shortUrl",isMut:!0,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],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:["Liquidity market value in quote currency (scaled fraction)"],type:"u128"},{name:"borrowFactorAdjustedMarketValueSf",docs:["Risk adjusted liquidity market value in quote currency - DEBUG ONLY - use market_value instead"],type:"u128"},{name:"padding2",type:{array:["u64",8]}}]}},{name:"BigFractionBytes",type:{kind:"struct",fields:[{name:"value",type:{array:["u64",4]}},{name:"padding",type:{array:["u64",2]}}]}},{name:"ReserveLiquidity",docs:["Reserve liquidity"],type:{kind:"struct",fields:[{name:"mintPubkey",docs:["Reserve liquidity mint address"],type:"publicKey"},{name:"supplyVault",docs:["Reserve liquidity supply address"],type:"publicKey"},{name:"feeVault",docs:["Reserve liquidity fee collection address"],type:"publicKey"},{name:"availableAmount",docs:["Reserve liquidity available"],type:"u64"},{name:"borrowedAmountSf",docs:["Reserve liquidity borrowed (scaled fraction)"],type:"u128"},{name:"marketPriceSf",docs:["Reserve liquidity market price in quote currency (scaled fraction)"],type:"u128"},{name:"marketPriceLastUpdatedTs",docs:["Unix timestamp of the market price (from the oracle)"],type:"u64"},{name:"mintDecimals",docs:["Reserve liquidity mint decimals"],type:"u64"},{name:"depositLimitCrossedSlot",docs:["Timestamp in slots when the last refresh reserve detected that the liquidity amount is above the deposit cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.","If the threshold is not crossed, then the timestamp is set to 0"],type:"u64"},{name:"borrowLimitCrossedSlot",docs:["Timestamp in slots when the last refresh reserve detected that the borrowed amount is above the borrow cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.","If the threshold is not crossed, then the timestamp is set to 0"],type:"u64"},{name:"cumulativeBorrowRateBsf",docs:["Reserve liquidity cumulative borrow rate (scaled fraction)"],type:{defined:"BigFractionBytes"}},{name:"accumulatedProtocolFeesSf",docs:["Reserve cumulative protocol fees (scaled fraction)"],type:"u128"},{name:"accumulatedReferrerFeesSf",docs:["Reserve cumulative referrer fees (scaled fraction)"],type:"u128"},{name:"pendingReferrerFeesSf",docs:["Reserve pending referrer fees, to be claimed in refresh_obligation by referrer or protocol (scaled fraction)"],type:"u128"},{name:"absoluteReferralRateSf",docs:["Reserve referrer fee absolute rate calculated at each refresh_reserve operation (scaled fraction)"],type:"u128"},{name:"padding2",type:{array:["u64",55]}},{name:"padding3",type:{array:["u128",32]}}]}},{name:"ReserveCollateral",docs:["Reserve collateral"],type:{kind:"struct",fields:[{name:"mintPubkey",docs:["Reserve collateral mint address"],type:"publicKey"},{name:"mintTotalSupply",docs:["Reserve collateral mint supply, used for exchange rate"],type:"u64"},{name:"supplyVault",docs:["Reserve collateral supply address"],type:"publicKey"},{name:"padding1",type:{array:["u128",32]}},{name:"padding2",type:{array:["u128",32]}}]}},{name:"ReserveConfig",docs:["Reserve configuration values"],type:{kind:"struct",fields:[{name:"status",docs:["Status of the reserve Active/Obsolete/Hidden"],type:"u8"},{name:"assetTier",docs:["Asset tier -> 0 - regular (collateral & debt), 1 - isolated collateral, 2 - isolated debt"],type:"u8"},{name:"reserved0",type:{array:["u8",2]}},{name:"multiplierSideBoost",docs:["Boost for side (debt or collateral)"],type:{array:["u8",2]}},{name:"multiplierTagBoost",docs:["Reward points multiplier per obligation type"],type:{array:["u8",8]}},{name:"protocolTakeRatePct",docs:["Protocol take rate is the amount borrowed interest protocol receives, as a percentage"],type:"u8"},{name:"protocolLiquidationFeePct",docs:["Cut of the liquidation bonus that the protocol receives, as a percentage"],type:"u8"},{name:"loanToValuePct",docs:["Target ratio of the value of borrows to deposits, as a percentage","0 if use as collateral is disabled"],type:"u8"},{name:"liquidationThresholdPct",docs:["Loan to value ratio at which an obligation can be liquidated, as percentage"],type:"u8"},{name:"minLiquidationBonusBps",docs:["Minimum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps"],type:"u16"},{name:"maxLiquidationBonusBps",docs:["Maximum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps"],type:"u16"},{name:"badDebtLiquidationBonusBps",docs:["Bad debt liquidation bonus for an undercollateralized obligation, as bps"],type:"u16"},{name:"deleveragingMarginCallPeriodSecs",docs:["Time in seconds that must pass before redemptions are enabled after the deposit limit is crossed"],type:"u64"},{name:"deleveragingThresholdSlotsPerBps",docs:["The rate at which the deleveraging threshold decreases in slots per bps","e.g. 1 bps per hour would be 7200 slots per bps (assuming 2 slots per second)"],type:"u64"},{name:"fees",docs:["Program owner fees assessed, separate from gains due to interest accrual"],type:{defined:"ReserveFees"}},{name:"borrowRateCurve",docs:["Borrow rate curve based on utilization"],type:{defined:"BorrowRateCurve"}},{name:"borrowFactorPct",docs:["Borrow factor in percentage - used for risk adjustment"],type:"u64"},{name:"depositLimit",docs:["Maximum deposit limit of liquidity in native units, u64::MAX for inf"],type:"u64"},{name:"borrowLimit",docs:["Maximum amount borrowed, u64::MAX for inf, 0 to disable borrows (protected deposits)"],type:"u64"},{name:"tokenInfo",docs:["Token id from TokenInfos struct"],type:{defined:"TokenInfo"}},{name:"depositWithdrawalCap",docs:["Deposit withdrawl caps - deposit & redeem"],type:{defined:"WithdrawalCaps"}},{name:"debtWithdrawalCap",docs:["Debt withdrawl caps - borrow & repay"],type:{defined:"WithdrawalCaps"}},{name:"elevationGroups",type:{array:["u8",20]}},{name:"reserved1",type:{array:["u8",4]}}]}},{name:"WithdrawalCaps",docs:["Reserve Withdrawal Caps State"],type:{kind:"struct",fields:[{name:"configCapacity",type:"i64"},{name:"currentTotal",type:"i64"},{name:"lastIntervalStartTimestamp",type:"u64"},{name:"configIntervalLengthSeconds",type:"u64"}]}},{name:"ReserveFees",docs:["Additional fee information on a reserve","","These exist separately from interest accrual fees, and are specifically for the program owner","and referral fee. The fees are paid out as a percentage of liquidity token amounts during","repayments and liquidations."],type:{kind:"struct",fields:[{name:"borrowFeeSf",docs:["Fee assessed on `BorrowObligationLiquidity`, as scaled fraction (60 bits fractional part)","Must be between `0` and `2^60`, such that `2^60 = 1`. A few examples for","clarity:","1% = (1 << 60) / 100 = 11529215046068470","0.01% (1 basis point) = 115292150460685","0.00001% (Aave borrow fee) = 115292150461"],type:"u64"},{name:"flashLoanFeeSf",docs:["Fee for flash loan, expressed as scaled fraction.","0.3% (Aave flash loan fee) = 0.003 * 2^60 = 3458764513820541"],type:"u64"},{name:"padding",docs:["Used for allignment"],type:{array:["u8",8]}}]}},{name:"TokenInfo",type:{kind:"struct",fields:[{name:"name",docs:["UTF-8 encoded name of the token (null-terminated)"],type:{array:["u8",32]}},{name:"heuristic",docs:["Heuristics limits of acceptable price"],type:{defined:"PriceHeuristic"}},{name:"maxTwapDivergenceBps",docs:["Max divergence between twap and price in bps"],type:"u64"},{name:"maxAgePriceSeconds",type:"u64"},{name:"maxAgeTwapSeconds",type:"u64"},{name:"scopeConfiguration",docs:["Scope price configuration"],type:{defined:"ScopeConfiguration"}},{name:"switchboardConfiguration",docs:["Switchboard configuration"],type:{defined:"SwitchboardConfiguration"}},{name:"pythConfiguration",docs:["Pyth configuration"],type:{defined:"PythConfiguration"}},{name:"padding",type:{array:["u64",20]}}]}},{name:"PriceHeuristic",type:{kind:"struct",fields:[{name:"lower",docs:["Lower value of acceptable price"],type:"u64"},{name:"upper",docs:["Upper value of acceptable price"],type:"u64"},{name:"exp",docs:["Number of decimals of the previously defined values"],type:"u64"}]}},{name:"ScopeConfiguration",type:{kind:"struct",fields:[{name:"priceFeed",docs:["Pubkey of the scope price feed (disabled if `null` or `default`)"],type:"publicKey"},{name:"priceChain",docs:["This is the scope_id price chain that results in a price for the token"],type:{array:["u16",4]}},{name:"twapChain",docs:["This is the scope_id price chain for the twap"],type:{array:["u16",4]}}]}},{name:"SwitchboardConfiguration",type:{kind:"struct",fields:[{name:"priceAggregator",docs:["Pubkey of the base price feed (disabled if `null` or `default`)"],type:"publicKey"},{name:"twapAggregator",type:"publicKey"}]}},{name:"PythConfiguration",type:{kind:"struct",fields:[{name:"price",docs:["Pubkey of the base price feed (disabled if `null` or `default`)"],type:"publicKey"}]}},{name:"BorrowRateCurve",type:{kind:"struct",fields:[{name:"points",type:{array:[{defined:"CurvePoint"},11]}}]}},{name:"CurvePoint",type:{kind:"struct",fields:[{name:"utilizationRateBps",type:"u32"},{name:"borrowRateBps",type:"u32"}]}},{name:"LiquidationTokenTest",type:{kind:"enum",variants:[{name:"Sol"},{name:"Usdh"}]}},{name:"WithdrawalCapAccumulatorAction",type:{kind:"enum",variants:[{name:"KeepAccumulator"},{name:"ResetAccumulator"}]}},{name:"ReserveFarmKind",type:{kind:"enum",variants:[{name:"Collateral"},{name:"Debt"}]}},{name:"ReserveStatus",type:{kind:"enum",variants:[{name:"Active"},{name:"Obsolete"},{name:"Hidden"}]}},{name:"FeeCalculation",docs:["Calculate fees exlusive or inclusive of an amount"],type:{kind:"enum",variants:[{name:"Exclusive"},{name:"Inclusive"}]}},{name:"AssetTier",type:{kind:"enum",variants:[{name:"Regular"},{name:"IsolatedCollateral"},{name:"IsolatedDebt"}]}},{name:"UpdateReserveConfigValue",type:{kind:"enum",variants:[{name:"Bool",fields:["bool"]},{name:"U8",fields:["u8"]},{name:"U8Tuple",fields:["u8","u8"]},{name:"U16",fields:["u16"]},{name:"U64",fields:["u64"]},{name:"Pubkey",fields:["publicKey"]},{name:"ScopeChain",fields:[{array:["u16",4]}]},{name:"Name",fields:[{array:["u8",32]}]},{name:"BorrowRateCurve",fields:[{defined:"BorrowRateCurve"}]},{name:"Full",fields:[{defined:"ReserveConfig"}]},{name:"WithdrawalCap",fields:["u64","u64"]},{name:"ElevationGroups",fields:[{array:["u8",20]}]}]}},{name:"UpdateConfigMode",type:{kind:"enum",variants:[{name:"UpdateLoanToValuePct"},{name:"UpdateMaxLiquidationBonusBps"},{name:"UpdateLiquidationThresholdPct"},{name:"UpdateProtocolLiquidationFee"},{name:"UpdateProtocolTakeRate"},{name:"UpdateFeesBorrowFee"},{name:"UpdateFeesFlashLoanFee"},{name:"UpdateFeesReferralFeeBps"},{name:"UpdateDepositLimit"},{name:"UpdateBorrowLimit"},{name:"UpdateTokenInfoLowerHeuristic"},{name:"UpdateTokenInfoUpperHeuristic"},{name:"UpdateTokenInfoExpHeuristic"},{name:"UpdateTokenInfoTwapDivergence"},{name:"UpdateTokenInfoScopeTwap"},{name:"UpdateTokenInfoScopeChain"},{name:"UpdateTokenInfoName"},{name:"UpdateTokenInfoPriceMaxAge"},{name:"UpdateTokenInfoTwapMaxAge"},{name:"UpdateScopePriceFeed"},{name:"UpdatePythPrice"},{name:"UpdateSwitchboardFeed"},{name:"UpdateSwitchboardTwapFeed"},{name:"UpdateBorrowRateCurve"},{name:"UpdateEntireReserveConfig"},{name:"UpdateDebtWithdrawalCap"},{name:"UpdateDepositWithdrawalCap"},{name:"UpdateDebtWithdrawalCapCurrentTotal"},{name:"UpdateDepositWithdrawalCapCurrentTotal"},{name:"UpdateBadDebtLiquidationBonusBps"},{name:"UpdateMinLiquidationBonusBps"},{name:"DeleveragingMarginCallPeriod"},{name:"UpdateBorrowFactor"},{name:"UpdateAssetTier"},{name:"UpdateElevationGroup"},{name:"DeleveragingThresholdSlotsPerBps"},{name:"UpdateMultiplierSideBoost"},{name:"UpdateMultiplierTagBoost"},{name:"UpdateReserveStatus"}]}},{name:"UpdateLendingMarketConfigValue",type:{kind:"enum",variants:[{name:"Bool",fields:["bool"]},{name:"U8",fields:["u8"]},{name:"U8Array",fields:[{array:["u8",8]}]},{name:"U16",fields:["u16"]},{name:"U64",fields:["u64"]},{name:"Pubkey",fields:["publicKey"]},{name:"ElevationGroup",fields:[{defined:"ElevationGroup"}]}]}},{name:"UpdateLendingMarketMode",type:{kind:"enum",variants:[{name:"UpdateOwner"},{name:"UpdateEmergencyMode"},{name:"UpdateLiquidationCloseFactor"},{name:"UpdateLiquidationMaxValue"},{name:"UpdateGlobalUnhealthyBorrow"},{name:"UpdateGlobalAllowedBorrow"},{name:"UpdateRiskCouncil"},{name:"UpdateMinFullLiquidationThreshold"},{name:"UpdateInsolvencyRiskLtv"},{name:"UpdateElevationGroup"},{name:"UpdateReferralFeeBps"},{name:"UpdateMultiplierPoints"},{name:"UpdatePriceRefreshTriggerToMaxAgePct"}]}},{name:"RequiredIxType",type:{kind:"enum",variants:[{name:"RefreshReserve"},{name:"RefreshFarmsForObligationForReserve"},{name:"RefreshObligation"}]}}],errors:[{code:6e3,name:"InvalidMarketAuthority",msg:"Market authority is invalid"},{code:6001,name:"InvalidMarketOwner",msg:"Market owner is invalid"},{code:6002,name:"InvalidAccountOwner",msg:"Input account owner is not the program address"},{code:6003,name:"InvalidAmount",msg:"Input amount is invalid"},{code:6004,name:"InvalidConfig",msg:"Input config value is invalid"},{code:6005,name:"InvalidSigner",msg:"Input account must be a signer"},{code:6006,name:"InvalidAccountInput",msg:"Invalid account input"},{code:6007,name:"MathOverflow",msg:"Math operation overflow"},{code:6008,name:"InsufficientLiquidity",msg:"Insufficient liquidity available"},{code:6009,name:"ReserveStale",msg:"Reserve state needs to be refreshed"},{code:6010,name:"WithdrawTooSmall",msg:"Withdraw amount too small"},{code:6011,name:"WithdrawTooLarge",msg:"Withdraw amount too large"},{code:6012,name:"BorrowTooSmall",msg:"Borrow amount too small to receive liquidity after fees"},{code:6013,name:"BorrowTooLarge",msg:"Borrow amount too large for deposited collateral"},{code:6014,name:"RepayTooSmall",msg:"Repay amount too small to transfer liquidity"},{code:6015,name:"LiquidationTooSmall",msg:"Liquidation amount too small to receive collateral"},{code:6016,name:"ObligationHealthy",msg:"Cannot liquidate healthy obligations"},{code:6017,name:"ObligationStale",msg:"Obligation state needs to be refreshed"},{code:6018,name:"ObligationReserveLimit",msg:"Obligation reserve limit exceeded"},{code:6019,name:"InvalidObligationOwner",msg:"Obligation owner is invalid"},{code:6020,name:"ObligationDepositsEmpty",msg:"Obligation deposits are empty"},{code:6021,name:"ObligationBorrowsEmpty",msg:"Obligation borrows are empty"},{code:6022,name:"ObligationDepositsZero",msg:"Obligation deposits have zero value"},{code:6023,name:"ObligationBorrowsZero",msg:"Obligation borrows have zero value"},{code:6024,name:"InvalidObligationCollateral",msg:"Invalid obligation collateral"},{code:6025,name:"InvalidObligationLiquidity",msg:"Invalid obligation liquidity"},{code:6026,name:"ObligationCollateralEmpty",msg:"Obligation collateral is empty"},{code:6027,name:"ObligationLiquidityEmpty",msg:"Obligation liquidity is empty"},{code:6028,name:"NegativeInterestRate",msg:"Interest rate is negative"},{code:6029,name:"InvalidOracleConfig",msg:"Input oracle config is invalid"},{code:6030,name:"InsufficientProtocolFeesToRedeem",msg:"Insufficient protocol fees to claim or no liquidity available"},{code:6031,name:"FlashBorrowCpi",msg:"No cpi flash borrows allowed"},{code:6032,name:"NoFlashRepayFound",msg:"No corresponding repay found for flash borrow"},{code:6033,name:"InvalidFlashRepay",msg:"Invalid repay found"},{code:6034,name:"FlashRepayCpi",msg:"No cpi flash repays allowed"},{code:6035,name:"MultipleFlashBorrows",msg:"Multiple flash borrows not allowed in the same transaction"},{code:6036,name:"FlashLoansDisabled",msg:"Flash loans are disabled for this reserve"},{code:6037,name:"SwitchboardV2Error",msg:"Switchboard error"},{code:6038,name:"CouldNotDeserializeScope",msg:"Cannot deserialize the scope price account"},{code:6039,name:"PriceTooOld",msg:"Price too old"},{code:6040,name:"PriceTooDivergentFromTwap",msg:"Price too divergent from twap"},{code:6041,name:"InvalidTwapPrice",msg:"Invalid twap price"},{code:6042,name:"GlobalEmergencyMode",msg:"Emergency mode is enabled"},{code:6043,name:"InvalidFlag",msg:"Invalid lending market config"},{code:6044,name:"PriceNotValid",msg:"Price is not valid"},{code:6045,name:"PriceIsBiggerThanHeuristic",msg:"Price is bigger than allowed by heuristic"},{code:6046,name:"PriceIsLowerThanHeuristic",msg:"Price lower than allowed by heuristic"},{code:6047,name:"PriceIsZero",msg:"Price is zero"},{code:6048,name:"PriceConfidenceTooWide",msg:"Price confidence too wide"},{code:6049,name:"IntegerOverflow",msg:"Conversion between integers failed"},{code:6050,name:"NoFarmForReserve",msg:"This reserve does not have a farm"},{code:6051,name:"IncorrectInstructionInPosition",msg:"Wrong instruction at expected position"},{code:6052,name:"NoPriceFound",msg:"No price found"},{code:6053,name:"InvalidTwapConfig",msg:"Invalid Twap configuration: Twap is enabled but one of the enabled price doesn't have a twap"},{code:6054,name:"InvalidPythPriceAccount",msg:"Pyth price account does not match configuration"},{code:6055,name:"InvalidSwitchboardAccount",msg:"Switchboard account(s) do not match configuration"},{code:6056,name:"InvalidScopePriceAccount",msg:"Scope price account does not match configuration"},{code:6057,name:"ObligationCollateralLtvZero",msg:"The obligation has one collateral with an LTV set to 0. Withdraw it before withdrawing other collaterals"},{code:6058,name:"InvalidObligationSeedsValue",msg:"Seeds must be default pubkeys for tag 0, and mint addresses for tag 1 or 2"},{code:6059,name:"InvalidObligationId",msg:"Obligation id must be 0"},{code:6060,name:"InvalidBorrowRateCurvePoint",msg:"Invalid borrow rate curve point"},{code:6061,name:"InvalidUtilizationRate",msg:"Invalid utilization rate"},{code:6062,name:"CannotSocializeObligationWithCollateral",msg:"Obligation hasn't been fully liquidated and debt cannot be socialized."},{code:6063,name:"ObligationEmpty",msg:"Obligation has no borrows or deposits."},{code:6064,name:"WithdrawalCapReached",msg:"Withdrawal cap is reached"},{code:6065,name:"LastTimestampGreaterThanCurrent",msg:"The last interval start timestamp is greater than the current timestamp"},{code:6066,name:"LiquidationSlippageError",msg:"The reward amount is less than the minimum acceptable received collateral"},{code:6067,name:"IsolatedAssetTierViolation",msg:"Isolated Asset Tier Violation"},{code:6068,name:"InconsistentElevationGroup",msg:"The obligation's elevation group and the reserve's are not the same"},{code:6069,name:"InvalidElevationGroup",msg:"The elevation group chosen for the reserve does not exist in the lending market"},{code:6070,name:"InvalidElevationGroupConfig",msg:"The elevation group updated has wrong parameters set"},{code:6071,name:"UnhealthyElevationGroupLtv",msg:"The current obligation must have most or all its debt repaid before changing the elevation group"},{code:6072,name:"ElevationGroupNewLoansDisabled",msg:"Elevation group does not accept any new loans or any new borrows/withdrawals"},{code:6073,name:"ReserveDeprecated",msg:"Reserve was deprecated, no longer usable"},{code:6074,name:"ReferrerAccountNotInitialized",msg:"Referrer account not initialized"},{code:6075,name:"ReferrerAccountMintMissmatch",msg:"Referrer account mint does not match the operation reserve mint"},{code:6076,name:"ReferrerAccountWrongAddress",msg:"Referrer account address is not a valid program address"},{code:6077,name:"ReferrerAccountReferrerMissmatch",msg:"Referrer account referrer does not match the owner referrer"},{code:6078,name:"ReferrerAccountMissing",msg:"Referrer account missing for obligation with referrer"},{code:6079,name:"InsufficientReferralFeesToRedeem",msg:"Insufficient referral fees to claim or no liquidity available"},{code:6080,name:"CpiDisabled",msg:"CPI disabled for this instruction"},{code:6081,name:"ShortUrlNotAsciiAlphanumeric",msg:"Referrer short_url is not ascii alphanumeric"},{code:6082,name:"ReserveObsolete",msg:"Reserve is marked as obsolete"},{code:6083,name:"ElevationGroupAlreadyActivated",msg:"Obligation already part of the same elevation group"},{code:6084,name:"ObligationInDeprecatedReserve",msg:"Obligation has a deposit in a deprecated reserve"}]};var l=require("@solana/web3.js"),u=require("@project-serum/anchor"),y="KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD",A="7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF",b="lma";function h(a,e){return l.PublicKey.findProgramAddressSync([Buffer.from(b),a.toBuffer()],e)}function M(a,e,i){return l.PublicKey.findProgramAddressSync([Buffer.from("pool_kamino_deposits"),a.toBuffer(),e.toBuffer()],i)[0]}async function C(a,e,i){let r=new u.AnchorProvider(a,new u.Wallet(l.Keypair.generate()),{commitment:"confirmed"}),t=i!=null?i:y,o=new u.Program(g,t,r),d=e!=null?e:new l.PublicKey(A),m=await o.account.reserve.all([{memcmp:{offset:32,bytes:d.toBase58()}}]),s=new Map;return m.forEach(n=>{let f=n.account.liquidity;s.set(f.mintPubkey.toBase58(),{address:n.publicKey,state:{version:n.account.version,lendingMarket:n.account.lendingMarket,farmCollateral:n.account.farmCollateral,farmDebt:n.account.farmDebt,liquidity:f,collateral:n.account.collateral}})}),s}function L(a,e,i,r,t,o,d){let m=new Array(6).fill(o).map(n=>({pubkey:n,isWritable:!1,isSigner:!1})),s=new Array;return r.gtn(0)&&e?s.push(...p(a,e,o,d)):s.push(...m),t.gtn(0)&&i?s.push(...p(a,i,o,d)):s.push(...m),s}function p(a,e,i,r){let t=h(e.state.lendingMarket,r!=null?r:new l.PublicKey(y))[0],o=M(a,e.state.liquidity.mintPubkey,i);return[{pubkey:e.address,isWritable:!0,isSigner:!0},{pubkey:e.state.lendingMarket,isWritable:!0,isSigner:!0},{pubkey:t,isWritable:!1,isSigner:!0},{pubkey:e.state.liquidity.supplyVault,isWritable:!0,isSigner:!0},{pubkey:e.state.collateral.mintPubkey,isWritable:!0,isSigner:!0},{pubkey:o,isWritable:!1,isSigner:!0}]}0&&(module.exports={LENDING_MARKET_AUTH_SEED,getGammaPoolDestinationCollateral,getLendingMarketAuthority,getReserveAccountsForWithdraw,getReservesForMarket});
//# sourceMappingURL=kamino.js.map