@exponent-labs/klend-idl 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/build/accounts/LendingMarket.d.ts +88 -0
  2. package/build/accounts/LendingMarket.js +225 -0
  3. package/build/accounts/LendingMarket.js.map +1 -0
  4. package/build/accounts/Obligation.d.ts +85 -0
  5. package/build/accounts/Obligation.js +217 -0
  6. package/build/accounts/Obligation.js.map +1 -0
  7. package/build/accounts/ReferrerState.d.ts +23 -0
  8. package/build/accounts/ReferrerState.js +85 -0
  9. package/build/accounts/ReferrerState.js.map +1 -0
  10. package/build/accounts/ReferrerTokenState.d.ts +36 -0
  11. package/build/accounts/ReferrerTokenState.js +116 -0
  12. package/build/accounts/ReferrerTokenState.js.map +1 -0
  13. package/build/accounts/Reserve.d.ts +61 -0
  14. package/build/accounts/Reserve.js +169 -0
  15. package/build/accounts/Reserve.js.map +1 -0
  16. package/build/accounts/ShortUrl.d.ts +23 -0
  17. package/build/accounts/ShortUrl.js +85 -0
  18. package/build/accounts/ShortUrl.js.map +1 -0
  19. package/build/accounts/UserMetadata.d.ts +36 -0
  20. package/build/accounts/UserMetadata.js +116 -0
  21. package/build/accounts/UserMetadata.js.map +1 -0
  22. package/build/accounts/UserState.d.ts +69 -0
  23. package/build/accounts/UserState.js +182 -0
  24. package/build/accounts/UserState.js.map +1 -0
  25. package/build/accounts/index.d.ts +16 -0
  26. package/build/accounts/index.js +20 -0
  27. package/build/accounts/index.js.map +1 -0
  28. package/build/errors/anchor.d.ts +434 -0
  29. package/build/errors/anchor.js +767 -0
  30. package/build/errors/anchor.js.map +1 -0
  31. package/build/errors/custom.d.ts +898 -0
  32. package/build/errors/custom.js +1580 -0
  33. package/build/errors/custom.js.map +1 -0
  34. package/build/errors/index.d.ts +5 -0
  35. package/build/errors/index.js +71 -0
  36. package/build/errors/index.js.map +1 -0
  37. package/build/index.d.ts +4 -0
  38. package/build/index.js +34 -0
  39. package/build/index.js.map +1 -0
  40. package/build/instructions/borrowObligationLiquidity.d.ts +21 -0
  41. package/build/instructions/borrowObligationLiquidity.js +80 -0
  42. package/build/instructions/borrowObligationLiquidity.js.map +1 -0
  43. package/build/instructions/borrowObligationLiquidityV2.d.ts +28 -0
  44. package/build/instructions/borrowObligationLiquidityV2.js +90 -0
  45. package/build/instructions/borrowObligationLiquidityV2.js.map +1 -0
  46. package/build/instructions/deleteReferrerStateAndShortUrl.d.ts +9 -0
  47. package/build/instructions/deleteReferrerStateAndShortUrl.js +20 -0
  48. package/build/instructions/deleteReferrerStateAndShortUrl.js.map +1 -0
  49. package/build/instructions/depositObligationCollateral.d.ts +17 -0
  50. package/build/instructions/depositObligationCollateral.js +64 -0
  51. package/build/instructions/depositObligationCollateral.js.map +1 -0
  52. package/build/instructions/depositReserveLiquidity.d.ts +21 -0
  53. package/build/instructions/depositReserveLiquidity.js +88 -0
  54. package/build/instructions/depositReserveLiquidity.js.map +1 -0
  55. package/build/instructions/depositReserveLiquidityAndObligationCollateral.d.ts +23 -0
  56. package/build/instructions/depositReserveLiquidityAndObligationCollateral.js +94 -0
  57. package/build/instructions/depositReserveLiquidityAndObligationCollateral.js.map +1 -0
  58. package/build/instructions/depositReserveLiquidityAndObligationCollateralV2.d.ts +30 -0
  59. package/build/instructions/depositReserveLiquidityAndObligationCollateralV2.js +100 -0
  60. package/build/instructions/depositReserveLiquidityAndObligationCollateralV2.js.map +1 -0
  61. package/build/instructions/flashBorrowReserveLiquidity.d.ts +21 -0
  62. package/build/instructions/flashBorrowReserveLiquidity.js +80 -0
  63. package/build/instructions/flashBorrowReserveLiquidity.js.map +1 -0
  64. package/build/instructions/flashRepayReserveLiquidity.d.ts +22 -0
  65. package/build/instructions/flashRepayReserveLiquidity.js +77 -0
  66. package/build/instructions/flashRepayReserveLiquidity.js.map +1 -0
  67. package/build/instructions/idlMissingTypes.d.ts +18 -0
  68. package/build/instructions/idlMissingTypes.js +62 -0
  69. package/build/instructions/idlMissingTypes.js.map +1 -0
  70. package/build/instructions/index.d.ts +74 -0
  71. package/build/instructions/index.js +78 -0
  72. package/build/instructions/index.js.map +1 -0
  73. package/build/instructions/initFarmsForReserve.d.ts +18 -0
  74. package/build/instructions/initFarmsForReserve.js +62 -0
  75. package/build/instructions/initFarmsForReserve.js.map +1 -0
  76. package/build/instructions/initLendingMarket.d.ts +13 -0
  77. package/build/instructions/initLendingMarket.js +53 -0
  78. package/build/instructions/initLendingMarket.js.map +1 -0
  79. package/build/instructions/initObligation.d.ts +18 -0
  80. package/build/instructions/initObligation.js +54 -0
  81. package/build/instructions/initObligation.js.map +1 -0
  82. package/build/instructions/initObligationFarmsForReserve.d.ts +19 -0
  83. package/build/instructions/initObligationFarmsForReserve.js +59 -0
  84. package/build/instructions/initObligationFarmsForReserve.js.map +1 -0
  85. package/build/instructions/initReferrerStateAndShortUrl.d.ts +14 -0
  86. package/build/instructions/initReferrerStateAndShortUrl.js +54 -0
  87. package/build/instructions/initReferrerStateAndShortUrl.js.map +1 -0
  88. package/build/instructions/initReferrerTokenState.d.ts +14 -0
  89. package/build/instructions/initReferrerTokenState.js +50 -0
  90. package/build/instructions/initReferrerTokenState.js.map +1 -0
  91. package/build/instructions/initReserve.d.ts +17 -0
  92. package/build/instructions/initReserve.js +56 -0
  93. package/build/instructions/initReserve.js.map +1 -0
  94. package/build/instructions/initUserMetadata.d.ts +14 -0
  95. package/build/instructions/initUserMetadata.js +54 -0
  96. package/build/instructions/initUserMetadata.js.map +1 -0
  97. package/build/instructions/liquidateObligationAndRedeemReserveCollateral.d.ts +31 -0
  98. package/build/instructions/liquidateObligationAndRedeemReserveCollateral.js +126 -0
  99. package/build/instructions/liquidateObligationAndRedeemReserveCollateral.js.map +1 -0
  100. package/build/instructions/redeemFees.d.ts +11 -0
  101. package/build/instructions/redeemFees.js +38 -0
  102. package/build/instructions/redeemFees.js.map +1 -0
  103. package/build/instructions/redeemReserveCollateral.d.ts +21 -0
  104. package/build/instructions/redeemReserveCollateral.js +92 -0
  105. package/build/instructions/redeemReserveCollateral.js.map +1 -0
  106. package/build/instructions/refreshObligation.d.ts +6 -0
  107. package/build/instructions/refreshObligation.js +17 -0
  108. package/build/instructions/refreshObligation.js.map +1 -0
  109. package/build/instructions/refreshObligationFarmsForReserve.d.ts +18 -0
  110. package/build/instructions/refreshObligationFarmsForReserve.js +62 -0
  111. package/build/instructions/refreshObligationFarmsForReserve.js.map +1 -0
  112. package/build/instructions/refreshReserve.d.ts +10 -0
  113. package/build/instructions/refreshReserve.js +29 -0
  114. package/build/instructions/refreshReserve.js.map +1 -0
  115. package/build/instructions/refreshReservesBatch.d.ts +6 -0
  116. package/build/instructions/refreshReservesBatch.js +43 -0
  117. package/build/instructions/refreshReservesBatch.js.map +1 -0
  118. package/build/instructions/repayObligationLiquidity.d.ts +18 -0
  119. package/build/instructions/repayObligationLiquidity.js +65 -0
  120. package/build/instructions/repayObligationLiquidity.js.map +1 -0
  121. package/build/instructions/repayObligationLiquidityV2.d.ts +26 -0
  122. package/build/instructions/repayObligationLiquidityV2.js +76 -0
  123. package/build/instructions/repayObligationLiquidityV2.js.map +1 -0
  124. package/build/instructions/requestElevationGroup.d.ts +11 -0
  125. package/build/instructions/requestElevationGroup.js +47 -0
  126. package/build/instructions/requestElevationGroup.js.map +1 -0
  127. package/build/instructions/socializeLoss.d.ts +14 -0
  128. package/build/instructions/socializeLoss.js +53 -0
  129. package/build/instructions/socializeLoss.js.map +1 -0
  130. package/build/instructions/updateLendingMarket.d.ts +12 -0
  131. package/build/instructions/updateLendingMarket.js +47 -0
  132. package/build/instructions/updateLendingMarket.js.map +1 -0
  133. package/build/instructions/updateLendingMarketOwner.d.ts +6 -0
  134. package/build/instructions/updateLendingMarketOwner.js +21 -0
  135. package/build/instructions/updateLendingMarketOwner.js.map +1 -0
  136. package/build/instructions/updateReserveConfig.d.ts +14 -0
  137. package/build/instructions/updateReserveConfig.js +49 -0
  138. package/build/instructions/updateReserveConfig.js.map +1 -0
  139. package/build/instructions/withdrawObligationCollateral.d.ts +18 -0
  140. package/build/instructions/withdrawObligationCollateral.js +69 -0
  141. package/build/instructions/withdrawObligationCollateral.js.map +1 -0
  142. package/build/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.d.ts +23 -0
  143. package/build/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js +98 -0
  144. package/build/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js.map +1 -0
  145. package/build/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.d.ts +30 -0
  146. package/build/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.js +104 -0
  147. package/build/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.js.map +1 -0
  148. package/build/instructions/withdrawProtocolFee.d.ts +17 -0
  149. package/build/instructions/withdrawProtocolFee.js +64 -0
  150. package/build/instructions/withdrawProtocolFee.js.map +1 -0
  151. package/build/instructions/withdrawReferrerFees.d.ts +13 -0
  152. package/build/instructions/withdrawReferrerFees.js +40 -0
  153. package/build/instructions/withdrawReferrerFees.js.map +1 -0
  154. package/build/kamino_lending.d.ts +3937 -0
  155. package/build/kamino_lending.js +3940 -0
  156. package/build/kamino_lending.js.map +1 -0
  157. package/build/kamino_lending.json +6352 -0
  158. package/build/programId.d.ts +3 -0
  159. package/build/programId.js +9 -0
  160. package/build/programId.js.map +1 -0
  161. package/build/types/AssetTier.d.ts +44 -0
  162. package/build/types/AssetTier.js +122 -0
  163. package/build/types/AssetTier.js.map +1 -0
  164. package/build/types/BigFractionBytes.d.ts +26 -0
  165. package/build/types/BigFractionBytes.js +72 -0
  166. package/build/types/BigFractionBytes.js.map +1 -0
  167. package/build/types/BorrowRateCurve.d.ts +27 -0
  168. package/build/types/BorrowRateCurve.js +63 -0
  169. package/build/types/BorrowRateCurve.js.map +1 -0
  170. package/build/types/CurvePoint.d.ts +25 -0
  171. package/build/types/CurvePoint.js +68 -0
  172. package/build/types/CurvePoint.js.map +1 -0
  173. package/build/types/ElevationGroup.d.ts +62 -0
  174. package/build/types/ElevationGroup.js +125 -0
  175. package/build/types/ElevationGroup.js.map +1 -0
  176. package/build/types/FeeCalculation.d.ts +31 -0
  177. package/build/types/FeeCalculation.js +95 -0
  178. package/build/types/FeeCalculation.js.map +1 -0
  179. package/build/types/InitObligationArgs.d.ts +25 -0
  180. package/build/types/InitObligationArgs.js +68 -0
  181. package/build/types/InitObligationArgs.js.map +1 -0
  182. package/build/types/LastUpdate.d.ts +36 -0
  183. package/build/types/LastUpdate.js +84 -0
  184. package/build/types/LastUpdate.js.map +1 -0
  185. package/build/types/ObligationCollateral.d.ts +43 -0
  186. package/build/types/ObligationCollateral.js +98 -0
  187. package/build/types/ObligationCollateral.js.map +1 -0
  188. package/build/types/ObligationLiquidity.d.ts +64 -0
  189. package/build/types/ObligationLiquidity.js +123 -0
  190. package/build/types/ObligationLiquidity.js.map +1 -0
  191. package/build/types/PriceHeuristic.d.ts +32 -0
  192. package/build/types/PriceHeuristic.js +78 -0
  193. package/build/types/PriceHeuristic.js.map +1 -0
  194. package/build/types/PythConfiguration.d.ts +22 -0
  195. package/build/types/PythConfiguration.js +63 -0
  196. package/build/types/PythConfiguration.js.map +1 -0
  197. package/build/types/ReserveCollateral.d.ts +43 -0
  198. package/build/types/ReserveCollateral.js +97 -0
  199. package/build/types/ReserveCollateral.js.map +1 -0
  200. package/build/types/ReserveConfig.d.ts +246 -0
  201. package/build/types/ReserveConfig.js +269 -0
  202. package/build/types/ReserveConfig.js.map +1 -0
  203. package/build/types/ReserveFarmKind.d.ts +31 -0
  204. package/build/types/ReserveFarmKind.js +98 -0
  205. package/build/types/ReserveFarmKind.js.map +1 -0
  206. package/build/types/ReserveFees.d.ts +32 -0
  207. package/build/types/ReserveFees.js +82 -0
  208. package/build/types/ReserveFees.js.map +1 -0
  209. package/build/types/ReserveLiquidity.d.ts +114 -0
  210. package/build/types/ReserveLiquidity.js +191 -0
  211. package/build/types/ReserveLiquidity.js.map +1 -0
  212. package/build/types/ReserveStatus.d.ts +44 -0
  213. package/build/types/ReserveStatus.js +122 -0
  214. package/build/types/ReserveStatus.js.map +1 -0
  215. package/build/types/ScopeConfiguration.d.ts +32 -0
  216. package/build/types/ScopeConfiguration.js +79 -0
  217. package/build/types/ScopeConfiguration.js.map +1 -0
  218. package/build/types/SwitchboardConfiguration.d.ts +27 -0
  219. package/build/types/SwitchboardConfiguration.js +69 -0
  220. package/build/types/SwitchboardConfiguration.js.map +1 -0
  221. package/build/types/TokenInfo.d.ts +99 -0
  222. package/build/types/TokenInfo.js +145 -0
  223. package/build/types/TokenInfo.js.map +1 -0
  224. package/build/types/UpdateConfigMode.d.ts +616 -0
  225. package/build/types/UpdateConfigMode.js +1178 -0
  226. package/build/types/UpdateConfigMode.js.map +1 -0
  227. package/build/types/UpdateLendingMarketConfigValue.d.ts +177 -0
  228. package/build/types/UpdateLendingMarketConfigValue.js +312 -0
  229. package/build/types/UpdateLendingMarketConfigValue.js.map +1 -0
  230. package/build/types/UpdateLendingMarketMode.d.ts +239 -0
  231. package/build/types/UpdateLendingMarketMode.js +482 -0
  232. package/build/types/UpdateLendingMarketMode.js.map +1 -0
  233. package/build/types/WithdrawalCaps.d.ts +37 -0
  234. package/build/types/WithdrawalCaps.js +89 -0
  235. package/build/types/WithdrawalCaps.js.map +1 -0
  236. package/build/types/index.d.ts +64 -0
  237. package/build/types/index.js +77 -0
  238. package/build/types/index.js.map +1 -0
  239. package/package.json +44 -0
  240. package/src/accounts/LendingMarket.ts +292 -0
  241. package/src/accounts/Obligation.ts +282 -0
  242. package/src/accounts/ReferrerState.ts +90 -0
  243. package/src/accounts/ReferrerTokenState.ts +126 -0
  244. package/src/accounts/Reserve.ts +218 -0
  245. package/src/accounts/ShortUrl.ts +86 -0
  246. package/src/accounts/UserMetadata.ts +126 -0
  247. package/src/accounts/UserState.ts +210 -0
  248. package/src/accounts/index.ts +19 -0
  249. package/src/errors/anchor.ts +773 -0
  250. package/src/errors/custom.ts +1633 -0
  251. package/src/errors/index.ts +62 -0
  252. package/src/index.ts +5 -0
  253. package/src/instructions/borrowObligationLiquidity.ts +81 -0
  254. package/src/instructions/borrowObligationLiquidityV2.ts +103 -0
  255. package/src/instructions/deleteReferrerStateAndShortUrl.ts +27 -0
  256. package/src/instructions/depositObligationCollateral.ts +61 -0
  257. package/src/instructions/depositReserveLiquidity.ts +89 -0
  258. package/src/instructions/depositReserveLiquidityAndObligationCollateral.ts +97 -0
  259. package/src/instructions/depositReserveLiquidityAndObligationCollateralV2.ts +119 -0
  260. package/src/instructions/flashBorrowReserveLiquidity.ts +81 -0
  261. package/src/instructions/flashRepayReserveLiquidity.ts +79 -0
  262. package/src/instructions/idlMissingTypes.ts +59 -0
  263. package/src/instructions/index.ts +158 -0
  264. package/src/instructions/initFarmsForReserve.ts +60 -0
  265. package/src/instructions/initLendingMarket.ts +46 -0
  266. package/src/instructions/initObligation.ts +51 -0
  267. package/src/instructions/initObligationFarmsForReserve.ts +58 -0
  268. package/src/instructions/initReferrerStateAndShortUrl.ts +48 -0
  269. package/src/instructions/initReferrerTokenState.ts +44 -0
  270. package/src/instructions/initReserve.ts +68 -0
  271. package/src/instructions/initUserMetadata.ts +48 -0
  272. package/src/instructions/liquidateObligationAndRedeemReserveCollateral.ts +137 -0
  273. package/src/instructions/redeemFees.ts +44 -0
  274. package/src/instructions/redeemReserveCollateral.ts +93 -0
  275. package/src/instructions/refreshObligation.ts +18 -0
  276. package/src/instructions/refreshObligationFarmsForReserve.ts +60 -0
  277. package/src/instructions/refreshReserve.ts +34 -0
  278. package/src/instructions/refreshReservesBatch.ts +24 -0
  279. package/src/instructions/repayObligationLiquidity.ts +63 -0
  280. package/src/instructions/repayObligationLiquidityV2.ts +87 -0
  281. package/src/instructions/requestElevationGroup.ts +38 -0
  282. package/src/instructions/socializeLoss.ts +47 -0
  283. package/src/instructions/updateLendingMarket.ts +39 -0
  284. package/src/instructions/updateLendingMarketOwner.ts +25 -0
  285. package/src/instructions/updateReserveConfig.ts +43 -0
  286. package/src/instructions/withdrawObligationCollateral.ts +67 -0
  287. package/src/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.ts +101 -0
  288. package/src/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.ts +123 -0
  289. package/src/instructions/withdrawProtocolFee.ts +61 -0
  290. package/src/instructions/withdrawReferrerFees.ts +48 -0
  291. package/src/kamino_lending.json +6352 -0
  292. package/src/kamino_lending.ts +7873 -0
  293. package/src/programId.ts +9 -0
  294. package/src/types/AssetTier.ts +116 -0
  295. package/src/types/BigFractionBytes.ts +59 -0
  296. package/src/types/BorrowRateCurve.ts +53 -0
  297. package/src/types/CurvePoint.ts +58 -0
  298. package/src/types/ElevationGroup.ts +129 -0
  299. package/src/types/FeeCalculation.ts +83 -0
  300. package/src/types/InitObligationArgs.ts +58 -0
  301. package/src/types/LastUpdate.ts +78 -0
  302. package/src/types/ObligationCollateral.ts +100 -0
  303. package/src/types/ObligationLiquidity.ts +140 -0
  304. package/src/types/PriceHeuristic.ts +72 -0
  305. package/src/types/PythConfiguration.ts +53 -0
  306. package/src/types/ReserveCollateral.ts +94 -0
  307. package/src/types/ReserveConfig.ts +349 -0
  308. package/src/types/ReserveFarmKind.ts +90 -0
  309. package/src/types/ReserveFees.ts +76 -0
  310. package/src/types/ReserveLiquidity.ts +219 -0
  311. package/src/types/ReserveStatus.ts +120 -0
  312. package/src/types/ScopeConfiguration.ts +76 -0
  313. package/src/types/SwitchboardConfiguration.ts +64 -0
  314. package/src/types/TokenInfo.ts +172 -0
  315. package/src/types/UpdateConfigMode.ts +1440 -0
  316. package/src/types/UpdateLendingMarketConfigValue.ts +376 -0
  317. package/src/types/UpdateLendingMarketMode.ts +570 -0
  318. package/src/types/WithdrawalCaps.ts +85 -0
  319. package/src/types/index.ts +275 -0
  320. package/tsconfig.json +17 -0
@@ -0,0 +1,349 @@
1
+ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars
2
+ import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
3
+ import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
4
+ import * as borsh from "@coral-xyz/borsh"
5
+
6
+ export interface ReserveConfigFields {
7
+ status: number
8
+ assetTier: number
9
+ hostFixedInterestRateBps: number
10
+ reserved2: Array<number>
11
+ reserved3: Array<number>
12
+ protocolTakeRatePct: number
13
+ protocolLiquidationFeePct: number
14
+ loanToValuePct: number
15
+ liquidationThresholdPct: number
16
+ minLiquidationBonusBps: number
17
+ maxLiquidationBonusBps: number
18
+ badDebtLiquidationBonusBps: number
19
+ deleveragingMarginCallPeriodSecs: BN
20
+ deleveragingThresholdSlotsPerBps: BN
21
+ fees: types.ReserveFeesFields
22
+ borrowRateCurve: types.BorrowRateCurveFields
23
+ borrowFactorPct: BN
24
+ depositLimit: BN
25
+ borrowLimit: BN
26
+ tokenInfo: types.TokenInfoFields
27
+ depositWithdrawalCap: types.WithdrawalCapsFields
28
+ debtWithdrawalCap: types.WithdrawalCapsFields
29
+ elevationGroups: Array<number>
30
+ disableUsageAsCollOutsideEmode: number
31
+ utilizationLimitBlockBorrowingAbove: number
32
+ reserved1: Array<number>
33
+ borrowLimitOutsideElevationGroup: BN
34
+ borrowLimitAgainstThisCollateralInElevationGroup: Array<BN>
35
+ }
36
+
37
+ export interface ReserveConfigJSON {
38
+ status: number
39
+ assetTier: number
40
+ hostFixedInterestRateBps: number
41
+ reserved2: Array<number>
42
+ reserved3: Array<number>
43
+ protocolTakeRatePct: number
44
+ protocolLiquidationFeePct: number
45
+ loanToValuePct: number
46
+ liquidationThresholdPct: number
47
+ minLiquidationBonusBps: number
48
+ maxLiquidationBonusBps: number
49
+ badDebtLiquidationBonusBps: number
50
+ deleveragingMarginCallPeriodSecs: string
51
+ deleveragingThresholdSlotsPerBps: string
52
+ fees: types.ReserveFeesJSON
53
+ borrowRateCurve: types.BorrowRateCurveJSON
54
+ borrowFactorPct: string
55
+ depositLimit: string
56
+ borrowLimit: string
57
+ tokenInfo: types.TokenInfoJSON
58
+ depositWithdrawalCap: types.WithdrawalCapsJSON
59
+ debtWithdrawalCap: types.WithdrawalCapsJSON
60
+ elevationGroups: Array<number>
61
+ disableUsageAsCollOutsideEmode: number
62
+ utilizationLimitBlockBorrowingAbove: number
63
+ reserved1: Array<number>
64
+ borrowLimitOutsideElevationGroup: string
65
+ borrowLimitAgainstThisCollateralInElevationGroup: Array<string>
66
+ }
67
+
68
+ export class ReserveConfig {
69
+ readonly status: number
70
+ readonly assetTier: number
71
+ readonly hostFixedInterestRateBps: number
72
+ readonly reserved2: Array<number>
73
+ readonly reserved3: Array<number>
74
+ readonly protocolTakeRatePct: number
75
+ readonly protocolLiquidationFeePct: number
76
+ readonly loanToValuePct: number
77
+ readonly liquidationThresholdPct: number
78
+ readonly minLiquidationBonusBps: number
79
+ readonly maxLiquidationBonusBps: number
80
+ readonly badDebtLiquidationBonusBps: number
81
+ readonly deleveragingMarginCallPeriodSecs: BN
82
+ readonly deleveragingThresholdSlotsPerBps: BN
83
+ readonly fees: types.ReserveFees
84
+ readonly borrowRateCurve: types.BorrowRateCurve
85
+ readonly borrowFactorPct: BN
86
+ readonly depositLimit: BN
87
+ readonly borrowLimit: BN
88
+ readonly tokenInfo: types.TokenInfo
89
+ readonly depositWithdrawalCap: types.WithdrawalCaps
90
+ readonly debtWithdrawalCap: types.WithdrawalCaps
91
+ readonly elevationGroups: Array<number>
92
+ readonly disableUsageAsCollOutsideEmode: number
93
+ readonly utilizationLimitBlockBorrowingAbove: number
94
+ readonly reserved1: Array<number>
95
+ readonly borrowLimitOutsideElevationGroup: BN
96
+ readonly borrowLimitAgainstThisCollateralInElevationGroup: Array<BN>
97
+
98
+ constructor(fields: ReserveConfigFields) {
99
+ this.status = fields.status
100
+ this.assetTier = fields.assetTier
101
+ this.hostFixedInterestRateBps = fields.hostFixedInterestRateBps
102
+ this.reserved2 = fields.reserved2
103
+ this.reserved3 = fields.reserved3
104
+ this.protocolTakeRatePct = fields.protocolTakeRatePct
105
+ this.protocolLiquidationFeePct = fields.protocolLiquidationFeePct
106
+ this.loanToValuePct = fields.loanToValuePct
107
+ this.liquidationThresholdPct = fields.liquidationThresholdPct
108
+ this.minLiquidationBonusBps = fields.minLiquidationBonusBps
109
+ this.maxLiquidationBonusBps = fields.maxLiquidationBonusBps
110
+ this.badDebtLiquidationBonusBps = fields.badDebtLiquidationBonusBps
111
+ this.deleveragingMarginCallPeriodSecs =
112
+ fields.deleveragingMarginCallPeriodSecs
113
+ this.deleveragingThresholdSlotsPerBps =
114
+ fields.deleveragingThresholdSlotsPerBps
115
+ this.fees = new types.ReserveFees({ ...fields.fees })
116
+ this.borrowRateCurve = new types.BorrowRateCurve({
117
+ ...fields.borrowRateCurve,
118
+ })
119
+ this.borrowFactorPct = fields.borrowFactorPct
120
+ this.depositLimit = fields.depositLimit
121
+ this.borrowLimit = fields.borrowLimit
122
+ this.tokenInfo = new types.TokenInfo({ ...fields.tokenInfo })
123
+ this.depositWithdrawalCap = new types.WithdrawalCaps({
124
+ ...fields.depositWithdrawalCap,
125
+ })
126
+ this.debtWithdrawalCap = new types.WithdrawalCaps({
127
+ ...fields.debtWithdrawalCap,
128
+ })
129
+ this.elevationGroups = fields.elevationGroups
130
+ this.disableUsageAsCollOutsideEmode = fields.disableUsageAsCollOutsideEmode
131
+ this.utilizationLimitBlockBorrowingAbove =
132
+ fields.utilizationLimitBlockBorrowingAbove
133
+ this.reserved1 = fields.reserved1
134
+ this.borrowLimitOutsideElevationGroup =
135
+ fields.borrowLimitOutsideElevationGroup
136
+ this.borrowLimitAgainstThisCollateralInElevationGroup =
137
+ fields.borrowLimitAgainstThisCollateralInElevationGroup
138
+ }
139
+
140
+ static layout(property?: string) {
141
+ return borsh.struct(
142
+ [
143
+ borsh.u8("status"),
144
+ borsh.u8("assetTier"),
145
+ borsh.u16("hostFixedInterestRateBps"),
146
+ borsh.array(borsh.u8(), 2, "reserved2"),
147
+ borsh.array(borsh.u8(), 8, "reserved3"),
148
+ borsh.u8("protocolTakeRatePct"),
149
+ borsh.u8("protocolLiquidationFeePct"),
150
+ borsh.u8("loanToValuePct"),
151
+ borsh.u8("liquidationThresholdPct"),
152
+ borsh.u16("minLiquidationBonusBps"),
153
+ borsh.u16("maxLiquidationBonusBps"),
154
+ borsh.u16("badDebtLiquidationBonusBps"),
155
+ borsh.u64("deleveragingMarginCallPeriodSecs"),
156
+ borsh.u64("deleveragingThresholdSlotsPerBps"),
157
+ types.ReserveFees.layout("fees"),
158
+ types.BorrowRateCurve.layout("borrowRateCurve"),
159
+ borsh.u64("borrowFactorPct"),
160
+ borsh.u64("depositLimit"),
161
+ borsh.u64("borrowLimit"),
162
+ types.TokenInfo.layout("tokenInfo"),
163
+ types.WithdrawalCaps.layout("depositWithdrawalCap"),
164
+ types.WithdrawalCaps.layout("debtWithdrawalCap"),
165
+ borsh.array(borsh.u8(), 20, "elevationGroups"),
166
+ borsh.u8("disableUsageAsCollOutsideEmode"),
167
+ borsh.u8("utilizationLimitBlockBorrowingAbove"),
168
+ borsh.array(borsh.u8(), 2, "reserved1"),
169
+ borsh.u64("borrowLimitOutsideElevationGroup"),
170
+ borsh.array(
171
+ borsh.u64(),
172
+ 32,
173
+ "borrowLimitAgainstThisCollateralInElevationGroup"
174
+ ),
175
+ ],
176
+ property
177
+ )
178
+ }
179
+
180
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
181
+ static fromDecoded(obj: any) {
182
+ return new ReserveConfig({
183
+ status: obj.status,
184
+ assetTier: obj.assetTier,
185
+ hostFixedInterestRateBps: obj.hostFixedInterestRateBps,
186
+ reserved2: obj.reserved2,
187
+ reserved3: obj.reserved3,
188
+ protocolTakeRatePct: obj.protocolTakeRatePct,
189
+ protocolLiquidationFeePct: obj.protocolLiquidationFeePct,
190
+ loanToValuePct: obj.loanToValuePct,
191
+ liquidationThresholdPct: obj.liquidationThresholdPct,
192
+ minLiquidationBonusBps: obj.minLiquidationBonusBps,
193
+ maxLiquidationBonusBps: obj.maxLiquidationBonusBps,
194
+ badDebtLiquidationBonusBps: obj.badDebtLiquidationBonusBps,
195
+ deleveragingMarginCallPeriodSecs: obj.deleveragingMarginCallPeriodSecs,
196
+ deleveragingThresholdSlotsPerBps: obj.deleveragingThresholdSlotsPerBps,
197
+ fees: types.ReserveFees.fromDecoded(obj.fees),
198
+ borrowRateCurve: types.BorrowRateCurve.fromDecoded(obj.borrowRateCurve),
199
+ borrowFactorPct: obj.borrowFactorPct,
200
+ depositLimit: obj.depositLimit,
201
+ borrowLimit: obj.borrowLimit,
202
+ tokenInfo: types.TokenInfo.fromDecoded(obj.tokenInfo),
203
+ depositWithdrawalCap: types.WithdrawalCaps.fromDecoded(
204
+ obj.depositWithdrawalCap
205
+ ),
206
+ debtWithdrawalCap: types.WithdrawalCaps.fromDecoded(
207
+ obj.debtWithdrawalCap
208
+ ),
209
+ elevationGroups: obj.elevationGroups,
210
+ disableUsageAsCollOutsideEmode: obj.disableUsageAsCollOutsideEmode,
211
+ utilizationLimitBlockBorrowingAbove:
212
+ obj.utilizationLimitBlockBorrowingAbove,
213
+ reserved1: obj.reserved1,
214
+ borrowLimitOutsideElevationGroup: obj.borrowLimitOutsideElevationGroup,
215
+ borrowLimitAgainstThisCollateralInElevationGroup:
216
+ obj.borrowLimitAgainstThisCollateralInElevationGroup,
217
+ })
218
+ }
219
+
220
+ static toEncodable(fields: ReserveConfigFields) {
221
+ return {
222
+ status: fields.status,
223
+ assetTier: fields.assetTier,
224
+ hostFixedInterestRateBps: fields.hostFixedInterestRateBps,
225
+ reserved2: fields.reserved2,
226
+ reserved3: fields.reserved3,
227
+ protocolTakeRatePct: fields.protocolTakeRatePct,
228
+ protocolLiquidationFeePct: fields.protocolLiquidationFeePct,
229
+ loanToValuePct: fields.loanToValuePct,
230
+ liquidationThresholdPct: fields.liquidationThresholdPct,
231
+ minLiquidationBonusBps: fields.minLiquidationBonusBps,
232
+ maxLiquidationBonusBps: fields.maxLiquidationBonusBps,
233
+ badDebtLiquidationBonusBps: fields.badDebtLiquidationBonusBps,
234
+ deleveragingMarginCallPeriodSecs: fields.deleveragingMarginCallPeriodSecs,
235
+ deleveragingThresholdSlotsPerBps: fields.deleveragingThresholdSlotsPerBps,
236
+ fees: types.ReserveFees.toEncodable(fields.fees),
237
+ borrowRateCurve: types.BorrowRateCurve.toEncodable(
238
+ fields.borrowRateCurve
239
+ ),
240
+ borrowFactorPct: fields.borrowFactorPct,
241
+ depositLimit: fields.depositLimit,
242
+ borrowLimit: fields.borrowLimit,
243
+ tokenInfo: types.TokenInfo.toEncodable(fields.tokenInfo),
244
+ depositWithdrawalCap: types.WithdrawalCaps.toEncodable(
245
+ fields.depositWithdrawalCap
246
+ ),
247
+ debtWithdrawalCap: types.WithdrawalCaps.toEncodable(
248
+ fields.debtWithdrawalCap
249
+ ),
250
+ elevationGroups: fields.elevationGroups,
251
+ disableUsageAsCollOutsideEmode: fields.disableUsageAsCollOutsideEmode,
252
+ utilizationLimitBlockBorrowingAbove:
253
+ fields.utilizationLimitBlockBorrowingAbove,
254
+ reserved1: fields.reserved1,
255
+ borrowLimitOutsideElevationGroup: fields.borrowLimitOutsideElevationGroup,
256
+ borrowLimitAgainstThisCollateralInElevationGroup:
257
+ fields.borrowLimitAgainstThisCollateralInElevationGroup,
258
+ }
259
+ }
260
+
261
+ toJSON(): ReserveConfigJSON {
262
+ return {
263
+ status: this.status,
264
+ assetTier: this.assetTier,
265
+ hostFixedInterestRateBps: this.hostFixedInterestRateBps,
266
+ reserved2: this.reserved2,
267
+ reserved3: this.reserved3,
268
+ protocolTakeRatePct: this.protocolTakeRatePct,
269
+ protocolLiquidationFeePct: this.protocolLiquidationFeePct,
270
+ loanToValuePct: this.loanToValuePct,
271
+ liquidationThresholdPct: this.liquidationThresholdPct,
272
+ minLiquidationBonusBps: this.minLiquidationBonusBps,
273
+ maxLiquidationBonusBps: this.maxLiquidationBonusBps,
274
+ badDebtLiquidationBonusBps: this.badDebtLiquidationBonusBps,
275
+ deleveragingMarginCallPeriodSecs:
276
+ this.deleveragingMarginCallPeriodSecs.toString(),
277
+ deleveragingThresholdSlotsPerBps:
278
+ this.deleveragingThresholdSlotsPerBps.toString(),
279
+ fees: this.fees.toJSON(),
280
+ borrowRateCurve: this.borrowRateCurve.toJSON(),
281
+ borrowFactorPct: this.borrowFactorPct.toString(),
282
+ depositLimit: this.depositLimit.toString(),
283
+ borrowLimit: this.borrowLimit.toString(),
284
+ tokenInfo: this.tokenInfo.toJSON(),
285
+ depositWithdrawalCap: this.depositWithdrawalCap.toJSON(),
286
+ debtWithdrawalCap: this.debtWithdrawalCap.toJSON(),
287
+ elevationGroups: this.elevationGroups,
288
+ disableUsageAsCollOutsideEmode: this.disableUsageAsCollOutsideEmode,
289
+ utilizationLimitBlockBorrowingAbove:
290
+ this.utilizationLimitBlockBorrowingAbove,
291
+ reserved1: this.reserved1,
292
+ borrowLimitOutsideElevationGroup:
293
+ this.borrowLimitOutsideElevationGroup.toString(),
294
+ borrowLimitAgainstThisCollateralInElevationGroup:
295
+ this.borrowLimitAgainstThisCollateralInElevationGroup.map((item) =>
296
+ item.toString()
297
+ ),
298
+ }
299
+ }
300
+
301
+ static fromJSON(obj: ReserveConfigJSON): ReserveConfig {
302
+ return new ReserveConfig({
303
+ status: obj.status,
304
+ assetTier: obj.assetTier,
305
+ hostFixedInterestRateBps: obj.hostFixedInterestRateBps,
306
+ reserved2: obj.reserved2,
307
+ reserved3: obj.reserved3,
308
+ protocolTakeRatePct: obj.protocolTakeRatePct,
309
+ protocolLiquidationFeePct: obj.protocolLiquidationFeePct,
310
+ loanToValuePct: obj.loanToValuePct,
311
+ liquidationThresholdPct: obj.liquidationThresholdPct,
312
+ minLiquidationBonusBps: obj.minLiquidationBonusBps,
313
+ maxLiquidationBonusBps: obj.maxLiquidationBonusBps,
314
+ badDebtLiquidationBonusBps: obj.badDebtLiquidationBonusBps,
315
+ deleveragingMarginCallPeriodSecs: new BN(
316
+ obj.deleveragingMarginCallPeriodSecs
317
+ ),
318
+ deleveragingThresholdSlotsPerBps: new BN(
319
+ obj.deleveragingThresholdSlotsPerBps
320
+ ),
321
+ fees: types.ReserveFees.fromJSON(obj.fees),
322
+ borrowRateCurve: types.BorrowRateCurve.fromJSON(obj.borrowRateCurve),
323
+ borrowFactorPct: new BN(obj.borrowFactorPct),
324
+ depositLimit: new BN(obj.depositLimit),
325
+ borrowLimit: new BN(obj.borrowLimit),
326
+ tokenInfo: types.TokenInfo.fromJSON(obj.tokenInfo),
327
+ depositWithdrawalCap: types.WithdrawalCaps.fromJSON(
328
+ obj.depositWithdrawalCap
329
+ ),
330
+ debtWithdrawalCap: types.WithdrawalCaps.fromJSON(obj.debtWithdrawalCap),
331
+ elevationGroups: obj.elevationGroups,
332
+ disableUsageAsCollOutsideEmode: obj.disableUsageAsCollOutsideEmode,
333
+ utilizationLimitBlockBorrowingAbove:
334
+ obj.utilizationLimitBlockBorrowingAbove,
335
+ reserved1: obj.reserved1,
336
+ borrowLimitOutsideElevationGroup: new BN(
337
+ obj.borrowLimitOutsideElevationGroup
338
+ ),
339
+ borrowLimitAgainstThisCollateralInElevationGroup:
340
+ obj.borrowLimitAgainstThisCollateralInElevationGroup.map(
341
+ (item) => new BN(item)
342
+ ),
343
+ })
344
+ }
345
+
346
+ toEncodable() {
347
+ return ReserveConfig.toEncodable(this)
348
+ }
349
+ }
@@ -0,0 +1,90 @@
1
+ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars
2
+ import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
3
+ import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
4
+ import * as borsh from "@coral-xyz/borsh"
5
+
6
+ export interface CollateralJSON {
7
+ kind: "Collateral"
8
+ }
9
+
10
+ export class Collateral {
11
+ static readonly discriminator = 0
12
+ static readonly kind = "Collateral"
13
+ readonly discriminator = 0
14
+ readonly kind = "Collateral"
15
+
16
+ toJSON(): CollateralJSON {
17
+ return {
18
+ kind: "Collateral",
19
+ }
20
+ }
21
+
22
+ toEncodable() {
23
+ return {
24
+ Collateral: {},
25
+ }
26
+ }
27
+ }
28
+
29
+ export interface DebtJSON {
30
+ kind: "Debt"
31
+ }
32
+
33
+ export class Debt {
34
+ static readonly discriminator = 1
35
+ static readonly kind = "Debt"
36
+ readonly discriminator = 1
37
+ readonly kind = "Debt"
38
+
39
+ toJSON(): DebtJSON {
40
+ return {
41
+ kind: "Debt",
42
+ }
43
+ }
44
+
45
+ toEncodable() {
46
+ return {
47
+ Debt: {},
48
+ }
49
+ }
50
+ }
51
+
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
+ export function fromDecoded(obj: any): types.ReserveFarmKindKind {
54
+ if (typeof obj !== "object") {
55
+ throw new Error("Invalid enum object")
56
+ }
57
+
58
+ if ("Collateral" in obj) {
59
+ return new Collateral()
60
+ }
61
+ if ("Debt" in obj) {
62
+ return new Debt()
63
+ }
64
+
65
+ throw new Error("Invalid enum object")
66
+ }
67
+
68
+ export function fromJSON(
69
+ obj: types.ReserveFarmKindJSON
70
+ ): types.ReserveFarmKindKind {
71
+ switch (obj.kind) {
72
+ case "Collateral": {
73
+ return new Collateral()
74
+ }
75
+ case "Debt": {
76
+ return new Debt()
77
+ }
78
+ }
79
+ }
80
+
81
+ export function layout(property?: string) {
82
+ const ret = borsh.rustEnum([
83
+ borsh.struct([], "Collateral"),
84
+ borsh.struct([], "Debt"),
85
+ ])
86
+ if (property !== undefined) {
87
+ return ret.replicate(property)
88
+ }
89
+ return ret
90
+ }
@@ -0,0 +1,76 @@
1
+ import { PublicKey } from "@solana/web3.js" // eslint-disable-line @typescript-eslint/no-unused-vars
2
+ import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
3
+ import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
4
+ import * as borsh from "@coral-xyz/borsh"
5
+
6
+ export interface ReserveFeesFields {
7
+ borrowFeeSf: BN
8
+ flashLoanFeeSf: BN
9
+ padding: Array<number>
10
+ }
11
+
12
+ export interface ReserveFeesJSON {
13
+ borrowFeeSf: string
14
+ flashLoanFeeSf: string
15
+ padding: Array<number>
16
+ }
17
+
18
+ export class ReserveFees {
19
+ readonly borrowFeeSf: BN
20
+ readonly flashLoanFeeSf: BN
21
+ readonly padding: Array<number>
22
+
23
+ constructor(fields: ReserveFeesFields) {
24
+ this.borrowFeeSf = fields.borrowFeeSf
25
+ this.flashLoanFeeSf = fields.flashLoanFeeSf
26
+ this.padding = fields.padding
27
+ }
28
+
29
+ static layout(property?: string) {
30
+ return borsh.struct(
31
+ [
32
+ borsh.u64("borrowFeeSf"),
33
+ borsh.u64("flashLoanFeeSf"),
34
+ borsh.array(borsh.u8(), 8, "padding"),
35
+ ],
36
+ property
37
+ )
38
+ }
39
+
40
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
+ static fromDecoded(obj: any) {
42
+ return new ReserveFees({
43
+ borrowFeeSf: obj.borrowFeeSf,
44
+ flashLoanFeeSf: obj.flashLoanFeeSf,
45
+ padding: obj.padding,
46
+ })
47
+ }
48
+
49
+ static toEncodable(fields: ReserveFeesFields) {
50
+ return {
51
+ borrowFeeSf: fields.borrowFeeSf,
52
+ flashLoanFeeSf: fields.flashLoanFeeSf,
53
+ padding: fields.padding,
54
+ }
55
+ }
56
+
57
+ toJSON(): ReserveFeesJSON {
58
+ return {
59
+ borrowFeeSf: this.borrowFeeSf.toString(),
60
+ flashLoanFeeSf: this.flashLoanFeeSf.toString(),
61
+ padding: this.padding,
62
+ }
63
+ }
64
+
65
+ static fromJSON(obj: ReserveFeesJSON): ReserveFees {
66
+ return new ReserveFees({
67
+ borrowFeeSf: new BN(obj.borrowFeeSf),
68
+ flashLoanFeeSf: new BN(obj.flashLoanFeeSf),
69
+ padding: obj.padding,
70
+ })
71
+ }
72
+
73
+ toEncodable() {
74
+ return ReserveFees.toEncodable(this)
75
+ }
76
+ }