@kamino-finance/klend-sdk 7.2.6 → 7.3.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 (223) hide show
  1. package/README.md +1 -0
  2. package/dist/@codegen/klend/accounts/LendingMarket.d.ts +33 -0
  3. package/dist/@codegen/klend/accounts/LendingMarket.d.ts.map +1 -1
  4. package/dist/@codegen/klend/accounts/LendingMarket.js +24 -2
  5. package/dist/@codegen/klend/accounts/LendingMarket.js.map +1 -1
  6. package/dist/@codegen/klend/errors/custom.d.ts +26 -2
  7. package/dist/@codegen/klend/errors/custom.d.ts.map +1 -1
  8. package/dist/@codegen/klend/errors/custom.js +45 -3
  9. package/dist/@codegen/klend/errors/custom.js.map +1 -1
  10. package/dist/@codegen/klend/instructions/index.d.ts +2 -0
  11. package/dist/@codegen/klend/instructions/index.d.ts.map +1 -1
  12. package/dist/@codegen/klend/instructions/index.js +3 -1
  13. package/dist/@codegen/klend/instructions/index.js.map +1 -1
  14. package/dist/@codegen/klend/instructions/initReserve.d.ts +1 -1
  15. package/dist/@codegen/klend/instructions/initReserve.d.ts.map +1 -1
  16. package/dist/@codegen/klend/instructions/initReserve.js +1 -5
  17. package/dist/@codegen/klend/instructions/initReserve.js.map +1 -1
  18. package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateralV2.js +1 -1
  19. package/dist/@codegen/klend/instructions/seedDepositOnInitReserve.d.ts +13 -0
  20. package/dist/@codegen/klend/instructions/seedDepositOnInitReserve.d.ts.map +1 -0
  21. package/dist/@codegen/klend/instructions/seedDepositOnInitReserve.js +24 -0
  22. package/dist/@codegen/klend/instructions/seedDepositOnInitReserve.js.map +1 -0
  23. package/dist/@codegen/klend/instructions/withdrawObligationCollateral.js +1 -1
  24. package/dist/@codegen/klend/instructions/withdrawObligationCollateralV2.js +1 -1
  25. package/dist/@codegen/klend/types/ReserveConfig.d.ts +58 -24
  26. package/dist/@codegen/klend/types/ReserveConfig.d.ts.map +1 -1
  27. package/dist/@codegen/klend/types/ReserveConfig.js +40 -18
  28. package/dist/@codegen/klend/types/ReserveConfig.js.map +1 -1
  29. package/dist/@codegen/klend/types/ReserveFees.d.ts +8 -8
  30. package/dist/@codegen/klend/types/ReserveFees.d.ts.map +1 -1
  31. package/dist/@codegen/klend/types/ReserveFees.js +8 -8
  32. package/dist/@codegen/klend/types/ReserveFees.js.map +1 -1
  33. package/dist/@codegen/klend/types/UpdateConfigMode.d.ts +46 -7
  34. package/dist/@codegen/klend/types/UpdateConfigMode.d.ts.map +1 -1
  35. package/dist/@codegen/klend/types/UpdateConfigMode.js +85 -12
  36. package/dist/@codegen/klend/types/UpdateConfigMode.js.map +1 -1
  37. package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts +26 -0
  38. package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts.map +1 -1
  39. package/dist/@codegen/klend/types/UpdateLendingMarketMode.js +49 -1
  40. package/dist/@codegen/klend/types/UpdateLendingMarketMode.js.map +1 -1
  41. package/dist/@codegen/klend/types/index.d.ts +4 -4
  42. package/dist/@codegen/klend/types/index.d.ts.map +1 -1
  43. package/dist/@codegen/klend/types/index.js.map +1 -1
  44. package/dist/@codegen/kvault/accounts/GlobalConfig.d.ts +32 -0
  45. package/dist/@codegen/kvault/accounts/GlobalConfig.d.ts.map +1 -0
  46. package/dist/@codegen/kvault/accounts/GlobalConfig.js +125 -0
  47. package/dist/@codegen/kvault/accounts/GlobalConfig.js.map +1 -0
  48. package/dist/@codegen/kvault/accounts/Reserve.js +1 -1
  49. package/dist/@codegen/kvault/accounts/ReserveWhitelistEntry.d.ts +52 -0
  50. package/dist/@codegen/kvault/accounts/ReserveWhitelistEntry.d.ts.map +1 -0
  51. package/dist/@codegen/kvault/accounts/ReserveWhitelistEntry.js +127 -0
  52. package/dist/@codegen/kvault/accounts/ReserveWhitelistEntry.js.map +1 -0
  53. package/dist/@codegen/kvault/accounts/VaultState.d.ts +18 -0
  54. package/dist/@codegen/kvault/accounts/VaultState.d.ts.map +1 -1
  55. package/dist/@codegen/kvault/accounts/VaultState.js +39 -1
  56. package/dist/@codegen/kvault/accounts/VaultState.js.map +1 -1
  57. package/dist/@codegen/kvault/accounts/index.d.ts +4 -0
  58. package/dist/@codegen/kvault/accounts/index.d.ts.map +1 -1
  59. package/dist/@codegen/kvault/accounts/index.js +5 -1
  60. package/dist/@codegen/kvault/accounts/index.js.map +1 -1
  61. package/dist/@codegen/kvault/errors/custom.d.ts +61 -5
  62. package/dist/@codegen/kvault/errors/custom.d.ts.map +1 -1
  63. package/dist/@codegen/kvault/errors/custom.js +108 -9
  64. package/dist/@codegen/kvault/errors/custom.js.map +1 -1
  65. package/dist/@codegen/kvault/instructions/addUpdateWhitelistedReserve.d.ts +16 -0
  66. package/dist/@codegen/kvault/instructions/addUpdateWhitelistedReserve.d.ts.map +1 -0
  67. package/dist/@codegen/kvault/instructions/addUpdateWhitelistedReserve.js +66 -0
  68. package/dist/@codegen/kvault/instructions/addUpdateWhitelistedReserve.js.map +1 -0
  69. package/dist/@codegen/kvault/instructions/buy.d.ts +24 -0
  70. package/dist/@codegen/kvault/instructions/buy.d.ts.map +1 -0
  71. package/dist/@codegen/kvault/instructions/buy.js +67 -0
  72. package/dist/@codegen/kvault/instructions/buy.js.map +1 -0
  73. package/dist/@codegen/kvault/instructions/index.d.ts +12 -0
  74. package/dist/@codegen/kvault/instructions/index.d.ts.map +1 -1
  75. package/dist/@codegen/kvault/instructions/index.js +13 -1
  76. package/dist/@codegen/kvault/instructions/index.js.map +1 -1
  77. package/dist/@codegen/kvault/instructions/initGlobalConfig.d.ts +11 -0
  78. package/dist/@codegen/kvault/instructions/initGlobalConfig.d.ts.map +1 -0
  79. package/dist/@codegen/kvault/instructions/initGlobalConfig.js +20 -0
  80. package/dist/@codegen/kvault/instructions/initGlobalConfig.js.map +1 -0
  81. package/dist/@codegen/kvault/instructions/invest.d.ts +2 -1
  82. package/dist/@codegen/kvault/instructions/invest.d.ts.map +1 -1
  83. package/dist/@codegen/kvault/instructions/invest.js +5 -0
  84. package/dist/@codegen/kvault/instructions/invest.js.map +1 -1
  85. package/dist/@codegen/kvault/instructions/sell.d.ts +40 -0
  86. package/dist/@codegen/kvault/instructions/sell.d.ts.map +1 -0
  87. package/dist/@codegen/kvault/instructions/sell.js +98 -0
  88. package/dist/@codegen/kvault/instructions/sell.js.map +1 -0
  89. package/dist/@codegen/kvault/instructions/updateGlobalConfig.d.ts +13 -0
  90. package/dist/@codegen/kvault/instructions/updateGlobalConfig.d.ts.map +1 -0
  91. package/dist/@codegen/kvault/instructions/updateGlobalConfig.js +63 -0
  92. package/dist/@codegen/kvault/instructions/updateGlobalConfig.js.map +1 -0
  93. package/dist/@codegen/kvault/instructions/updateGlobalConfigAdmin.d.ts +8 -0
  94. package/dist/@codegen/kvault/instructions/updateGlobalConfigAdmin.d.ts.map +1 -0
  95. package/dist/@codegen/kvault/instructions/updateGlobalConfigAdmin.js +21 -0
  96. package/dist/@codegen/kvault/instructions/updateGlobalConfigAdmin.js.map +1 -0
  97. package/dist/@codegen/kvault/instructions/updateReserveAllocation.d.ts +2 -1
  98. package/dist/@codegen/kvault/instructions/updateReserveAllocation.d.ts.map +1 -1
  99. package/dist/@codegen/kvault/instructions/updateReserveAllocation.js +5 -0
  100. package/dist/@codegen/kvault/instructions/updateReserveAllocation.js.map +1 -1
  101. package/dist/@codegen/kvault/instructions/updateVaultConfig.d.ts +2 -1
  102. package/dist/@codegen/kvault/instructions/updateVaultConfig.d.ts.map +1 -1
  103. package/dist/@codegen/kvault/instructions/updateVaultConfig.js +2 -5
  104. package/dist/@codegen/kvault/instructions/updateVaultConfig.js.map +1 -1
  105. package/dist/@codegen/kvault/instructions/withdraw.d.ts +1 -0
  106. package/dist/@codegen/kvault/instructions/withdraw.d.ts.map +1 -1
  107. package/dist/@codegen/kvault/instructions/withdraw.js +1 -0
  108. package/dist/@codegen/kvault/instructions/withdraw.js.map +1 -1
  109. package/dist/@codegen/kvault/instructions/withdrawFromAvailable.d.ts +1 -0
  110. package/dist/@codegen/kvault/instructions/withdrawFromAvailable.d.ts.map +1 -1
  111. package/dist/@codegen/kvault/instructions/withdrawFromAvailable.js +1 -0
  112. package/dist/@codegen/kvault/instructions/withdrawFromAvailable.js.map +1 -1
  113. package/dist/@codegen/kvault/types/ReserveConfig.d.ts +27 -34
  114. package/dist/@codegen/kvault/types/ReserveConfig.d.ts.map +1 -1
  115. package/dist/@codegen/kvault/types/ReserveConfig.js +20 -17
  116. package/dist/@codegen/kvault/types/ReserveConfig.js.map +1 -1
  117. package/dist/@codegen/kvault/types/ReserveFees.d.ts +8 -8
  118. package/dist/@codegen/kvault/types/ReserveFees.d.ts.map +1 -1
  119. package/dist/@codegen/kvault/types/ReserveFees.js +8 -8
  120. package/dist/@codegen/kvault/types/ReserveFees.js.map +1 -1
  121. package/dist/@codegen/kvault/types/UpdateGlobalConfigMode.d.ts +68 -0
  122. package/dist/@codegen/kvault/types/UpdateGlobalConfigMode.d.ts.map +1 -0
  123. package/dist/@codegen/kvault/types/UpdateGlobalConfigMode.js +162 -0
  124. package/dist/@codegen/kvault/types/UpdateGlobalConfigMode.js.map +1 -0
  125. package/dist/@codegen/kvault/types/UpdateReserveWhitelistMode.d.ts +46 -0
  126. package/dist/@codegen/kvault/types/UpdateReserveWhitelistMode.d.ts.map +1 -0
  127. package/dist/@codegen/kvault/types/UpdateReserveWhitelistMode.js +124 -0
  128. package/dist/@codegen/kvault/types/UpdateReserveWhitelistMode.js.map +1 -0
  129. package/dist/@codegen/kvault/types/VaultConfigField.d.ts +65 -0
  130. package/dist/@codegen/kvault/types/VaultConfigField.d.ts.map +1 -1
  131. package/dist/@codegen/kvault/types/VaultConfigField.js +121 -1
  132. package/dist/@codegen/kvault/types/VaultConfigField.js.map +1 -1
  133. package/dist/@codegen/kvault/types/index.d.ts +10 -2
  134. package/dist/@codegen/kvault/types/index.d.ts.map +1 -1
  135. package/dist/@codegen/kvault/types/index.js +5 -1
  136. package/dist/@codegen/kvault/types/index.js.map +1 -1
  137. package/dist/classes/manager.d.ts +17 -1
  138. package/dist/classes/manager.d.ts.map +1 -1
  139. package/dist/classes/manager.js +22 -0
  140. package/dist/classes/manager.js.map +1 -1
  141. package/dist/classes/reserve.d.ts.map +1 -1
  142. package/dist/classes/reserve.js +7 -4
  143. package/dist/classes/reserve.js.map +1 -1
  144. package/dist/classes/vault.d.ts +29 -5
  145. package/dist/classes/vault.d.ts.map +1 -1
  146. package/dist/classes/vault.js +119 -48
  147. package/dist/classes/vault.js.map +1 -1
  148. package/dist/idl/klend.json +129 -59
  149. package/dist/lib.d.ts +1 -0
  150. package/dist/lib.d.ts.map +1 -1
  151. package/dist/lib.js +4 -2
  152. package/dist/lib.js.map +1 -1
  153. package/dist/manager/client_kamino_manager.js +206 -15
  154. package/dist/manager/client_kamino_manager.js.map +1 -1
  155. package/dist/utils/index.d.ts +1 -0
  156. package/dist/utils/index.d.ts.map +1 -1
  157. package/dist/utils/index.js +1 -0
  158. package/dist/utils/index.js.map +1 -1
  159. package/dist/utils/managerTypes.d.ts +1 -1
  160. package/dist/utils/managerTypes.d.ts.map +1 -1
  161. package/dist/utils/managerTypes.js +5 -3
  162. package/dist/utils/managerTypes.js.map +1 -1
  163. package/dist/utils/parse.d.ts +10 -0
  164. package/dist/utils/parse.d.ts.map +1 -0
  165. package/dist/utils/parse.js +24 -0
  166. package/dist/utils/parse.js.map +1 -0
  167. package/dist/utils/seeds.d.ts +5 -5
  168. package/dist/utils/seeds.d.ts.map +1 -1
  169. package/dist/utils/seeds.js +13 -13
  170. package/dist/utils/seeds.js.map +1 -1
  171. package/dist/utils/vault.d.ts.map +1 -1
  172. package/dist/utils/vault.js +6 -0
  173. package/dist/utils/vault.js.map +1 -1
  174. package/package.json +1 -1
  175. package/src/@codegen/klend/accounts/LendingMarket.ts +46 -2
  176. package/src/@codegen/klend/errors/custom.ts +47 -2
  177. package/src/@codegen/klend/instructions/index.ts +2 -0
  178. package/src/@codegen/klend/instructions/initReserve.ts +2 -6
  179. package/src/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateralV2.ts +1 -1
  180. package/src/@codegen/klend/instructions/seedDepositOnInitReserve.ts +50 -0
  181. package/src/@codegen/klend/instructions/withdrawObligationCollateral.ts +1 -1
  182. package/src/@codegen/klend/instructions/withdrawObligationCollateralV2.ts +1 -1
  183. package/src/@codegen/klend/types/ReserveConfig.ts +72 -30
  184. package/src/@codegen/klend/types/ReserveFees.ts +12 -12
  185. package/src/@codegen/klend/types/UpdateConfigMode.ts +103 -13
  186. package/src/@codegen/klend/types/UpdateLendingMarketMode.ts +60 -0
  187. package/src/@codegen/klend/types/index.ts +12 -2
  188. package/src/@codegen/kvault/accounts/GlobalConfig.ts +136 -0
  189. package/src/@codegen/kvault/accounts/Reserve.ts +1 -1
  190. package/src/@codegen/kvault/accounts/ReserveWhitelistEntry.ts +157 -0
  191. package/src/@codegen/kvault/accounts/VaultState.ts +57 -1
  192. package/src/@codegen/kvault/accounts/index.ts +7 -0
  193. package/src/@codegen/kvault/errors/custom.ts +109 -8
  194. package/src/@codegen/kvault/instructions/addUpdateWhitelistedReserve.ts +64 -0
  195. package/src/@codegen/kvault/instructions/buy.ts +74 -0
  196. package/src/@codegen/kvault/instructions/index.ts +18 -0
  197. package/src/@codegen/kvault/instructions/initGlobalConfig.ts +44 -0
  198. package/src/@codegen/kvault/instructions/invest.ts +4 -0
  199. package/src/@codegen/kvault/instructions/sell.ts +122 -0
  200. package/src/@codegen/kvault/instructions/updateGlobalConfig.ts +58 -0
  201. package/src/@codegen/kvault/instructions/updateGlobalConfigAdmin.ts +42 -0
  202. package/src/@codegen/kvault/instructions/updateReserveAllocation.ts +4 -0
  203. package/src/@codegen/kvault/instructions/updateVaultConfig.ts +4 -6
  204. package/src/@codegen/kvault/instructions/withdraw.ts +2 -0
  205. package/src/@codegen/kvault/instructions/withdrawFromAvailable.ts +2 -0
  206. package/src/@codegen/kvault/types/ReserveConfig.ts +34 -37
  207. package/src/@codegen/kvault/types/ReserveFees.ts +12 -12
  208. package/src/@codegen/kvault/types/UpdateGlobalConfigMode.ts +160 -0
  209. package/src/@codegen/kvault/types/UpdateReserveWhitelistMode.ts +117 -0
  210. package/src/@codegen/kvault/types/VaultConfigField.ts +150 -0
  211. package/src/@codegen/kvault/types/index.ts +31 -0
  212. package/src/classes/manager.ts +29 -1
  213. package/src/classes/reserve.ts +7 -5
  214. package/src/classes/vault.ts +166 -48
  215. package/src/idl/klend.json +130 -60
  216. package/src/idl/kvault.json +582 -23
  217. package/src/lib.ts +2 -1
  218. package/src/manager/client_kamino_manager.ts +313 -18
  219. package/src/utils/index.ts +2 -1
  220. package/src/utils/managerTypes.ts +6 -4
  221. package/src/utils/parse.ts +18 -0
  222. package/src/utils/seeds.ts +13 -17
  223. package/src/utils/vault.ts +6 -0
@@ -0,0 +1,74 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import {
3
+ Address,
4
+ isSome,
5
+ AccountMeta,
6
+ AccountSignerMeta,
7
+ Instruction,
8
+ Option,
9
+ TransactionSigner,
10
+ } from "@solana/kit"
11
+ /* eslint-enable @typescript-eslint/no-unused-vars */
12
+ import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
13
+ import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars
14
+ import { borshAddress } from "../utils" // eslint-disable-line @typescript-eslint/no-unused-vars
15
+ import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
16
+ import { PROGRAM_ID } from "../programId"
17
+
18
+ export const DISCRIMINATOR = Buffer.from([102, 6, 61, 18, 1, 218, 235, 234])
19
+
20
+ export interface BuyArgs {
21
+ maxAmount: BN
22
+ }
23
+
24
+ export interface BuyAccounts {
25
+ user: TransactionSigner
26
+ vaultState: Address
27
+ tokenVault: Address
28
+ tokenMint: Address
29
+ baseVaultAuthority: Address
30
+ sharesMint: Address
31
+ userTokenAta: Address
32
+ userSharesAta: Address
33
+ klendProgram: Address
34
+ tokenProgram: Address
35
+ sharesTokenProgram: Address
36
+ eventAuthority: Address
37
+ program: Address
38
+ }
39
+
40
+ export const layout = borsh.struct<BuyArgs>([borsh.u64("maxAmount")])
41
+
42
+ export function buy(
43
+ args: BuyArgs,
44
+ accounts: BuyAccounts,
45
+ remainingAccounts: Array<AccountMeta | AccountSignerMeta> = [],
46
+ programAddress: Address = PROGRAM_ID
47
+ ) {
48
+ const keys: Array<AccountMeta | AccountSignerMeta> = [
49
+ { address: accounts.user.address, role: 3, signer: accounts.user },
50
+ { address: accounts.vaultState, role: 1 },
51
+ { address: accounts.tokenVault, role: 1 },
52
+ { address: accounts.tokenMint, role: 0 },
53
+ { address: accounts.baseVaultAuthority, role: 0 },
54
+ { address: accounts.sharesMint, role: 1 },
55
+ { address: accounts.userTokenAta, role: 1 },
56
+ { address: accounts.userSharesAta, role: 1 },
57
+ { address: accounts.klendProgram, role: 0 },
58
+ { address: accounts.tokenProgram, role: 0 },
59
+ { address: accounts.sharesTokenProgram, role: 0 },
60
+ { address: accounts.eventAuthority, role: 0 },
61
+ { address: accounts.program, role: 0 },
62
+ ...remainingAccounts,
63
+ ]
64
+ const buffer = Buffer.alloc(1000)
65
+ const len = layout.encode(
66
+ {
67
+ maxAmount: args.maxAmount,
68
+ },
69
+ buffer
70
+ )
71
+ const data = Buffer.concat([DISCRIMINATOR, buffer]).slice(0, 8 + len)
72
+ const ix: Instruction = { accounts: keys, programAddress, data }
73
+ return ix
74
+ }
@@ -7,8 +7,12 @@ export type {
7
7
  } from "./updateReserveAllocation"
8
8
  export { deposit } from "./deposit"
9
9
  export type { DepositArgs, DepositAccounts } from "./deposit"
10
+ export { buy } from "./buy"
11
+ export type { BuyArgs, BuyAccounts } from "./buy"
10
12
  export { withdraw } from "./withdraw"
11
13
  export type { WithdrawArgs, WithdrawAccounts } from "./withdraw"
14
+ export { sell } from "./sell"
15
+ export type { SellArgs, SellAccounts } from "./sell"
12
16
  export { invest } from "./invest"
13
17
  export type { InvestAccounts } from "./invest"
14
18
  export { updateVaultConfig } from "./updateVaultConfig"
@@ -42,3 +46,17 @@ export type {
42
46
  } from "./withdrawFromAvailable"
43
47
  export { removeAllocation } from "./removeAllocation"
44
48
  export type { RemoveAllocationAccounts } from "./removeAllocation"
49
+ export { initGlobalConfig as initKVaultGlobalConfig } from "./initGlobalConfig"
50
+ export type { InitGlobalConfigAccounts as InitKVaultGlobalConfigAccounts } from "./initGlobalConfig"
51
+ export { updateGlobalConfig as updateKVaultGlobalConfig } from "./updateGlobalConfig"
52
+ export type {
53
+ UpdateGlobalConfigArgs as UpdateKVaultGlobalConfigArgs,
54
+ UpdateGlobalConfigAccounts as UpdateKVaultGlobalConfigAccounts,
55
+ } from "./updateGlobalConfig"
56
+ export { updateGlobalConfigAdmin as updateKVaultGlobalConfigAdmin } from "./updateGlobalConfigAdmin"
57
+ export type { UpdateGlobalConfigAdminAccounts as UpdateKVaultGlobalConfigAdminAccounts } from "./updateGlobalConfigAdmin"
58
+ export { addUpdateWhitelistedReserve } from "./addUpdateWhitelistedReserve"
59
+ export type {
60
+ AddUpdateWhitelistedReserveArgs,
61
+ AddUpdateWhitelistedReserveAccounts,
62
+ } from "./addUpdateWhitelistedReserve"
@@ -0,0 +1,44 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import {
3
+ Address,
4
+ isSome,
5
+ AccountMeta,
6
+ AccountSignerMeta,
7
+ Instruction,
8
+ Option,
9
+ TransactionSigner,
10
+ } from "@solana/kit"
11
+ /* eslint-enable @typescript-eslint/no-unused-vars */
12
+ import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
13
+ import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars
14
+ import { borshAddress } from "../utils" // eslint-disable-line @typescript-eslint/no-unused-vars
15
+ import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
16
+ import { PROGRAM_ID } from "../programId"
17
+
18
+ export const DISCRIMINATOR = Buffer.from([140, 136, 214, 48, 87, 0, 120, 255])
19
+
20
+ export interface InitGlobalConfigAccounts {
21
+ payer: TransactionSigner
22
+ globalConfig: Address
23
+ programData: Address
24
+ systemProgram: Address
25
+ rent: Address
26
+ }
27
+
28
+ export function initGlobalConfig(
29
+ accounts: InitGlobalConfigAccounts,
30
+ remainingAccounts: Array<AccountMeta | AccountSignerMeta> = [],
31
+ programAddress: Address = PROGRAM_ID
32
+ ) {
33
+ const keys: Array<AccountMeta | AccountSignerMeta> = [
34
+ { address: accounts.payer.address, role: 3, signer: accounts.payer },
35
+ { address: accounts.globalConfig, role: 1 },
36
+ { address: accounts.programData, role: 0 },
37
+ { address: accounts.systemProgram, role: 0 },
38
+ { address: accounts.rent, role: 0 },
39
+ ...remainingAccounts,
40
+ ]
41
+ const data = DISCRIMINATOR
42
+ const ix: Instruction = { accounts: keys, programAddress, data }
43
+ return ix
44
+ }
@@ -31,6 +31,7 @@ export interface InvestAccounts {
31
31
  lendingMarketAuthority: Address
32
32
  reserveLiquiditySupply: Address
33
33
  reserveCollateralMint: Address
34
+ reserveWhitelistEntry: Option<Address>
34
35
  klendProgram: Address
35
36
  reserveCollateralTokenProgram: Address
36
37
  tokenProgram: Address
@@ -55,6 +56,9 @@ export function invest(
55
56
  { address: accounts.lendingMarketAuthority, role: 0 },
56
57
  { address: accounts.reserveLiquiditySupply, role: 1 },
57
58
  { address: accounts.reserveCollateralMint, role: 1 },
59
+ isSome(accounts.reserveWhitelistEntry)
60
+ ? { address: accounts.reserveWhitelistEntry.value, role: 0 }
61
+ : { address: programAddress, role: 0 },
58
62
  { address: accounts.klendProgram, role: 0 },
59
63
  { address: accounts.reserveCollateralTokenProgram, role: 0 },
60
64
  { address: accounts.tokenProgram, role: 0 },
@@ -0,0 +1,122 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import {
3
+ Address,
4
+ isSome,
5
+ AccountMeta,
6
+ AccountSignerMeta,
7
+ Instruction,
8
+ Option,
9
+ TransactionSigner,
10
+ } from "@solana/kit"
11
+ /* eslint-enable @typescript-eslint/no-unused-vars */
12
+ import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
13
+ import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars
14
+ import { borshAddress } from "../utils" // eslint-disable-line @typescript-eslint/no-unused-vars
15
+ import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
16
+ import { PROGRAM_ID } from "../programId"
17
+
18
+ export const DISCRIMINATOR = Buffer.from([51, 230, 133, 164, 1, 127, 131, 173])
19
+
20
+ export interface SellArgs {
21
+ sharesAmount: BN
22
+ }
23
+
24
+ export interface SellAccounts {
25
+ withdrawFromAvailable: {
26
+ user: TransactionSigner
27
+ vaultState: Address
28
+ globalConfig: Address
29
+ tokenVault: Address
30
+ baseVaultAuthority: Address
31
+ userTokenAta: Address
32
+ tokenMint: Address
33
+ userSharesAta: Address
34
+ sharesMint: Address
35
+ tokenProgram: Address
36
+ sharesTokenProgram: Address
37
+ klendProgram: Address
38
+ eventAuthority: Address
39
+ program: Address
40
+ }
41
+ withdrawFromReserveAccounts: {
42
+ vaultState: Address
43
+ reserve: Address
44
+ ctokenVault: Address
45
+ lendingMarket: Address
46
+ lendingMarketAuthority: Address
47
+ reserveLiquiditySupply: Address
48
+ reserveCollateralMint: Address
49
+ reserveCollateralTokenProgram: Address
50
+ instructionSysvarAccount: Address
51
+ }
52
+ eventAuthority: Address
53
+ program: Address
54
+ }
55
+
56
+ export const layout = borsh.struct<SellArgs>([borsh.u64("sharesAmount")])
57
+
58
+ export function sell(
59
+ args: SellArgs,
60
+ accounts: SellAccounts,
61
+ remainingAccounts: Array<AccountMeta | AccountSignerMeta> = [],
62
+ programAddress: Address = PROGRAM_ID
63
+ ) {
64
+ const keys: Array<AccountMeta | AccountSignerMeta> = [
65
+ {
66
+ address: accounts.withdrawFromAvailable.user.address,
67
+ role: 3,
68
+ signer: accounts.withdrawFromAvailable.user,
69
+ },
70
+ { address: accounts.withdrawFromAvailable.vaultState, role: 1 },
71
+ { address: accounts.withdrawFromAvailable.globalConfig, role: 0 },
72
+ { address: accounts.withdrawFromAvailable.tokenVault, role: 1 },
73
+ { address: accounts.withdrawFromAvailable.baseVaultAuthority, role: 0 },
74
+ { address: accounts.withdrawFromAvailable.userTokenAta, role: 1 },
75
+ { address: accounts.withdrawFromAvailable.tokenMint, role: 1 },
76
+ { address: accounts.withdrawFromAvailable.userSharesAta, role: 1 },
77
+ { address: accounts.withdrawFromAvailable.sharesMint, role: 1 },
78
+ { address: accounts.withdrawFromAvailable.tokenProgram, role: 0 },
79
+ { address: accounts.withdrawFromAvailable.sharesTokenProgram, role: 0 },
80
+ { address: accounts.withdrawFromAvailable.klendProgram, role: 0 },
81
+ { address: accounts.withdrawFromAvailable.eventAuthority, role: 0 },
82
+ { address: accounts.withdrawFromAvailable.program, role: 0 },
83
+ { address: accounts.withdrawFromReserveAccounts.vaultState, role: 1 },
84
+ { address: accounts.withdrawFromReserveAccounts.reserve, role: 1 },
85
+ { address: accounts.withdrawFromReserveAccounts.ctokenVault, role: 1 },
86
+ { address: accounts.withdrawFromReserveAccounts.lendingMarket, role: 0 },
87
+ {
88
+ address: accounts.withdrawFromReserveAccounts.lendingMarketAuthority,
89
+ role: 0,
90
+ },
91
+ {
92
+ address: accounts.withdrawFromReserveAccounts.reserveLiquiditySupply,
93
+ role: 1,
94
+ },
95
+ {
96
+ address: accounts.withdrawFromReserveAccounts.reserveCollateralMint,
97
+ role: 1,
98
+ },
99
+ {
100
+ address:
101
+ accounts.withdrawFromReserveAccounts.reserveCollateralTokenProgram,
102
+ role: 0,
103
+ },
104
+ {
105
+ address: accounts.withdrawFromReserveAccounts.instructionSysvarAccount,
106
+ role: 0,
107
+ },
108
+ { address: accounts.eventAuthority, role: 0 },
109
+ { address: accounts.program, role: 0 },
110
+ ...remainingAccounts,
111
+ ]
112
+ const buffer = Buffer.alloc(1000)
113
+ const len = layout.encode(
114
+ {
115
+ sharesAmount: args.sharesAmount,
116
+ },
117
+ buffer
118
+ )
119
+ const data = Buffer.concat([DISCRIMINATOR, buffer]).slice(0, 8 + len)
120
+ const ix: Instruction = { accounts: keys, programAddress, data }
121
+ return ix
122
+ }
@@ -0,0 +1,58 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import {
3
+ Address,
4
+ isSome,
5
+ AccountMeta,
6
+ AccountSignerMeta,
7
+ Instruction,
8
+ Option,
9
+ TransactionSigner,
10
+ } from "@solana/kit"
11
+ /* eslint-enable @typescript-eslint/no-unused-vars */
12
+ import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
13
+ import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars
14
+ import { borshAddress } from "../utils" // eslint-disable-line @typescript-eslint/no-unused-vars
15
+ import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
16
+ import { PROGRAM_ID } from "../programId"
17
+
18
+ export const DISCRIMINATOR = Buffer.from([164, 84, 130, 189, 111, 58, 250, 200])
19
+
20
+ export interface UpdateGlobalConfigArgs {
21
+ update: types.UpdateGlobalConfigModeKind
22
+ }
23
+
24
+ export interface UpdateGlobalConfigAccounts {
25
+ globalAdmin: TransactionSigner
26
+ globalConfig: Address
27
+ }
28
+
29
+ export const layout = borsh.struct([
30
+ types.UpdateGlobalConfigMode.layout("update"),
31
+ ])
32
+
33
+ export function updateGlobalConfig(
34
+ args: UpdateGlobalConfigArgs,
35
+ accounts: UpdateGlobalConfigAccounts,
36
+ remainingAccounts: Array<AccountMeta | AccountSignerMeta> = [],
37
+ programAddress: Address = PROGRAM_ID
38
+ ) {
39
+ const keys: Array<AccountMeta | AccountSignerMeta> = [
40
+ {
41
+ address: accounts.globalAdmin.address,
42
+ role: 2,
43
+ signer: accounts.globalAdmin,
44
+ },
45
+ { address: accounts.globalConfig, role: 1 },
46
+ ...remainingAccounts,
47
+ ]
48
+ const buffer = Buffer.alloc(1000)
49
+ const len = layout.encode(
50
+ {
51
+ update: args.update.toEncodable(),
52
+ },
53
+ buffer
54
+ )
55
+ const data = Buffer.concat([DISCRIMINATOR, buffer]).slice(0, 8 + len)
56
+ const ix: Instruction = { accounts: keys, programAddress, data }
57
+ return ix
58
+ }
@@ -0,0 +1,42 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import {
3
+ Address,
4
+ isSome,
5
+ AccountMeta,
6
+ AccountSignerMeta,
7
+ Instruction,
8
+ Option,
9
+ TransactionSigner,
10
+ } from "@solana/kit"
11
+ /* eslint-enable @typescript-eslint/no-unused-vars */
12
+ import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
13
+ import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars
14
+ import { borshAddress } from "../utils" // eslint-disable-line @typescript-eslint/no-unused-vars
15
+ import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
16
+ import { PROGRAM_ID } from "../programId"
17
+
18
+ export const DISCRIMINATOR = Buffer.from([184, 87, 23, 193, 156, 238, 175, 119])
19
+
20
+ export interface UpdateGlobalConfigAdminAccounts {
21
+ pendingAdmin: TransactionSigner
22
+ globalConfig: Address
23
+ }
24
+
25
+ export function updateGlobalConfigAdmin(
26
+ accounts: UpdateGlobalConfigAdminAccounts,
27
+ remainingAccounts: Array<AccountMeta | AccountSignerMeta> = [],
28
+ programAddress: Address = PROGRAM_ID
29
+ ) {
30
+ const keys: Array<AccountMeta | AccountSignerMeta> = [
31
+ {
32
+ address: accounts.pendingAdmin.address,
33
+ role: 2,
34
+ signer: accounts.pendingAdmin,
35
+ },
36
+ { address: accounts.globalConfig, role: 1 },
37
+ ...remainingAccounts,
38
+ ]
39
+ const data = DISCRIMINATOR
40
+ const ix: Instruction = { accounts: keys, programAddress, data }
41
+ return ix
42
+ }
@@ -29,6 +29,7 @@ export interface UpdateReserveAllocationAccounts {
29
29
  reserveCollateralMint: Address
30
30
  reserve: Address
31
31
  ctokenVault: Address
32
+ reserveWhitelistEntry: Option<Address>
32
33
  reserveCollateralTokenProgram: Address
33
34
  systemProgram: Address
34
35
  rent: Address
@@ -52,6 +53,9 @@ export function updateReserveAllocation(
52
53
  { address: accounts.reserveCollateralMint, role: 1 },
53
54
  { address: accounts.reserve, role: 0 },
54
55
  { address: accounts.ctokenVault, role: 1 },
56
+ isSome(accounts.reserveWhitelistEntry)
57
+ ? { address: accounts.reserveWhitelistEntry.value, role: 0 }
58
+ : { address: programAddress, role: 0 },
55
59
  { address: accounts.reserveCollateralTokenProgram, role: 0 },
56
60
  { address: accounts.systemProgram, role: 0 },
57
61
  { address: accounts.rent, role: 0 },
@@ -23,7 +23,8 @@ export interface UpdateVaultConfigArgs {
23
23
  }
24
24
 
25
25
  export interface UpdateVaultConfigAccounts {
26
- vaultAdminAuthority: TransactionSigner
26
+ signer: TransactionSigner
27
+ globalConfig: Address
27
28
  vaultState: Address
28
29
  klendProgram: Address
29
30
  }
@@ -40,11 +41,8 @@ export function updateVaultConfig(
40
41
  programAddress: Address = PROGRAM_ID
41
42
  ) {
42
43
  const keys: Array<AccountMeta | AccountSignerMeta> = [
43
- {
44
- address: accounts.vaultAdminAuthority.address,
45
- role: 2,
46
- signer: accounts.vaultAdminAuthority,
47
- },
44
+ { address: accounts.signer.address, role: 2, signer: accounts.signer },
45
+ { address: accounts.globalConfig, role: 0 },
48
46
  { address: accounts.vaultState, role: 1 },
49
47
  { address: accounts.klendProgram, role: 0 },
50
48
  ...remainingAccounts,
@@ -25,6 +25,7 @@ export interface WithdrawAccounts {
25
25
  withdrawFromAvailable: {
26
26
  user: TransactionSigner
27
27
  vaultState: Address
28
+ globalConfig: Address
28
29
  tokenVault: Address
29
30
  baseVaultAuthority: Address
30
31
  userTokenAta: Address
@@ -67,6 +68,7 @@ export function withdraw(
67
68
  signer: accounts.withdrawFromAvailable.user,
68
69
  },
69
70
  { address: accounts.withdrawFromAvailable.vaultState, role: 1 },
71
+ { address: accounts.withdrawFromAvailable.globalConfig, role: 0 },
70
72
  { address: accounts.withdrawFromAvailable.tokenVault, role: 1 },
71
73
  { address: accounts.withdrawFromAvailable.baseVaultAuthority, role: 0 },
72
74
  { address: accounts.withdrawFromAvailable.userTokenAta, role: 1 },
@@ -24,6 +24,7 @@ export interface WithdrawFromAvailableArgs {
24
24
  export interface WithdrawFromAvailableAccounts {
25
25
  user: TransactionSigner
26
26
  vaultState: Address
27
+ globalConfig: Address
27
28
  tokenVault: Address
28
29
  baseVaultAuthority: Address
29
30
  userTokenAta: Address
@@ -50,6 +51,7 @@ export function withdrawFromAvailable(
50
51
  const keys: Array<AccountMeta | AccountSignerMeta> = [
51
52
  { address: accounts.user.address, role: 3, signer: accounts.user },
52
53
  { address: accounts.vaultState, role: 1 },
54
+ { address: accounts.globalConfig, role: 0 },
53
55
  { address: accounts.tokenVault, role: 1 },
54
56
  { address: accounts.baseVaultAuthority, role: 0 },
55
57
  { address: accounts.userTokenAta, role: 1 },
@@ -11,12 +11,15 @@ export interface ReserveConfigFields {
11
11
  assetTier: number
12
12
  /** Flat rate that goes to the host */
13
13
  hostFixedInterestRateBps: number
14
+ /** Starting bonus for deleveraging-related liquidations, in bps. */
15
+ minDeleveragingBonusBps: number
14
16
  /**
15
- * [DEPRECATED] Space that used to hold 2 fields:
16
- * - Boost for side (debt or collateral)
17
- * - Reward points multiplier per obligation type
18
- * Can be re-used after making sure all underlying production account data is zeroed.
17
+ * Boolean flag to block minting/redeeming of ctokens
18
+ * Blocks usage of ctokens (minting or withdrawing from obligation)
19
+ * Effectively blocks deposit_reserve_liquidity and withdraw_obligation_collateral
19
20
  */
21
+ blockCtokenUsage: number
22
+ /** Past reserved space - feel free to reuse. */
20
23
  reserved1: Array<number>
21
24
  /** Cut of the order execution bonus that the protocol receives, as a percentage */
22
25
  protocolOrderExecutionFeePct: number
@@ -102,12 +105,6 @@ export interface ReserveConfigFields {
102
105
  * Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.
103
106
  */
104
107
  deleveragingBonusIncreaseBpsPerDay: BN
105
- /**
106
- * The timestamp at which all [Obligation::borrows] using this reserve become liquidatable
107
- * (on the same terms as reserve-wide deleveraging).
108
- * Inactive when zeroed (i.e. debt never matures).
109
- */
110
- debtMaturityTimestamp: BN
111
108
  }
112
109
 
113
110
  export interface ReserveConfigJSON {
@@ -117,12 +114,15 @@ export interface ReserveConfigJSON {
117
114
  assetTier: number
118
115
  /** Flat rate that goes to the host */
119
116
  hostFixedInterestRateBps: number
117
+ /** Starting bonus for deleveraging-related liquidations, in bps. */
118
+ minDeleveragingBonusBps: number
120
119
  /**
121
- * [DEPRECATED] Space that used to hold 2 fields:
122
- * - Boost for side (debt or collateral)
123
- * - Reward points multiplier per obligation type
124
- * Can be re-used after making sure all underlying production account data is zeroed.
120
+ * Boolean flag to block minting/redeeming of ctokens
121
+ * Blocks usage of ctokens (minting or withdrawing from obligation)
122
+ * Effectively blocks deposit_reserve_liquidity and withdraw_obligation_collateral
125
123
  */
124
+ blockCtokenUsage: number
125
+ /** Past reserved space - feel free to reuse. */
126
126
  reserved1: Array<number>
127
127
  /** Cut of the order execution bonus that the protocol receives, as a percentage */
128
128
  protocolOrderExecutionFeePct: number
@@ -208,12 +208,6 @@ export interface ReserveConfigJSON {
208
208
  * Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.
209
209
  */
210
210
  deleveragingBonusIncreaseBpsPerDay: string
211
- /**
212
- * The timestamp at which all [Obligation::borrows] using this reserve become liquidatable
213
- * (on the same terms as reserve-wide deleveraging).
214
- * Inactive when zeroed (i.e. debt never matures).
215
- */
216
- debtMaturityTimestamp: string
217
211
  }
218
212
 
219
213
  /** Reserve configuration values */
@@ -224,12 +218,15 @@ export class ReserveConfig {
224
218
  readonly assetTier: number
225
219
  /** Flat rate that goes to the host */
226
220
  readonly hostFixedInterestRateBps: number
221
+ /** Starting bonus for deleveraging-related liquidations, in bps. */
222
+ readonly minDeleveragingBonusBps: number
227
223
  /**
228
- * [DEPRECATED] Space that used to hold 2 fields:
229
- * - Boost for side (debt or collateral)
230
- * - Reward points multiplier per obligation type
231
- * Can be re-used after making sure all underlying production account data is zeroed.
224
+ * Boolean flag to block minting/redeeming of ctokens
225
+ * Blocks usage of ctokens (minting or withdrawing from obligation)
226
+ * Effectively blocks deposit_reserve_liquidity and withdraw_obligation_collateral
232
227
  */
228
+ readonly blockCtokenUsage: number
229
+ /** Past reserved space - feel free to reuse. */
233
230
  readonly reserved1: Array<number>
234
231
  /** Cut of the order execution bonus that the protocol receives, as a percentage */
235
232
  readonly protocolOrderExecutionFeePct: number
@@ -315,17 +312,13 @@ export class ReserveConfig {
315
312
  * Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.
316
313
  */
317
314
  readonly deleveragingBonusIncreaseBpsPerDay: BN
318
- /**
319
- * The timestamp at which all [Obligation::borrows] using this reserve become liquidatable
320
- * (on the same terms as reserve-wide deleveraging).
321
- * Inactive when zeroed (i.e. debt never matures).
322
- */
323
- readonly debtMaturityTimestamp: BN
324
315
 
325
316
  constructor(fields: ReserveConfigFields) {
326
317
  this.status = fields.status
327
318
  this.assetTier = fields.assetTier
328
319
  this.hostFixedInterestRateBps = fields.hostFixedInterestRateBps
320
+ this.minDeleveragingBonusBps = fields.minDeleveragingBonusBps
321
+ this.blockCtokenUsage = fields.blockCtokenUsage
329
322
  this.reserved1 = fields.reserved1
330
323
  this.protocolOrderExecutionFeePct = fields.protocolOrderExecutionFeePct
331
324
  this.protocolTakeRatePct = fields.protocolTakeRatePct
@@ -365,7 +358,6 @@ export class ReserveConfig {
365
358
  fields.borrowLimitAgainstThisCollateralInElevationGroup
366
359
  this.deleveragingBonusIncreaseBpsPerDay =
367
360
  fields.deleveragingBonusIncreaseBpsPerDay
368
- this.debtMaturityTimestamp = fields.debtMaturityTimestamp
369
361
  }
370
362
 
371
363
  static layout(property?: string) {
@@ -374,7 +366,9 @@ export class ReserveConfig {
374
366
  borsh.u8("status"),
375
367
  borsh.u8("assetTier"),
376
368
  borsh.u16("hostFixedInterestRateBps"),
377
- borsh.array(borsh.u8(), 9, "reserved1"),
369
+ borsh.u16("minDeleveragingBonusBps"),
370
+ borsh.u8("blockCtokenUsage"),
371
+ borsh.array(borsh.u8(), 6, "reserved1"),
378
372
  borsh.u8("protocolOrderExecutionFeePct"),
379
373
  borsh.u8("protocolTakeRatePct"),
380
374
  borsh.u8("protocolLiquidationFeePct"),
@@ -405,7 +399,6 @@ export class ReserveConfig {
405
399
  "borrowLimitAgainstThisCollateralInElevationGroup"
406
400
  ),
407
401
  borsh.u64("deleveragingBonusIncreaseBpsPerDay"),
408
- borsh.u64("debtMaturityTimestamp"),
409
402
  ],
410
403
  property
411
404
  )
@@ -417,6 +410,8 @@ export class ReserveConfig {
417
410
  status: obj.status,
418
411
  assetTier: obj.assetTier,
419
412
  hostFixedInterestRateBps: obj.hostFixedInterestRateBps,
413
+ minDeleveragingBonusBps: obj.minDeleveragingBonusBps,
414
+ blockCtokenUsage: obj.blockCtokenUsage,
420
415
  reserved1: obj.reserved1,
421
416
  protocolOrderExecutionFeePct: obj.protocolOrderExecutionFeePct,
422
417
  protocolTakeRatePct: obj.protocolTakeRatePct,
@@ -452,7 +447,6 @@ export class ReserveConfig {
452
447
  obj.borrowLimitAgainstThisCollateralInElevationGroup,
453
448
  deleveragingBonusIncreaseBpsPerDay:
454
449
  obj.deleveragingBonusIncreaseBpsPerDay,
455
- debtMaturityTimestamp: obj.debtMaturityTimestamp,
456
450
  })
457
451
  }
458
452
 
@@ -461,6 +455,8 @@ export class ReserveConfig {
461
455
  status: fields.status,
462
456
  assetTier: fields.assetTier,
463
457
  hostFixedInterestRateBps: fields.hostFixedInterestRateBps,
458
+ minDeleveragingBonusBps: fields.minDeleveragingBonusBps,
459
+ blockCtokenUsage: fields.blockCtokenUsage,
464
460
  reserved1: fields.reserved1,
465
461
  protocolOrderExecutionFeePct: fields.protocolOrderExecutionFeePct,
466
462
  protocolTakeRatePct: fields.protocolTakeRatePct,
@@ -498,7 +494,6 @@ export class ReserveConfig {
498
494
  fields.borrowLimitAgainstThisCollateralInElevationGroup,
499
495
  deleveragingBonusIncreaseBpsPerDay:
500
496
  fields.deleveragingBonusIncreaseBpsPerDay,
501
- debtMaturityTimestamp: fields.debtMaturityTimestamp,
502
497
  }
503
498
  }
504
499
 
@@ -507,6 +502,8 @@ export class ReserveConfig {
507
502
  status: this.status,
508
503
  assetTier: this.assetTier,
509
504
  hostFixedInterestRateBps: this.hostFixedInterestRateBps,
505
+ minDeleveragingBonusBps: this.minDeleveragingBonusBps,
506
+ blockCtokenUsage: this.blockCtokenUsage,
510
507
  reserved1: this.reserved1,
511
508
  protocolOrderExecutionFeePct: this.protocolOrderExecutionFeePct,
512
509
  protocolTakeRatePct: this.protocolTakeRatePct,
@@ -542,7 +539,6 @@ export class ReserveConfig {
542
539
  ),
543
540
  deleveragingBonusIncreaseBpsPerDay:
544
541
  this.deleveragingBonusIncreaseBpsPerDay.toString(),
545
- debtMaturityTimestamp: this.debtMaturityTimestamp.toString(),
546
542
  }
547
543
  }
548
544
 
@@ -551,6 +547,8 @@ export class ReserveConfig {
551
547
  status: obj.status,
552
548
  assetTier: obj.assetTier,
553
549
  hostFixedInterestRateBps: obj.hostFixedInterestRateBps,
550
+ minDeleveragingBonusBps: obj.minDeleveragingBonusBps,
551
+ blockCtokenUsage: obj.blockCtokenUsage,
554
552
  reserved1: obj.reserved1,
555
553
  protocolOrderExecutionFeePct: obj.protocolOrderExecutionFeePct,
556
554
  protocolTakeRatePct: obj.protocolTakeRatePct,
@@ -592,7 +590,6 @@ export class ReserveConfig {
592
590
  deleveragingBonusIncreaseBpsPerDay: new BN(
593
591
  obj.deleveragingBonusIncreaseBpsPerDay
594
592
  ),
595
- debtMaturityTimestamp: new BN(obj.debtMaturityTimestamp),
596
593
  })
597
594
  }
598
595