@kamino-finance/klend-sdk 5.0.4 → 5.0.6

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 (239) hide show
  1. package/dist/classes/fraction.d.ts.map +1 -1
  2. package/dist/classes/fraction.js.map +1 -1
  3. package/dist/classes/manager.d.ts +38 -4
  4. package/dist/classes/manager.d.ts.map +1 -1
  5. package/dist/classes/manager.js +112 -5
  6. package/dist/classes/manager.js.map +1 -1
  7. package/dist/classes/market.d.ts +4 -0
  8. package/dist/classes/market.d.ts.map +1 -1
  9. package/dist/classes/market.js +17 -25
  10. package/dist/classes/market.js.map +1 -1
  11. package/dist/classes/obligation.d.ts +3 -4
  12. package/dist/classes/obligation.d.ts.map +1 -1
  13. package/dist/classes/obligation.js +96 -27
  14. package/dist/classes/obligation.js.map +1 -1
  15. package/dist/classes/reserve.d.ts +2 -1
  16. package/dist/classes/reserve.d.ts.map +1 -1
  17. package/dist/classes/reserve.js +32 -29
  18. package/dist/classes/reserve.js.map +1 -1
  19. package/dist/classes/utils.d.ts +3 -0
  20. package/dist/classes/utils.d.ts.map +1 -1
  21. package/dist/classes/utils.js +30 -0
  22. package/dist/classes/utils.js.map +1 -1
  23. package/dist/classes/vault.d.ts +12 -8
  24. package/dist/classes/vault.d.ts.map +1 -1
  25. package/dist/classes/vault.js +94 -66
  26. package/dist/classes/vault.js.map +1 -1
  27. package/dist/client_kamino_manager.d.ts.map +1 -1
  28. package/dist/client_kamino_manager.js +15 -1
  29. package/dist/client_kamino_manager.js.map +1 -1
  30. package/dist/idl.json +27 -2
  31. package/dist/idl_codegen/accounts/LendingMarket.d.ts +6 -0
  32. package/dist/idl_codegen/accounts/LendingMarket.d.ts.map +1 -1
  33. package/dist/idl_codegen/accounts/LendingMarket.js +8 -1
  34. package/dist/idl_codegen/accounts/LendingMarket.js.map +1 -1
  35. package/dist/idl_codegen/accounts/Obligation.d.ts +3 -12
  36. package/dist/idl_codegen/accounts/Obligation.d.ts.map +1 -1
  37. package/dist/idl_codegen/accounts/Obligation.js +1 -4
  38. package/dist/idl_codegen/accounts/Obligation.js.map +1 -1
  39. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.d.ts +20 -0
  40. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.d.ts.map +1 -1
  41. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js +33 -1
  42. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js.map +1 -1
  43. package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts +13 -0
  44. package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts.map +1 -1
  45. package/dist/idl_codegen/types/UpdateLendingMarketMode.js +25 -1
  46. package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -1
  47. package/dist/idl_codegen/types/index.d.ts +4 -4
  48. package/dist/idl_codegen/types/index.d.ts.map +1 -1
  49. package/dist/idl_codegen/types/index.js.map +1 -1
  50. package/dist/idl_codegen_kamino_vault/accounts/Reserve.d.ts +3 -3
  51. package/dist/idl_codegen_kamino_vault/accounts/Reserve.d.ts.map +1 -1
  52. package/dist/idl_codegen_kamino_vault/accounts/Reserve.js +22 -18
  53. package/dist/idl_codegen_kamino_vault/accounts/Reserve.js.map +1 -1
  54. package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts +45 -15
  55. package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts.map +1 -1
  56. package/dist/idl_codegen_kamino_vault/accounts/VaultState.js +101 -39
  57. package/dist/idl_codegen_kamino_vault/accounts/VaultState.js.map +1 -1
  58. package/dist/idl_codegen_kamino_vault/accounts/index.d.ts +4 -4
  59. package/dist/idl_codegen_kamino_vault/accounts/index.d.ts.map +1 -1
  60. package/dist/idl_codegen_kamino_vault/accounts/index.js.map +1 -1
  61. package/dist/idl_codegen_kamino_vault/errors/anchor.d.ts.map +1 -1
  62. package/dist/idl_codegen_kamino_vault/errors/anchor.js +162 -162
  63. package/dist/idl_codegen_kamino_vault/errors/anchor.js.map +1 -1
  64. package/dist/idl_codegen_kamino_vault/errors/custom.d.ts +144 -32
  65. package/dist/idl_codegen_kamino_vault/errors/custom.d.ts.map +1 -1
  66. package/dist/idl_codegen_kamino_vault/errors/custom.js +305 -109
  67. package/dist/idl_codegen_kamino_vault/errors/custom.js.map +1 -1
  68. package/dist/idl_codegen_kamino_vault/errors/index.d.ts +3 -3
  69. package/dist/idl_codegen_kamino_vault/errors/index.d.ts.map +1 -1
  70. package/dist/idl_codegen_kamino_vault/errors/index.js +7 -2
  71. package/dist/idl_codegen_kamino_vault/errors/index.js.map +1 -1
  72. package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts +4 -2
  73. package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts.map +1 -1
  74. package/dist/idl_codegen_kamino_vault/instructions/deposit.js +3 -1
  75. package/dist/idl_codegen_kamino_vault/instructions/deposit.js.map +1 -1
  76. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.d.ts +13 -0
  77. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.d.ts.map +1 -0
  78. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.js +47 -0
  79. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.js.map +1 -0
  80. package/dist/idl_codegen_kamino_vault/instructions/index.d.ts +18 -10
  81. package/dist/idl_codegen_kamino_vault/instructions/index.d.ts.map +1 -1
  82. package/dist/idl_codegen_kamino_vault/instructions/index.js +9 -1
  83. package/dist/idl_codegen_kamino_vault/instructions/index.js.map +1 -1
  84. package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts +2 -1
  85. package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts.map +1 -1
  86. package/dist/idl_codegen_kamino_vault/instructions/initVault.js +1 -0
  87. package/dist/idl_codegen_kamino_vault/instructions/initVault.js.map +1 -1
  88. package/dist/idl_codegen_kamino_vault/instructions/invest.d.ts +6 -2
  89. package/dist/idl_codegen_kamino_vault/instructions/invest.d.ts.map +1 -1
  90. package/dist/idl_codegen_kamino_vault/instructions/invest.js +9 -1
  91. package/dist/idl_codegen_kamino_vault/instructions/invest.js.map +1 -1
  92. package/dist/idl_codegen_kamino_vault/instructions/updateAdmin.d.ts +7 -0
  93. package/dist/idl_codegen_kamino_vault/instructions/updateAdmin.d.ts.map +1 -0
  94. package/dist/idl_codegen_kamino_vault/instructions/updateAdmin.js +16 -0
  95. package/dist/idl_codegen_kamino_vault/instructions/updateAdmin.js.map +1 -0
  96. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts +2 -2
  97. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts.map +1 -1
  98. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.js +1 -1
  99. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.js.map +1 -1
  100. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.d.ts +14 -0
  101. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.d.ts.map +1 -0
  102. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.js +52 -0
  103. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.js.map +1 -0
  104. package/dist/idl_codegen_kamino_vault/instructions/withdraw.d.ts +4 -2
  105. package/dist/idl_codegen_kamino_vault/instructions/withdraw.d.ts.map +1 -1
  106. package/dist/idl_codegen_kamino_vault/instructions/withdraw.js +8 -2
  107. package/dist/idl_codegen_kamino_vault/instructions/withdraw.js.map +1 -1
  108. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.d.ts +23 -0
  109. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.d.ts.map +1 -0
  110. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.js +51 -0
  111. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.js.map +1 -0
  112. package/dist/idl_codegen_kamino_vault/programId.d.ts +1 -1
  113. package/dist/idl_codegen_kamino_vault/programId.d.ts.map +1 -1
  114. package/dist/idl_codegen_kamino_vault/programId.js +1 -1
  115. package/dist/idl_codegen_kamino_vault/programId.js.map +1 -1
  116. package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.d.ts +2 -2
  117. package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.d.ts.map +1 -1
  118. package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.js +4 -1
  119. package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.js.map +1 -1
  120. package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.d.ts +1 -1
  121. package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.d.ts.map +1 -1
  122. package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.js +1 -1
  123. package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.js.map +1 -1
  124. package/dist/idl_codegen_kamino_vault/types/CurvePoint.d.ts +1 -1
  125. package/dist/idl_codegen_kamino_vault/types/CurvePoint.d.ts.map +1 -1
  126. package/dist/idl_codegen_kamino_vault/types/CurvePoint.js +1 -1
  127. package/dist/idl_codegen_kamino_vault/types/CurvePoint.js.map +1 -1
  128. package/dist/idl_codegen_kamino_vault/types/LastUpdate.d.ts +2 -2
  129. package/dist/idl_codegen_kamino_vault/types/LastUpdate.d.ts.map +1 -1
  130. package/dist/idl_codegen_kamino_vault/types/LastUpdate.js +6 -1
  131. package/dist/idl_codegen_kamino_vault/types/LastUpdate.js.map +1 -1
  132. package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.d.ts +2 -2
  133. package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.d.ts.map +1 -1
  134. package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.js +1 -1
  135. package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.js.map +1 -1
  136. package/dist/idl_codegen_kamino_vault/types/PythConfiguration.d.ts +2 -2
  137. package/dist/idl_codegen_kamino_vault/types/PythConfiguration.d.ts.map +1 -1
  138. package/dist/idl_codegen_kamino_vault/types/PythConfiguration.js +1 -1
  139. package/dist/idl_codegen_kamino_vault/types/PythConfiguration.js.map +1 -1
  140. package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.d.ts +3 -3
  141. package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.d.ts.map +1 -1
  142. package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.js +5 -5
  143. package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.js.map +1 -1
  144. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts +27 -24
  145. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts.map +1 -1
  146. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js +59 -53
  147. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js.map +1 -1
  148. package/dist/idl_codegen_kamino_vault/types/ReserveFees.d.ts +2 -2
  149. package/dist/idl_codegen_kamino_vault/types/ReserveFees.d.ts.map +1 -1
  150. package/dist/idl_codegen_kamino_vault/types/ReserveFees.js +5 -1
  151. package/dist/idl_codegen_kamino_vault/types/ReserveFees.js.map +1 -1
  152. package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.d.ts +11 -3
  153. package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.d.ts.map +1 -1
  154. package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.js +25 -17
  155. package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.js.map +1 -1
  156. package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.d.ts +2 -2
  157. package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.d.ts.map +1 -1
  158. package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.js +3 -3
  159. package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.js.map +1 -1
  160. package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.d.ts +2 -2
  161. package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.d.ts.map +1 -1
  162. package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.js +1 -1
  163. package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.js.map +1 -1
  164. package/dist/idl_codegen_kamino_vault/types/TokenInfo.d.ts +3 -3
  165. package/dist/idl_codegen_kamino_vault/types/TokenInfo.d.ts.map +1 -1
  166. package/dist/idl_codegen_kamino_vault/types/TokenInfo.js +11 -11
  167. package/dist/idl_codegen_kamino_vault/types/TokenInfo.js.map +1 -1
  168. package/dist/idl_codegen_kamino_vault/types/VaultAllocation.d.ts +18 -8
  169. package/dist/idl_codegen_kamino_vault/types/VaultAllocation.d.ts.map +1 -1
  170. package/dist/idl_codegen_kamino_vault/types/VaultAllocation.js +27 -13
  171. package/dist/idl_codegen_kamino_vault/types/VaultAllocation.js.map +1 -1
  172. package/dist/idl_codegen_kamino_vault/types/VaultConfigField.d.ts +110 -0
  173. package/dist/idl_codegen_kamino_vault/types/VaultConfigField.d.ts.map +1 -0
  174. package/dist/idl_codegen_kamino_vault/types/VaultConfigField.js +242 -0
  175. package/dist/idl_codegen_kamino_vault/types/VaultConfigField.js.map +1 -0
  176. package/dist/idl_codegen_kamino_vault/types/index.d.ts +34 -30
  177. package/dist/idl_codegen_kamino_vault/types/index.d.ts.map +1 -1
  178. package/dist/idl_codegen_kamino_vault/types/index.js +26 -1
  179. package/dist/idl_codegen_kamino_vault/types/index.js.map +1 -1
  180. package/dist/utils/ObligationType.d.ts.map +1 -1
  181. package/dist/utils/ObligationType.js.map +1 -1
  182. package/dist/utils/managerTypes.d.ts.map +1 -1
  183. package/dist/utils/managerTypes.js.map +1 -1
  184. package/dist/utils/pubkey.d.ts.map +1 -1
  185. package/dist/utils/pubkey.js.map +1 -1
  186. package/dist/utils/rpc.d.ts.map +1 -1
  187. package/dist/utils/rpc.js +2 -1
  188. package/dist/utils/rpc.js.map +1 -1
  189. package/package.json +2 -1
  190. package/src/classes/fraction.ts +5 -0
  191. package/src/classes/manager.ts +136 -5
  192. package/src/classes/market.ts +19 -2
  193. package/src/classes/obligation.ts +141 -30
  194. package/src/classes/reserve.ts +70 -41
  195. package/src/classes/utils.ts +30 -0
  196. package/src/classes/vault.ts +123 -49
  197. package/src/client_kamino_manager.ts +19 -1
  198. package/src/idl_codegen/accounts/LendingMarket.ts +12 -1
  199. package/src/idl_codegen/accounts/Obligation.ts +3 -12
  200. package/src/idl_codegen/types/UpdateLendingMarketConfigValue.ts +43 -0
  201. package/src/idl_codegen/types/UpdateLendingMarketMode.ts +30 -0
  202. package/src/idl_codegen/types/index.ts +4 -0
  203. package/src/idl_codegen_kamino_vault/accounts/Reserve.ts +132 -105
  204. package/src/idl_codegen_kamino_vault/accounts/VaultState.ts +217 -124
  205. package/src/idl_codegen_kamino_vault/accounts/index.ts +4 -4
  206. package/src/idl_codegen_kamino_vault/errors/anchor.ts +335 -326
  207. package/src/idl_codegen_kamino_vault/errors/custom.ts +353 -157
  208. package/src/idl_codegen_kamino_vault/errors/index.ts +35 -22
  209. package/src/idl_codegen_kamino_vault/instructions/deposit.ts +33 -25
  210. package/src/idl_codegen_kamino_vault/instructions/giveUpPendingFees.ts +40 -0
  211. package/src/idl_codegen_kamino_vault/instructions/index.ts +27 -10
  212. package/src/idl_codegen_kamino_vault/instructions/initVault.ts +25 -20
  213. package/src/idl_codegen_kamino_vault/instructions/invest.ts +40 -25
  214. package/src/idl_codegen_kamino_vault/instructions/updateAdmin.ts +24 -0
  215. package/src/idl_codegen_kamino_vault/instructions/updateReserveAllocation.ts +24 -24
  216. package/src/idl_codegen_kamino_vault/instructions/updateVaultConfig.ts +49 -0
  217. package/src/idl_codegen_kamino_vault/instructions/withdraw.ts +45 -33
  218. package/src/idl_codegen_kamino_vault/instructions/withdrawPendingFees.ts +75 -0
  219. package/src/idl_codegen_kamino_vault/programId.ts +5 -3
  220. package/src/idl_codegen_kamino_vault/types/BigFractionBytes.ts +24 -18
  221. package/src/idl_codegen_kamino_vault/types/BorrowRateCurve.ts +21 -16
  222. package/src/idl_codegen_kamino_vault/types/CurvePoint.ts +21 -18
  223. package/src/idl_codegen_kamino_vault/types/LastUpdate.ts +32 -27
  224. package/src/idl_codegen_kamino_vault/types/PriceHeuristic.ts +25 -22
  225. package/src/idl_codegen_kamino_vault/types/PythConfiguration.ts +14 -14
  226. package/src/idl_codegen_kamino_vault/types/ReserveCollateral.ts +35 -35
  227. package/src/idl_codegen_kamino_vault/types/ReserveConfig.ts +232 -191
  228. package/src/idl_codegen_kamino_vault/types/ReserveFees.ts +27 -23
  229. package/src/idl_codegen_kamino_vault/types/ReserveLiquidity.ts +116 -98
  230. package/src/idl_codegen_kamino_vault/types/ScopeConfiguration.ts +25 -25
  231. package/src/idl_codegen_kamino_vault/types/SwitchboardConfiguration.ts +21 -18
  232. package/src/idl_codegen_kamino_vault/types/TokenInfo.ts +92 -74
  233. package/src/idl_codegen_kamino_vault/types/VaultAllocation.ts +67 -49
  234. package/src/idl_codegen_kamino_vault/types/VaultConfigField.ts +270 -0
  235. package/src/idl_codegen_kamino_vault/types/index.ts +77 -30
  236. package/src/utils/ObligationType.ts +6 -0
  237. package/src/utils/managerTypes.ts +1 -0
  238. package/src/utils/pubkey.ts +2 -0
  239. package/src/utils/rpc.ts +3 -1
@@ -1,286 +1,298 @@
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';
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
5
 
6
6
  export interface ReserveConfigFields {
7
7
  /** Status of the reserve Active/Obsolete/Hidden */
8
- status: number;
8
+ status: number
9
9
  /** Asset tier -> 0 - regular (collateral & debt), 1 - isolated collateral, 2 - isolated debt */
10
- assetTier: number;
11
- reserved0: Array<number>;
12
- /** Boost for side (debt or collateral) */
13
- multiplierSideBoost: Array<number>;
14
- /** Reward points multiplier per obligation type */
15
- multiplierTagBoost: Array<number>;
10
+ assetTier: number
11
+ /** Flat rate that goes to the host */
12
+ hostFixedInterestRateBps: number
13
+ /** [DEPRECATED] Boost for side (debt or collateral) */
14
+ reserved2: Array<number>
15
+ /** [DEPRECATED] Reward points multiplier per obligation type */
16
+ reserved3: Array<number>
16
17
  /** Protocol take rate is the amount borrowed interest protocol receives, as a percentage */
17
- protocolTakeRatePct: number;
18
+ protocolTakeRatePct: number
18
19
  /** Cut of the liquidation bonus that the protocol receives, as a percentage */
19
- protocolLiquidationFeePct: number;
20
+ protocolLiquidationFeePct: number
20
21
  /**
21
22
  * Target ratio of the value of borrows to deposits, as a percentage
22
23
  * 0 if use as collateral is disabled
23
24
  */
24
- loanToValuePct: number;
25
+ loanToValuePct: number
25
26
  /** Loan to value ratio at which an obligation can be liquidated, as percentage */
26
- liquidationThresholdPct: number;
27
+ liquidationThresholdPct: number
27
28
  /** Minimum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps */
28
- minLiquidationBonusBps: number;
29
+ minLiquidationBonusBps: number
29
30
  /** Maximum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps */
30
- maxLiquidationBonusBps: number;
31
+ maxLiquidationBonusBps: number
31
32
  /** Bad debt liquidation bonus for an undercollateralized obligation, as bps */
32
- badDebtLiquidationBonusBps: number;
33
+ badDebtLiquidationBonusBps: number
33
34
  /** Time in seconds that must pass before redemptions are enabled after the deposit limit is crossed */
34
- deleveragingMarginCallPeriodSecs: BN;
35
+ deleveragingMarginCallPeriodSecs: BN
35
36
  /**
36
37
  * The rate at which the deleveraging threshold decreases in slots per bps
37
38
  * e.g. 1 bps per hour would be 7200 slots per bps (assuming 2 slots per second)
38
39
  */
39
- deleveragingThresholdSlotsPerBps: BN;
40
+ deleveragingThresholdSlotsPerBps: BN
40
41
  /** Program owner fees assessed, separate from gains due to interest accrual */
41
- fees: types.ReserveFeesFields;
42
+ fees: types.ReserveFeesFields
42
43
  /** Borrow rate curve based on utilization */
43
- borrowRateCurve: types.BorrowRateCurveFields;
44
+ borrowRateCurve: types.BorrowRateCurveFields
44
45
  /** Borrow factor in percentage - used for risk adjustment */
45
- borrowFactorPct: BN;
46
+ borrowFactorPct: BN
46
47
  /** Maximum deposit limit of liquidity in native units, u64::MAX for inf */
47
- depositLimit: BN;
48
+ depositLimit: BN
48
49
  /** Maximum amount borrowed, u64::MAX for inf, 0 to disable borrows (protected deposits) */
49
- borrowLimit: BN;
50
+ borrowLimit: BN
50
51
  /** Token id from TokenInfos struct */
51
- tokenInfo: types.TokenInfoFields;
52
+ tokenInfo: types.TokenInfoFields
52
53
  /** Deposit withdrawl caps - deposit & redeem */
53
- depositWithdrawalCap: types.WithdrawalCapsFields;
54
+ depositWithdrawalCap: types.WithdrawalCapsFields
54
55
  /** Debt withdrawl caps - borrow & repay */
55
- debtWithdrawalCap: types.WithdrawalCapsFields;
56
- elevationGroups: Array<number>;
57
- disableUsageAsCollOutsideEmode: number;
58
- utilizationLimitBlockBorrowingAbove: number;
59
- reserved1: Array<number>;
56
+ debtWithdrawalCap: types.WithdrawalCapsFields
57
+ elevationGroups: Array<number>
58
+ disableUsageAsCollOutsideEmode: number
59
+ utilizationLimitBlockBorrowingAbove: number
60
+ reserved1: Array<number>
60
61
  /**
61
62
  * Maximum amount liquidity of this reserve borrowed outside all elevation groups
62
63
  * - u64::MAX for inf
63
64
  * - 0 to disable borrows outside elevation groups
64
65
  */
65
- borrowLimitOutsideElevationGroup: BN;
66
+ borrowLimitOutsideElevationGroup: BN
66
67
  /**
67
68
  * Defines the maximum amount (in lamports of elevation group debt asset)
68
69
  * that can be borrowed when this reserve is used as collateral.
69
70
  * - u64::MAX for inf
70
71
  * - 0 to disable borrows in this elevation group (expected value for the debt asset)
71
72
  */
72
- borrowLimitAgainstThisCollateralInElevationGroup: Array<BN>;
73
+ borrowLimitAgainstThisCollateralInElevationGroup: Array<BN>
73
74
  }
74
75
 
75
76
  export interface ReserveConfigJSON {
76
77
  /** Status of the reserve Active/Obsolete/Hidden */
77
- status: number;
78
+ status: number
78
79
  /** Asset tier -> 0 - regular (collateral & debt), 1 - isolated collateral, 2 - isolated debt */
79
- assetTier: number;
80
- reserved0: Array<number>;
81
- /** Boost for side (debt or collateral) */
82
- multiplierSideBoost: Array<number>;
83
- /** Reward points multiplier per obligation type */
84
- multiplierTagBoost: Array<number>;
80
+ assetTier: number
81
+ /** Flat rate that goes to the host */
82
+ hostFixedInterestRateBps: number
83
+ /** [DEPRECATED] Boost for side (debt or collateral) */
84
+ reserved2: Array<number>
85
+ /** [DEPRECATED] Reward points multiplier per obligation type */
86
+ reserved3: Array<number>
85
87
  /** Protocol take rate is the amount borrowed interest protocol receives, as a percentage */
86
- protocolTakeRatePct: number;
88
+ protocolTakeRatePct: number
87
89
  /** Cut of the liquidation bonus that the protocol receives, as a percentage */
88
- protocolLiquidationFeePct: number;
90
+ protocolLiquidationFeePct: number
89
91
  /**
90
92
  * Target ratio of the value of borrows to deposits, as a percentage
91
93
  * 0 if use as collateral is disabled
92
94
  */
93
- loanToValuePct: number;
95
+ loanToValuePct: number
94
96
  /** Loan to value ratio at which an obligation can be liquidated, as percentage */
95
- liquidationThresholdPct: number;
97
+ liquidationThresholdPct: number
96
98
  /** Minimum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps */
97
- minLiquidationBonusBps: number;
99
+ minLiquidationBonusBps: number
98
100
  /** Maximum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps */
99
- maxLiquidationBonusBps: number;
101
+ maxLiquidationBonusBps: number
100
102
  /** Bad debt liquidation bonus for an undercollateralized obligation, as bps */
101
- badDebtLiquidationBonusBps: number;
103
+ badDebtLiquidationBonusBps: number
102
104
  /** Time in seconds that must pass before redemptions are enabled after the deposit limit is crossed */
103
- deleveragingMarginCallPeriodSecs: string;
105
+ deleveragingMarginCallPeriodSecs: string
104
106
  /**
105
107
  * The rate at which the deleveraging threshold decreases in slots per bps
106
108
  * e.g. 1 bps per hour would be 7200 slots per bps (assuming 2 slots per second)
107
109
  */
108
- deleveragingThresholdSlotsPerBps: string;
110
+ deleveragingThresholdSlotsPerBps: string
109
111
  /** Program owner fees assessed, separate from gains due to interest accrual */
110
- fees: types.ReserveFeesJSON;
112
+ fees: types.ReserveFeesJSON
111
113
  /** Borrow rate curve based on utilization */
112
- borrowRateCurve: types.BorrowRateCurveJSON;
114
+ borrowRateCurve: types.BorrowRateCurveJSON
113
115
  /** Borrow factor in percentage - used for risk adjustment */
114
- borrowFactorPct: string;
116
+ borrowFactorPct: string
115
117
  /** Maximum deposit limit of liquidity in native units, u64::MAX for inf */
116
- depositLimit: string;
118
+ depositLimit: string
117
119
  /** Maximum amount borrowed, u64::MAX for inf, 0 to disable borrows (protected deposits) */
118
- borrowLimit: string;
120
+ borrowLimit: string
119
121
  /** Token id from TokenInfos struct */
120
- tokenInfo: types.TokenInfoJSON;
122
+ tokenInfo: types.TokenInfoJSON
121
123
  /** Deposit withdrawl caps - deposit & redeem */
122
- depositWithdrawalCap: types.WithdrawalCapsJSON;
124
+ depositWithdrawalCap: types.WithdrawalCapsJSON
123
125
  /** Debt withdrawl caps - borrow & repay */
124
- debtWithdrawalCap: types.WithdrawalCapsJSON;
125
- elevationGroups: Array<number>;
126
- disableUsageAsCollOutsideEmode: number;
127
- utilizationLimitBlockBorrowingAbove: number;
128
- reserved1: Array<number>;
126
+ debtWithdrawalCap: types.WithdrawalCapsJSON
127
+ elevationGroups: Array<number>
128
+ disableUsageAsCollOutsideEmode: number
129
+ utilizationLimitBlockBorrowingAbove: number
130
+ reserved1: Array<number>
129
131
  /**
130
132
  * Maximum amount liquidity of this reserve borrowed outside all elevation groups
131
133
  * - u64::MAX for inf
132
134
  * - 0 to disable borrows outside elevation groups
133
135
  */
134
- borrowLimitOutsideElevationGroup: string;
136
+ borrowLimitOutsideElevationGroup: string
135
137
  /**
136
138
  * Defines the maximum amount (in lamports of elevation group debt asset)
137
139
  * that can be borrowed when this reserve is used as collateral.
138
140
  * - u64::MAX for inf
139
141
  * - 0 to disable borrows in this elevation group (expected value for the debt asset)
140
142
  */
141
- borrowLimitAgainstThisCollateralInElevationGroup: Array<string>;
143
+ borrowLimitAgainstThisCollateralInElevationGroup: Array<string>
142
144
  }
143
145
 
144
146
  /** Reserve configuration values */
145
147
  export class ReserveConfig {
146
148
  /** Status of the reserve Active/Obsolete/Hidden */
147
- readonly status: number;
149
+ readonly status: number
148
150
  /** Asset tier -> 0 - regular (collateral & debt), 1 - isolated collateral, 2 - isolated debt */
149
- readonly assetTier: number;
150
- readonly reserved0: Array<number>;
151
- /** Boost for side (debt or collateral) */
152
- readonly multiplierSideBoost: Array<number>;
153
- /** Reward points multiplier per obligation type */
154
- readonly multiplierTagBoost: Array<number>;
151
+ readonly assetTier: number
152
+ /** Flat rate that goes to the host */
153
+ readonly hostFixedInterestRateBps: number
154
+ /** [DEPRECATED] Boost for side (debt or collateral) */
155
+ readonly reserved2: Array<number>
156
+ /** [DEPRECATED] Reward points multiplier per obligation type */
157
+ readonly reserved3: Array<number>
155
158
  /** Protocol take rate is the amount borrowed interest protocol receives, as a percentage */
156
- readonly protocolTakeRatePct: number;
159
+ readonly protocolTakeRatePct: number
157
160
  /** Cut of the liquidation bonus that the protocol receives, as a percentage */
158
- readonly protocolLiquidationFeePct: number;
161
+ readonly protocolLiquidationFeePct: number
159
162
  /**
160
163
  * Target ratio of the value of borrows to deposits, as a percentage
161
164
  * 0 if use as collateral is disabled
162
165
  */
163
- readonly loanToValuePct: number;
166
+ readonly loanToValuePct: number
164
167
  /** Loan to value ratio at which an obligation can be liquidated, as percentage */
165
- readonly liquidationThresholdPct: number;
168
+ readonly liquidationThresholdPct: number
166
169
  /** Minimum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps */
167
- readonly minLiquidationBonusBps: number;
170
+ readonly minLiquidationBonusBps: number
168
171
  /** Maximum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps */
169
- readonly maxLiquidationBonusBps: number;
172
+ readonly maxLiquidationBonusBps: number
170
173
  /** Bad debt liquidation bonus for an undercollateralized obligation, as bps */
171
- readonly badDebtLiquidationBonusBps: number;
174
+ readonly badDebtLiquidationBonusBps: number
172
175
  /** Time in seconds that must pass before redemptions are enabled after the deposit limit is crossed */
173
- readonly deleveragingMarginCallPeriodSecs: BN;
176
+ readonly deleveragingMarginCallPeriodSecs: BN
174
177
  /**
175
178
  * The rate at which the deleveraging threshold decreases in slots per bps
176
179
  * e.g. 1 bps per hour would be 7200 slots per bps (assuming 2 slots per second)
177
180
  */
178
- readonly deleveragingThresholdSlotsPerBps: BN;
181
+ readonly deleveragingThresholdSlotsPerBps: BN
179
182
  /** Program owner fees assessed, separate from gains due to interest accrual */
180
- readonly fees: types.ReserveFees;
183
+ readonly fees: types.ReserveFees
181
184
  /** Borrow rate curve based on utilization */
182
- readonly borrowRateCurve: types.BorrowRateCurve;
185
+ readonly borrowRateCurve: types.BorrowRateCurve
183
186
  /** Borrow factor in percentage - used for risk adjustment */
184
- readonly borrowFactorPct: BN;
187
+ readonly borrowFactorPct: BN
185
188
  /** Maximum deposit limit of liquidity in native units, u64::MAX for inf */
186
- readonly depositLimit: BN;
189
+ readonly depositLimit: BN
187
190
  /** Maximum amount borrowed, u64::MAX for inf, 0 to disable borrows (protected deposits) */
188
- readonly borrowLimit: BN;
191
+ readonly borrowLimit: BN
189
192
  /** Token id from TokenInfos struct */
190
- readonly tokenInfo: types.TokenInfo;
193
+ readonly tokenInfo: types.TokenInfo
191
194
  /** Deposit withdrawl caps - deposit & redeem */
192
- readonly depositWithdrawalCap: types.WithdrawalCaps;
195
+ readonly depositWithdrawalCap: types.WithdrawalCaps
193
196
  /** Debt withdrawl caps - borrow & repay */
194
- readonly debtWithdrawalCap: types.WithdrawalCaps;
195
- readonly elevationGroups: Array<number>;
196
- readonly disableUsageAsCollOutsideEmode: number;
197
- readonly utilizationLimitBlockBorrowingAbove: number;
198
- readonly reserved1: Array<number>;
197
+ readonly debtWithdrawalCap: types.WithdrawalCaps
198
+ readonly elevationGroups: Array<number>
199
+ readonly disableUsageAsCollOutsideEmode: number
200
+ readonly utilizationLimitBlockBorrowingAbove: number
201
+ readonly reserved1: Array<number>
199
202
  /**
200
203
  * Maximum amount liquidity of this reserve borrowed outside all elevation groups
201
204
  * - u64::MAX for inf
202
205
  * - 0 to disable borrows outside elevation groups
203
206
  */
204
- readonly borrowLimitOutsideElevationGroup: BN;
207
+ readonly borrowLimitOutsideElevationGroup: BN
205
208
  /**
206
209
  * Defines the maximum amount (in lamports of elevation group debt asset)
207
210
  * that can be borrowed when this reserve is used as collateral.
208
211
  * - u64::MAX for inf
209
212
  * - 0 to disable borrows in this elevation group (expected value for the debt asset)
210
213
  */
211
- readonly borrowLimitAgainstThisCollateralInElevationGroup: Array<BN>;
214
+ readonly borrowLimitAgainstThisCollateralInElevationGroup: Array<BN>
212
215
 
213
216
  constructor(fields: ReserveConfigFields) {
214
- this.status = fields.status;
215
- this.assetTier = fields.assetTier;
216
- this.reserved0 = fields.reserved0;
217
- this.multiplierSideBoost = fields.multiplierSideBoost;
218
- this.multiplierTagBoost = fields.multiplierTagBoost;
219
- this.protocolTakeRatePct = fields.protocolTakeRatePct;
220
- this.protocolLiquidationFeePct = fields.protocolLiquidationFeePct;
221
- this.loanToValuePct = fields.loanToValuePct;
222
- this.liquidationThresholdPct = fields.liquidationThresholdPct;
223
- this.minLiquidationBonusBps = fields.minLiquidationBonusBps;
224
- this.maxLiquidationBonusBps = fields.maxLiquidationBonusBps;
225
- this.badDebtLiquidationBonusBps = fields.badDebtLiquidationBonusBps;
226
- this.deleveragingMarginCallPeriodSecs = fields.deleveragingMarginCallPeriodSecs;
227
- this.deleveragingThresholdSlotsPerBps = fields.deleveragingThresholdSlotsPerBps;
228
- this.fees = new types.ReserveFees({ ...fields.fees });
217
+ this.status = fields.status
218
+ this.assetTier = fields.assetTier
219
+ this.hostFixedInterestRateBps = fields.hostFixedInterestRateBps
220
+ this.reserved2 = fields.reserved2
221
+ this.reserved3 = fields.reserved3
222
+ this.protocolTakeRatePct = fields.protocolTakeRatePct
223
+ this.protocolLiquidationFeePct = fields.protocolLiquidationFeePct
224
+ this.loanToValuePct = fields.loanToValuePct
225
+ this.liquidationThresholdPct = fields.liquidationThresholdPct
226
+ this.minLiquidationBonusBps = fields.minLiquidationBonusBps
227
+ this.maxLiquidationBonusBps = fields.maxLiquidationBonusBps
228
+ this.badDebtLiquidationBonusBps = fields.badDebtLiquidationBonusBps
229
+ this.deleveragingMarginCallPeriodSecs =
230
+ fields.deleveragingMarginCallPeriodSecs
231
+ this.deleveragingThresholdSlotsPerBps =
232
+ fields.deleveragingThresholdSlotsPerBps
233
+ this.fees = new types.ReserveFees({ ...fields.fees })
229
234
  this.borrowRateCurve = new types.BorrowRateCurve({
230
235
  ...fields.borrowRateCurve,
231
- });
232
- this.borrowFactorPct = fields.borrowFactorPct;
233
- this.depositLimit = fields.depositLimit;
234
- this.borrowLimit = fields.borrowLimit;
235
- this.tokenInfo = new types.TokenInfo({ ...fields.tokenInfo });
236
+ })
237
+ this.borrowFactorPct = fields.borrowFactorPct
238
+ this.depositLimit = fields.depositLimit
239
+ this.borrowLimit = fields.borrowLimit
240
+ this.tokenInfo = new types.TokenInfo({ ...fields.tokenInfo })
236
241
  this.depositWithdrawalCap = new types.WithdrawalCaps({
237
242
  ...fields.depositWithdrawalCap,
238
- });
243
+ })
239
244
  this.debtWithdrawalCap = new types.WithdrawalCaps({
240
245
  ...fields.debtWithdrawalCap,
241
- });
242
- this.elevationGroups = fields.elevationGroups;
243
- this.disableUsageAsCollOutsideEmode = fields.disableUsageAsCollOutsideEmode;
244
- this.utilizationLimitBlockBorrowingAbove = fields.utilizationLimitBlockBorrowingAbove;
245
- this.reserved1 = fields.reserved1;
246
- this.borrowLimitOutsideElevationGroup = fields.borrowLimitOutsideElevationGroup;
247
- this.borrowLimitAgainstThisCollateralInElevationGroup = fields.borrowLimitAgainstThisCollateralInElevationGroup;
246
+ })
247
+ this.elevationGroups = fields.elevationGroups
248
+ this.disableUsageAsCollOutsideEmode = fields.disableUsageAsCollOutsideEmode
249
+ this.utilizationLimitBlockBorrowingAbove =
250
+ fields.utilizationLimitBlockBorrowingAbove
251
+ this.reserved1 = fields.reserved1
252
+ this.borrowLimitOutsideElevationGroup =
253
+ fields.borrowLimitOutsideElevationGroup
254
+ this.borrowLimitAgainstThisCollateralInElevationGroup =
255
+ fields.borrowLimitAgainstThisCollateralInElevationGroup
248
256
  }
249
257
 
250
258
  static layout(property?: string) {
251
259
  return borsh.struct(
252
260
  [
253
- borsh.u8('status'),
254
- borsh.u8('assetTier'),
255
- borsh.array(borsh.u8(), 2, 'reserved0'),
256
- borsh.array(borsh.u8(), 2, 'multiplierSideBoost'),
257
- borsh.array(borsh.u8(), 8, 'multiplierTagBoost'),
258
- borsh.u8('protocolTakeRatePct'),
259
- borsh.u8('protocolLiquidationFeePct'),
260
- borsh.u8('loanToValuePct'),
261
- borsh.u8('liquidationThresholdPct'),
262
- borsh.u16('minLiquidationBonusBps'),
263
- borsh.u16('maxLiquidationBonusBps'),
264
- borsh.u16('badDebtLiquidationBonusBps'),
265
- borsh.u64('deleveragingMarginCallPeriodSecs'),
266
- borsh.u64('deleveragingThresholdSlotsPerBps'),
267
- types.ReserveFees.layout('fees'),
268
- types.BorrowRateCurve.layout('borrowRateCurve'),
269
- borsh.u64('borrowFactorPct'),
270
- borsh.u64('depositLimit'),
271
- borsh.u64('borrowLimit'),
272
- types.TokenInfo.layout('tokenInfo'),
273
- types.WithdrawalCaps.layout('depositWithdrawalCap'),
274
- types.WithdrawalCaps.layout('debtWithdrawalCap'),
275
- borsh.array(borsh.u8(), 20, 'elevationGroups'),
276
- borsh.u8('disableUsageAsCollOutsideEmode'),
277
- borsh.u8('utilizationLimitBlockBorrowingAbove'),
278
- borsh.array(borsh.u8(), 2, 'reserved1'),
279
- borsh.u64('borrowLimitOutsideElevationGroup'),
280
- borsh.array(borsh.u64(), 32, 'borrowLimitAgainstThisCollateralInElevationGroup'),
261
+ borsh.u8("status"),
262
+ borsh.u8("assetTier"),
263
+ borsh.u16("hostFixedInterestRateBps"),
264
+ borsh.array(borsh.u8(), 2, "reserved2"),
265
+ borsh.array(borsh.u8(), 8, "reserved3"),
266
+ borsh.u8("protocolTakeRatePct"),
267
+ borsh.u8("protocolLiquidationFeePct"),
268
+ borsh.u8("loanToValuePct"),
269
+ borsh.u8("liquidationThresholdPct"),
270
+ borsh.u16("minLiquidationBonusBps"),
271
+ borsh.u16("maxLiquidationBonusBps"),
272
+ borsh.u16("badDebtLiquidationBonusBps"),
273
+ borsh.u64("deleveragingMarginCallPeriodSecs"),
274
+ borsh.u64("deleveragingThresholdSlotsPerBps"),
275
+ types.ReserveFees.layout("fees"),
276
+ types.BorrowRateCurve.layout("borrowRateCurve"),
277
+ borsh.u64("borrowFactorPct"),
278
+ borsh.u64("depositLimit"),
279
+ borsh.u64("borrowLimit"),
280
+ types.TokenInfo.layout("tokenInfo"),
281
+ types.WithdrawalCaps.layout("depositWithdrawalCap"),
282
+ types.WithdrawalCaps.layout("debtWithdrawalCap"),
283
+ borsh.array(borsh.u8(), 20, "elevationGroups"),
284
+ borsh.u8("disableUsageAsCollOutsideEmode"),
285
+ borsh.u8("utilizationLimitBlockBorrowingAbove"),
286
+ borsh.array(borsh.u8(), 2, "reserved1"),
287
+ borsh.u64("borrowLimitOutsideElevationGroup"),
288
+ borsh.array(
289
+ borsh.u64(),
290
+ 32,
291
+ "borrowLimitAgainstThisCollateralInElevationGroup"
292
+ ),
281
293
  ],
282
294
  property
283
- );
295
+ )
284
296
  }
285
297
 
286
298
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -288,9 +300,9 @@ export class ReserveConfig {
288
300
  return new ReserveConfig({
289
301
  status: obj.status,
290
302
  assetTier: obj.assetTier,
291
- reserved0: obj.reserved0,
292
- multiplierSideBoost: obj.multiplierSideBoost,
293
- multiplierTagBoost: obj.multiplierTagBoost,
303
+ hostFixedInterestRateBps: obj.hostFixedInterestRateBps,
304
+ reserved2: obj.reserved2,
305
+ reserved3: obj.reserved3,
294
306
  protocolTakeRatePct: obj.protocolTakeRatePct,
295
307
  protocolLiquidationFeePct: obj.protocolLiquidationFeePct,
296
308
  loanToValuePct: obj.loanToValuePct,
@@ -306,24 +318,30 @@ export class ReserveConfig {
306
318
  depositLimit: obj.depositLimit,
307
319
  borrowLimit: obj.borrowLimit,
308
320
  tokenInfo: types.TokenInfo.fromDecoded(obj.tokenInfo),
309
- depositWithdrawalCap: types.WithdrawalCaps.fromDecoded(obj.depositWithdrawalCap),
310
- debtWithdrawalCap: types.WithdrawalCaps.fromDecoded(obj.debtWithdrawalCap),
321
+ depositWithdrawalCap: types.WithdrawalCaps.fromDecoded(
322
+ obj.depositWithdrawalCap
323
+ ),
324
+ debtWithdrawalCap: types.WithdrawalCaps.fromDecoded(
325
+ obj.debtWithdrawalCap
326
+ ),
311
327
  elevationGroups: obj.elevationGroups,
312
328
  disableUsageAsCollOutsideEmode: obj.disableUsageAsCollOutsideEmode,
313
- utilizationLimitBlockBorrowingAbove: obj.utilizationLimitBlockBorrowingAbove,
329
+ utilizationLimitBlockBorrowingAbove:
330
+ obj.utilizationLimitBlockBorrowingAbove,
314
331
  reserved1: obj.reserved1,
315
332
  borrowLimitOutsideElevationGroup: obj.borrowLimitOutsideElevationGroup,
316
- borrowLimitAgainstThisCollateralInElevationGroup: obj.borrowLimitAgainstThisCollateralInElevationGroup,
317
- });
333
+ borrowLimitAgainstThisCollateralInElevationGroup:
334
+ obj.borrowLimitAgainstThisCollateralInElevationGroup,
335
+ })
318
336
  }
319
337
 
320
338
  static toEncodable(fields: ReserveConfigFields) {
321
339
  return {
322
340
  status: fields.status,
323
341
  assetTier: fields.assetTier,
324
- reserved0: fields.reserved0,
325
- multiplierSideBoost: fields.multiplierSideBoost,
326
- multiplierTagBoost: fields.multiplierTagBoost,
342
+ hostFixedInterestRateBps: fields.hostFixedInterestRateBps,
343
+ reserved2: fields.reserved2,
344
+ reserved3: fields.reserved3,
327
345
  protocolTakeRatePct: fields.protocolTakeRatePct,
328
346
  protocolLiquidationFeePct: fields.protocolLiquidationFeePct,
329
347
  loanToValuePct: fields.loanToValuePct,
@@ -334,29 +352,37 @@ export class ReserveConfig {
334
352
  deleveragingMarginCallPeriodSecs: fields.deleveragingMarginCallPeriodSecs,
335
353
  deleveragingThresholdSlotsPerBps: fields.deleveragingThresholdSlotsPerBps,
336
354
  fees: types.ReserveFees.toEncodable(fields.fees),
337
- borrowRateCurve: types.BorrowRateCurve.toEncodable(fields.borrowRateCurve),
355
+ borrowRateCurve: types.BorrowRateCurve.toEncodable(
356
+ fields.borrowRateCurve
357
+ ),
338
358
  borrowFactorPct: fields.borrowFactorPct,
339
359
  depositLimit: fields.depositLimit,
340
360
  borrowLimit: fields.borrowLimit,
341
361
  tokenInfo: types.TokenInfo.toEncodable(fields.tokenInfo),
342
- depositWithdrawalCap: types.WithdrawalCaps.toEncodable(fields.depositWithdrawalCap),
343
- debtWithdrawalCap: types.WithdrawalCaps.toEncodable(fields.debtWithdrawalCap),
362
+ depositWithdrawalCap: types.WithdrawalCaps.toEncodable(
363
+ fields.depositWithdrawalCap
364
+ ),
365
+ debtWithdrawalCap: types.WithdrawalCaps.toEncodable(
366
+ fields.debtWithdrawalCap
367
+ ),
344
368
  elevationGroups: fields.elevationGroups,
345
369
  disableUsageAsCollOutsideEmode: fields.disableUsageAsCollOutsideEmode,
346
- utilizationLimitBlockBorrowingAbove: fields.utilizationLimitBlockBorrowingAbove,
370
+ utilizationLimitBlockBorrowingAbove:
371
+ fields.utilizationLimitBlockBorrowingAbove,
347
372
  reserved1: fields.reserved1,
348
373
  borrowLimitOutsideElevationGroup: fields.borrowLimitOutsideElevationGroup,
349
- borrowLimitAgainstThisCollateralInElevationGroup: fields.borrowLimitAgainstThisCollateralInElevationGroup,
350
- };
374
+ borrowLimitAgainstThisCollateralInElevationGroup:
375
+ fields.borrowLimitAgainstThisCollateralInElevationGroup,
376
+ }
351
377
  }
352
378
 
353
379
  toJSON(): ReserveConfigJSON {
354
380
  return {
355
381
  status: this.status,
356
382
  assetTier: this.assetTier,
357
- reserved0: this.reserved0,
358
- multiplierSideBoost: this.multiplierSideBoost,
359
- multiplierTagBoost: this.multiplierTagBoost,
383
+ hostFixedInterestRateBps: this.hostFixedInterestRateBps,
384
+ reserved2: this.reserved2,
385
+ reserved3: this.reserved3,
360
386
  protocolTakeRatePct: this.protocolTakeRatePct,
361
387
  protocolLiquidationFeePct: this.protocolLiquidationFeePct,
362
388
  loanToValuePct: this.loanToValuePct,
@@ -364,8 +390,10 @@ export class ReserveConfig {
364
390
  minLiquidationBonusBps: this.minLiquidationBonusBps,
365
391
  maxLiquidationBonusBps: this.maxLiquidationBonusBps,
366
392
  badDebtLiquidationBonusBps: this.badDebtLiquidationBonusBps,
367
- deleveragingMarginCallPeriodSecs: this.deleveragingMarginCallPeriodSecs.toString(),
368
- deleveragingThresholdSlotsPerBps: this.deleveragingThresholdSlotsPerBps.toString(),
393
+ deleveragingMarginCallPeriodSecs:
394
+ this.deleveragingMarginCallPeriodSecs.toString(),
395
+ deleveragingThresholdSlotsPerBps:
396
+ this.deleveragingThresholdSlotsPerBps.toString(),
369
397
  fees: this.fees.toJSON(),
370
398
  borrowRateCurve: this.borrowRateCurve.toJSON(),
371
399
  borrowFactorPct: this.borrowFactorPct.toString(),
@@ -376,22 +404,25 @@ export class ReserveConfig {
376
404
  debtWithdrawalCap: this.debtWithdrawalCap.toJSON(),
377
405
  elevationGroups: this.elevationGroups,
378
406
  disableUsageAsCollOutsideEmode: this.disableUsageAsCollOutsideEmode,
379
- utilizationLimitBlockBorrowingAbove: this.utilizationLimitBlockBorrowingAbove,
407
+ utilizationLimitBlockBorrowingAbove:
408
+ this.utilizationLimitBlockBorrowingAbove,
380
409
  reserved1: this.reserved1,
381
- borrowLimitOutsideElevationGroup: this.borrowLimitOutsideElevationGroup.toString(),
382
- borrowLimitAgainstThisCollateralInElevationGroup: this.borrowLimitAgainstThisCollateralInElevationGroup.map(
383
- (item) => item.toString()
384
- ),
385
- };
410
+ borrowLimitOutsideElevationGroup:
411
+ this.borrowLimitOutsideElevationGroup.toString(),
412
+ borrowLimitAgainstThisCollateralInElevationGroup:
413
+ this.borrowLimitAgainstThisCollateralInElevationGroup.map((item) =>
414
+ item.toString()
415
+ ),
416
+ }
386
417
  }
387
418
 
388
419
  static fromJSON(obj: ReserveConfigJSON): ReserveConfig {
389
420
  return new ReserveConfig({
390
421
  status: obj.status,
391
422
  assetTier: obj.assetTier,
392
- reserved0: obj.reserved0,
393
- multiplierSideBoost: obj.multiplierSideBoost,
394
- multiplierTagBoost: obj.multiplierTagBoost,
423
+ hostFixedInterestRateBps: obj.hostFixedInterestRateBps,
424
+ reserved2: obj.reserved2,
425
+ reserved3: obj.reserved3,
395
426
  protocolTakeRatePct: obj.protocolTakeRatePct,
396
427
  protocolLiquidationFeePct: obj.protocolLiquidationFeePct,
397
428
  loanToValuePct: obj.loanToValuePct,
@@ -399,28 +430,38 @@ export class ReserveConfig {
399
430
  minLiquidationBonusBps: obj.minLiquidationBonusBps,
400
431
  maxLiquidationBonusBps: obj.maxLiquidationBonusBps,
401
432
  badDebtLiquidationBonusBps: obj.badDebtLiquidationBonusBps,
402
- deleveragingMarginCallPeriodSecs: new BN(obj.deleveragingMarginCallPeriodSecs),
403
- deleveragingThresholdSlotsPerBps: new BN(obj.deleveragingThresholdSlotsPerBps),
433
+ deleveragingMarginCallPeriodSecs: new BN(
434
+ obj.deleveragingMarginCallPeriodSecs
435
+ ),
436
+ deleveragingThresholdSlotsPerBps: new BN(
437
+ obj.deleveragingThresholdSlotsPerBps
438
+ ),
404
439
  fees: types.ReserveFees.fromJSON(obj.fees),
405
440
  borrowRateCurve: types.BorrowRateCurve.fromJSON(obj.borrowRateCurve),
406
441
  borrowFactorPct: new BN(obj.borrowFactorPct),
407
442
  depositLimit: new BN(obj.depositLimit),
408
443
  borrowLimit: new BN(obj.borrowLimit),
409
444
  tokenInfo: types.TokenInfo.fromJSON(obj.tokenInfo),
410
- depositWithdrawalCap: types.WithdrawalCaps.fromJSON(obj.depositWithdrawalCap),
445
+ depositWithdrawalCap: types.WithdrawalCaps.fromJSON(
446
+ obj.depositWithdrawalCap
447
+ ),
411
448
  debtWithdrawalCap: types.WithdrawalCaps.fromJSON(obj.debtWithdrawalCap),
412
449
  elevationGroups: obj.elevationGroups,
413
450
  disableUsageAsCollOutsideEmode: obj.disableUsageAsCollOutsideEmode,
414
- utilizationLimitBlockBorrowingAbove: obj.utilizationLimitBlockBorrowingAbove,
451
+ utilizationLimitBlockBorrowingAbove:
452
+ obj.utilizationLimitBlockBorrowingAbove,
415
453
  reserved1: obj.reserved1,
416
- borrowLimitOutsideElevationGroup: new BN(obj.borrowLimitOutsideElevationGroup),
417
- borrowLimitAgainstThisCollateralInElevationGroup: obj.borrowLimitAgainstThisCollateralInElevationGroup.map(
418
- (item) => new BN(item)
454
+ borrowLimitOutsideElevationGroup: new BN(
455
+ obj.borrowLimitOutsideElevationGroup
419
456
  ),
420
- });
457
+ borrowLimitAgainstThisCollateralInElevationGroup:
458
+ obj.borrowLimitAgainstThisCollateralInElevationGroup.map(
459
+ (item) => new BN(item)
460
+ ),
461
+ })
421
462
  }
422
463
 
423
464
  toEncodable() {
424
- return ReserveConfig.toEncodable(this);
465
+ return ReserveConfig.toEncodable(this)
425
466
  }
426
467
  }