@kamino-finance/klend-sdk 7.3.13 → 7.3.14

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 (122) hide show
  1. package/dist/@codegen/klend/accounts/LendingMarket.d.ts +51 -3
  2. package/dist/@codegen/klend/accounts/LendingMarket.d.ts.map +1 -1
  3. package/dist/@codegen/klend/accounts/LendingMarket.js +39 -6
  4. package/dist/@codegen/klend/accounts/LendingMarket.js.map +1 -1
  5. package/dist/@codegen/klend/accounts/Obligation.d.ts +24 -15
  6. package/dist/@codegen/klend/accounts/Obligation.d.ts.map +1 -1
  7. package/dist/@codegen/klend/accounts/Obligation.js +24 -21
  8. package/dist/@codegen/klend/accounts/Obligation.js.map +1 -1
  9. package/dist/@codegen/klend/accounts/Reserve.js +1 -1
  10. package/dist/@codegen/klend/accounts/UserState.d.ts +0 -75
  11. package/dist/@codegen/klend/accounts/UserState.d.ts.map +1 -1
  12. package/dist/@codegen/klend/accounts/UserState.js +0 -25
  13. package/dist/@codegen/klend/accounts/UserState.js.map +1 -1
  14. package/dist/@codegen/klend/errors/custom.d.ts +89 -1
  15. package/dist/@codegen/klend/errors/custom.d.ts.map +1 -1
  16. package/dist/@codegen/klend/errors/custom.js +155 -1
  17. package/dist/@codegen/klend/errors/custom.js.map +1 -1
  18. package/dist/@codegen/klend/instructions/fillBorrowOrder.d.ts +36 -0
  19. package/dist/@codegen/klend/instructions/fillBorrowOrder.d.ts.map +1 -0
  20. package/dist/@codegen/klend/instructions/fillBorrowOrder.js +49 -0
  21. package/dist/@codegen/klend/instructions/fillBorrowOrder.js.map +1 -0
  22. package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts +0 -1
  23. package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts.map +1 -1
  24. package/dist/@codegen/klend/instructions/idlMissingTypes.js +0 -2
  25. package/dist/@codegen/klend/instructions/idlMissingTypes.js.map +1 -1
  26. package/dist/@codegen/klend/instructions/index.d.ts +4 -0
  27. package/dist/@codegen/klend/instructions/index.d.ts.map +1 -1
  28. package/dist/@codegen/klend/instructions/index.js +6 -1
  29. package/dist/@codegen/klend/instructions/index.js.map +1 -1
  30. package/dist/@codegen/klend/instructions/setBorrowOrder.d.ts +33 -0
  31. package/dist/@codegen/klend/instructions/setBorrowOrder.d.ts.map +1 -0
  32. package/dist/@codegen/klend/instructions/setBorrowOrder.js +66 -0
  33. package/dist/@codegen/klend/instructions/setBorrowOrder.js.map +1 -0
  34. package/dist/@codegen/klend/types/BorrowOrder.d.ts +192 -0
  35. package/dist/@codegen/klend/types/BorrowOrder.d.ts.map +1 -0
  36. package/dist/@codegen/klend/types/BorrowOrder.js +194 -0
  37. package/dist/@codegen/klend/types/BorrowOrder.js.map +1 -0
  38. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.d.ts +39 -0
  39. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.d.ts.map +1 -0
  40. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.js +100 -0
  41. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.js.map +1 -0
  42. package/dist/@codegen/klend/types/ObligationLiquidity.d.ts +35 -5
  43. package/dist/@codegen/klend/types/ObligationLiquidity.d.ts.map +1 -1
  44. package/dist/@codegen/klend/types/ObligationLiquidity.js +17 -7
  45. package/dist/@codegen/klend/types/ObligationLiquidity.js.map +1 -1
  46. package/dist/@codegen/klend/types/ObligationOrder.d.ts +4 -4
  47. package/dist/@codegen/klend/types/ObligationOrder.js +2 -2
  48. package/dist/@codegen/klend/types/ReserveConfig.d.ts +60 -5
  49. package/dist/@codegen/klend/types/ReserveConfig.d.ts.map +1 -1
  50. package/dist/@codegen/klend/types/ReserveConfig.js +36 -7
  51. package/dist/@codegen/klend/types/ReserveConfig.js.map +1 -1
  52. package/dist/@codegen/klend/types/UpdateConfigMode.d.ts +33 -7
  53. package/dist/@codegen/klend/types/UpdateConfigMode.d.ts.map +1 -1
  54. package/dist/@codegen/klend/types/UpdateConfigMode.js +61 -13
  55. package/dist/@codegen/klend/types/UpdateConfigMode.js.map +1 -1
  56. package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts +52 -0
  57. package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts.map +1 -1
  58. package/dist/@codegen/klend/types/UpdateLendingMarketMode.js +97 -1
  59. package/dist/@codegen/klend/types/UpdateLendingMarketMode.js.map +1 -1
  60. package/dist/@codegen/klend/types/index.d.ts +8 -8
  61. package/dist/@codegen/klend/types/index.d.ts.map +1 -1
  62. package/dist/@codegen/klend/types/index.js +5 -3
  63. package/dist/@codegen/klend/types/index.js.map +1 -1
  64. package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts +8 -5
  65. package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts.map +1 -1
  66. package/dist/@codegen/klend/zero_padding/ObligationZP.js +17 -14
  67. package/dist/@codegen/klend/zero_padding/ObligationZP.js.map +1 -1
  68. package/dist/classes/configItems.d.ts +10 -0
  69. package/dist/classes/configItems.d.ts.map +1 -1
  70. package/dist/classes/configItems.js +72 -1
  71. package/dist/classes/configItems.js.map +1 -1
  72. package/dist/classes/index.d.ts +1 -0
  73. package/dist/classes/index.d.ts.map +1 -1
  74. package/dist/classes/index.js +1 -0
  75. package/dist/classes/index.js.map +1 -1
  76. package/dist/classes/manager.d.ts.map +1 -1
  77. package/dist/classes/manager.js +4 -0
  78. package/dist/classes/manager.js.map +1 -1
  79. package/dist/classes/obligation.js +1 -1
  80. package/dist/classes/obligation.js.map +1 -1
  81. package/dist/classes/reserve.d.ts +2 -2
  82. package/dist/classes/reserve.d.ts.map +1 -1
  83. package/dist/classes/reserve.js +42 -22
  84. package/dist/classes/reserve.js.map +1 -1
  85. package/dist/idl/klend.json +581 -54
  86. package/dist/manager/client_kamino_manager.js +12 -6
  87. package/dist/manager/client_kamino_manager.js.map +1 -1
  88. package/dist/utils/managerTypes.d.ts.map +1 -1
  89. package/dist/utils/managerTypes.js +3 -1
  90. package/dist/utils/managerTypes.js.map +1 -1
  91. package/package.json +1 -1
  92. package/src/@codegen/klend/accounts/LendingMarket.ts +79 -8
  93. package/src/@codegen/klend/accounts/Obligation.ts +42 -31
  94. package/src/@codegen/klend/accounts/Reserve.ts +1 -1
  95. package/src/@codegen/klend/accounts/UserState.ts +0 -75
  96. package/src/@codegen/klend/errors/custom.ts +172 -0
  97. package/src/@codegen/klend/instructions/fillBorrowOrder.ts +96 -0
  98. package/src/@codegen/klend/instructions/idlMissingTypes.ts +0 -3
  99. package/src/@codegen/klend/instructions/index.ts +7 -0
  100. package/src/@codegen/klend/instructions/setBorrowOrder.ts +81 -0
  101. package/src/@codegen/klend/types/BorrowOrder.ts +267 -0
  102. package/src/@codegen/klend/types/BorrowOrderConfigArgs.ts +87 -0
  103. package/src/@codegen/klend/types/ObligationLiquidity.ts +39 -9
  104. package/src/@codegen/klend/types/ObligationOrder.ts +4 -4
  105. package/src/@codegen/klend/types/ReserveConfig.ts +72 -9
  106. package/src/@codegen/klend/types/UpdateConfigMode.ts +73 -13
  107. package/src/@codegen/klend/types/UpdateLendingMarketMode.ts +120 -0
  108. package/src/@codegen/klend/types/index.ts +21 -14
  109. package/src/@codegen/klend/zero_padding/ObligationZP.ts +17 -14
  110. package/src/classes/configItems.ts +83 -0
  111. package/src/classes/index.ts +1 -0
  112. package/src/classes/manager.ts +5 -0
  113. package/src/classes/obligation.ts +1 -1
  114. package/src/classes/reserve.ts +52 -34
  115. package/src/idl/klend.json +581 -54
  116. package/src/manager/client_kamino_manager.ts +12 -6
  117. package/src/utils/managerTypes.ts +3 -1
  118. package/dist/@codegen/klend/types/AssetTier.d.ts +0 -45
  119. package/dist/@codegen/klend/types/AssetTier.d.ts.map +0 -1
  120. package/dist/@codegen/klend/types/AssetTier.js +0 -132
  121. package/dist/@codegen/klend/types/AssetTier.js.map +0 -1
  122. package/src/@codegen/klend/types/AssetTier.ts +0 -119
@@ -101,7 +101,23 @@ export interface LendingMarketFields {
101
101
  * liquidation-driving flags (see e.g. [Self::autodeleverage_enabled]).
102
102
  */
103
103
  priceTriggeredLiquidationDisabled: number
104
- padding2: Array<number>
104
+ /**
105
+ * Whether the debts that reached their reserve's [ReserveConfig::debt_maturity_timestamp] can
106
+ * be liquidated.
107
+ */
108
+ matureReserveDebtLiquidationEnabled: number
109
+ /**
110
+ * Whether the [Obligation::borrows] that reached their [ReserveConfig::debt_term_seconds] can
111
+ * be liquidated.
112
+ */
113
+ obligationBorrowDebtTermLiquidationEnabled: number
114
+ /**
115
+ * Whether new borrow orders can be created.
116
+ * Note: updating or cancelling existing orders is *not* affected by this flag.
117
+ */
118
+ borrowOrderCreationEnabled: number
119
+ /** Whether the existing borrow orders can be filled. */
120
+ borrowOrderExecutionEnabled: number
105
121
  /** Authority that can propose creating of new reserves but cannot enable them. */
106
122
  proposerAuthority: Address
107
123
  padding1: Array<BN>
@@ -193,7 +209,23 @@ export interface LendingMarketJSON {
193
209
  * liquidation-driving flags (see e.g. [Self::autodeleverage_enabled]).
194
210
  */
195
211
  priceTriggeredLiquidationDisabled: number
196
- padding2: Array<number>
212
+ /**
213
+ * Whether the debts that reached their reserve's [ReserveConfig::debt_maturity_timestamp] can
214
+ * be liquidated.
215
+ */
216
+ matureReserveDebtLiquidationEnabled: number
217
+ /**
218
+ * Whether the [Obligation::borrows] that reached their [ReserveConfig::debt_term_seconds] can
219
+ * be liquidated.
220
+ */
221
+ obligationBorrowDebtTermLiquidationEnabled: number
222
+ /**
223
+ * Whether new borrow orders can be created.
224
+ * Note: updating or cancelling existing orders is *not* affected by this flag.
225
+ */
226
+ borrowOrderCreationEnabled: number
227
+ /** Whether the existing borrow orders can be filled. */
228
+ borrowOrderExecutionEnabled: number
197
229
  /** Authority that can propose creating of new reserves but cannot enable them. */
198
230
  proposerAuthority: string
199
231
  padding1: Array<string>
@@ -285,7 +317,23 @@ export class LendingMarket {
285
317
  * liquidation-driving flags (see e.g. [Self::autodeleverage_enabled]).
286
318
  */
287
319
  readonly priceTriggeredLiquidationDisabled: number
288
- readonly padding2: Array<number>
320
+ /**
321
+ * Whether the debts that reached their reserve's [ReserveConfig::debt_maturity_timestamp] can
322
+ * be liquidated.
323
+ */
324
+ readonly matureReserveDebtLiquidationEnabled: number
325
+ /**
326
+ * Whether the [Obligation::borrows] that reached their [ReserveConfig::debt_term_seconds] can
327
+ * be liquidated.
328
+ */
329
+ readonly obligationBorrowDebtTermLiquidationEnabled: number
330
+ /**
331
+ * Whether new borrow orders can be created.
332
+ * Note: updating or cancelling existing orders is *not* affected by this flag.
333
+ */
334
+ readonly borrowOrderCreationEnabled: number
335
+ /** Whether the existing borrow orders can be filled. */
336
+ readonly borrowOrderExecutionEnabled: number
289
337
  /** Authority that can propose creating of new reserves but cannot enable them. */
290
338
  readonly proposerAuthority: Address
291
339
  readonly padding1: Array<BN>
@@ -325,7 +373,10 @@ export class LendingMarket {
325
373
  borsh.u8("immutable"),
326
374
  borsh.u8("obligationOrderCreationEnabled"),
327
375
  borsh.u8("priceTriggeredLiquidationDisabled"),
328
- borsh.array(borsh.u8(), 4, "padding2"),
376
+ borsh.u8("matureReserveDebtLiquidationEnabled"),
377
+ borsh.u8("obligationBorrowDebtTermLiquidationEnabled"),
378
+ borsh.u8("borrowOrderCreationEnabled"),
379
+ borsh.u8("borrowOrderExecutionEnabled"),
329
380
  borshAddress("proposerAuthority"),
330
381
  borsh.array(borsh.u64(), 165, "padding1"),
331
382
  ])
@@ -371,7 +422,12 @@ export class LendingMarket {
371
422
  this.obligationOrderCreationEnabled = fields.obligationOrderCreationEnabled
372
423
  this.priceTriggeredLiquidationDisabled =
373
424
  fields.priceTriggeredLiquidationDisabled
374
- this.padding2 = fields.padding2
425
+ this.matureReserveDebtLiquidationEnabled =
426
+ fields.matureReserveDebtLiquidationEnabled
427
+ this.obligationBorrowDebtTermLiquidationEnabled =
428
+ fields.obligationBorrowDebtTermLiquidationEnabled
429
+ this.borrowOrderCreationEnabled = fields.borrowOrderCreationEnabled
430
+ this.borrowOrderExecutionEnabled = fields.borrowOrderExecutionEnabled
375
431
  this.proposerAuthority = fields.proposerAuthority
376
432
  this.padding1 = fields.padding1
377
433
  }
@@ -460,7 +516,12 @@ export class LendingMarket {
460
516
  immutable: dec.immutable,
461
517
  obligationOrderCreationEnabled: dec.obligationOrderCreationEnabled,
462
518
  priceTriggeredLiquidationDisabled: dec.priceTriggeredLiquidationDisabled,
463
- padding2: dec.padding2,
519
+ matureReserveDebtLiquidationEnabled:
520
+ dec.matureReserveDebtLiquidationEnabled,
521
+ obligationBorrowDebtTermLiquidationEnabled:
522
+ dec.obligationBorrowDebtTermLiquidationEnabled,
523
+ borrowOrderCreationEnabled: dec.borrowOrderCreationEnabled,
524
+ borrowOrderExecutionEnabled: dec.borrowOrderExecutionEnabled,
464
525
  proposerAuthority: dec.proposerAuthority,
465
526
  padding1: dec.padding1,
466
527
  })
@@ -505,7 +566,12 @@ export class LendingMarket {
505
566
  immutable: this.immutable,
506
567
  obligationOrderCreationEnabled: this.obligationOrderCreationEnabled,
507
568
  priceTriggeredLiquidationDisabled: this.priceTriggeredLiquidationDisabled,
508
- padding2: this.padding2,
569
+ matureReserveDebtLiquidationEnabled:
570
+ this.matureReserveDebtLiquidationEnabled,
571
+ obligationBorrowDebtTermLiquidationEnabled:
572
+ this.obligationBorrowDebtTermLiquidationEnabled,
573
+ borrowOrderCreationEnabled: this.borrowOrderCreationEnabled,
574
+ borrowOrderExecutionEnabled: this.borrowOrderExecutionEnabled,
509
575
  proposerAuthority: this.proposerAuthority,
510
576
  padding1: this.padding1.map((item) => item.toString()),
511
577
  }
@@ -557,7 +623,12 @@ export class LendingMarket {
557
623
  immutable: obj.immutable,
558
624
  obligationOrderCreationEnabled: obj.obligationOrderCreationEnabled,
559
625
  priceTriggeredLiquidationDisabled: obj.priceTriggeredLiquidationDisabled,
560
- padding2: obj.padding2,
626
+ matureReserveDebtLiquidationEnabled:
627
+ obj.matureReserveDebtLiquidationEnabled,
628
+ obligationBorrowDebtTermLiquidationEnabled:
629
+ obj.obligationBorrowDebtTermLiquidationEnabled,
630
+ borrowOrderCreationEnabled: obj.borrowOrderCreationEnabled,
631
+ borrowOrderExecutionEnabled: obj.borrowOrderExecutionEnabled,
561
632
  proposerAuthority: address(obj.proposerAuthority),
562
633
  padding1: obj.padding1.map((item) => new BN(item)),
563
634
  })
@@ -41,9 +41,7 @@ export interface ObligationFields {
41
41
  /** The dangerous borrow value at the weighted average liquidation threshold (scaled fraction) */
42
42
  unhealthyBorrowValueSf: BN
43
43
  /** The asset tier of the deposits */
44
- depositsAssetTiers: Array<number>
45
- /** The asset tier of the borrows */
46
- borrowsAssetTiers: Array<number>
44
+ paddingDeprecatedAssetTiers: Array<number>
47
45
  /** The elevation group id the obligation opted into. */
48
46
  elevationGroup: number
49
47
  /** The number of obsolete reserves the obligation has a deposit in */
@@ -71,10 +69,15 @@ export interface ObligationFields {
71
69
  */
72
70
  autodeleverageMarginCallStartedTimestamp: BN
73
71
  /**
74
- * Owner-defined, liquidator-executed orders applicable to this obligation.
72
+ * Owner-defined, permissionlessly-executed repay orders.
75
73
  * Typical use-cases would be a stop-loss and a take-profit (possibly co-existing).
76
74
  */
77
- orders: Array<types.ObligationOrderFields>
75
+ obligationOrders: Array<types.ObligationOrderFields>
76
+ /**
77
+ * Owner-defined, permissionlessly-executed borrow order applicable to this obligation.
78
+ * Non-zeroed only on a newly-initialized fixed-rate, fixed-term obligation.
79
+ */
80
+ borrowOrder: types.BorrowOrderFields
78
81
  padding3: Array<BN>
79
82
  }
80
83
 
@@ -104,9 +107,7 @@ export interface ObligationJSON {
104
107
  /** The dangerous borrow value at the weighted average liquidation threshold (scaled fraction) */
105
108
  unhealthyBorrowValueSf: string
106
109
  /** The asset tier of the deposits */
107
- depositsAssetTiers: Array<number>
108
- /** The asset tier of the borrows */
109
- borrowsAssetTiers: Array<number>
110
+ paddingDeprecatedAssetTiers: Array<number>
110
111
  /** The elevation group id the obligation opted into. */
111
112
  elevationGroup: number
112
113
  /** The number of obsolete reserves the obligation has a deposit in */
@@ -134,10 +135,15 @@ export interface ObligationJSON {
134
135
  */
135
136
  autodeleverageMarginCallStartedTimestamp: string
136
137
  /**
137
- * Owner-defined, liquidator-executed orders applicable to this obligation.
138
+ * Owner-defined, permissionlessly-executed repay orders.
138
139
  * Typical use-cases would be a stop-loss and a take-profit (possibly co-existing).
139
140
  */
140
- orders: Array<types.ObligationOrderJSON>
141
+ obligationOrders: Array<types.ObligationOrderJSON>
142
+ /**
143
+ * Owner-defined, permissionlessly-executed borrow order applicable to this obligation.
144
+ * Non-zeroed only on a newly-initialized fixed-rate, fixed-term obligation.
145
+ */
146
+ borrowOrder: types.BorrowOrderJSON
141
147
  padding3: Array<string>
142
148
  }
143
149
 
@@ -168,9 +174,7 @@ export class Obligation {
168
174
  /** The dangerous borrow value at the weighted average liquidation threshold (scaled fraction) */
169
175
  readonly unhealthyBorrowValueSf: BN
170
176
  /** The asset tier of the deposits */
171
- readonly depositsAssetTiers: Array<number>
172
- /** The asset tier of the borrows */
173
- readonly borrowsAssetTiers: Array<number>
177
+ readonly paddingDeprecatedAssetTiers: Array<number>
174
178
  /** The elevation group id the obligation opted into. */
175
179
  readonly elevationGroup: number
176
180
  /** The number of obsolete reserves the obligation has a deposit in */
@@ -198,10 +202,15 @@ export class Obligation {
198
202
  */
199
203
  readonly autodeleverageMarginCallStartedTimestamp: BN
200
204
  /**
201
- * Owner-defined, liquidator-executed orders applicable to this obligation.
205
+ * Owner-defined, permissionlessly-executed repay orders.
202
206
  * Typical use-cases would be a stop-loss and a take-profit (possibly co-existing).
203
207
  */
204
- readonly orders: Array<types.ObligationOrder>
208
+ readonly obligationOrders: Array<types.ObligationOrder>
209
+ /**
210
+ * Owner-defined, permissionlessly-executed borrow order applicable to this obligation.
211
+ * Non-zeroed only on a newly-initialized fixed-rate, fixed-term obligation.
212
+ */
213
+ readonly borrowOrder: types.BorrowOrder
205
214
  readonly padding3: Array<BN>
206
215
 
207
216
  static readonly discriminator = Buffer.from([
@@ -221,8 +230,7 @@ export class Obligation {
221
230
  borsh.u128("borrowedAssetsMarketValueSf"),
222
231
  borsh.u128("allowedBorrowValueSf"),
223
232
  borsh.u128("unhealthyBorrowValueSf"),
224
- borsh.array(borsh.u8(), 8, "depositsAssetTiers"),
225
- borsh.array(borsh.u8(), 5, "borrowsAssetTiers"),
233
+ borsh.array(borsh.u8(), 13, "paddingDeprecatedAssetTiers"),
226
234
  borsh.u8("elevationGroup"),
227
235
  borsh.u8("numOfObsoleteDepositReserves"),
228
236
  borsh.u8("hasDebt"),
@@ -234,8 +242,9 @@ export class Obligation {
234
242
  borsh.array(borsh.u8(), 4, "reserved"),
235
243
  borsh.u64("highestBorrowFactorPct"),
236
244
  borsh.u64("autodeleverageMarginCallStartedTimestamp"),
237
- borsh.array(types.ObligationOrder.layout(), 2, "orders"),
238
- borsh.array(borsh.u64(), 93, "padding3"),
245
+ borsh.array(types.ObligationOrder.layout(), 2, "obligationOrders"),
246
+ types.BorrowOrder.layout("borrowOrder"),
247
+ borsh.array(borsh.u64(), 73, "padding3"),
239
248
  ])
240
249
 
241
250
  constructor(fields: ObligationFields) {
@@ -257,8 +266,7 @@ export class Obligation {
257
266
  this.borrowedAssetsMarketValueSf = fields.borrowedAssetsMarketValueSf
258
267
  this.allowedBorrowValueSf = fields.allowedBorrowValueSf
259
268
  this.unhealthyBorrowValueSf = fields.unhealthyBorrowValueSf
260
- this.depositsAssetTiers = fields.depositsAssetTiers
261
- this.borrowsAssetTiers = fields.borrowsAssetTiers
269
+ this.paddingDeprecatedAssetTiers = fields.paddingDeprecatedAssetTiers
262
270
  this.elevationGroup = fields.elevationGroup
263
271
  this.numOfObsoleteDepositReserves = fields.numOfObsoleteDepositReserves
264
272
  this.hasDebt = fields.hasDebt
@@ -271,9 +279,10 @@ export class Obligation {
271
279
  this.highestBorrowFactorPct = fields.highestBorrowFactorPct
272
280
  this.autodeleverageMarginCallStartedTimestamp =
273
281
  fields.autodeleverageMarginCallStartedTimestamp
274
- this.orders = fields.orders.map(
282
+ this.obligationOrders = fields.obligationOrders.map(
275
283
  (item) => new types.ObligationOrder({ ...item })
276
284
  )
285
+ this.borrowOrder = new types.BorrowOrder({ ...fields.borrowOrder })
277
286
  this.padding3 = fields.padding3
278
287
  }
279
288
 
@@ -346,8 +355,7 @@ export class Obligation {
346
355
  borrowedAssetsMarketValueSf: dec.borrowedAssetsMarketValueSf,
347
356
  allowedBorrowValueSf: dec.allowedBorrowValueSf,
348
357
  unhealthyBorrowValueSf: dec.unhealthyBorrowValueSf,
349
- depositsAssetTiers: dec.depositsAssetTiers,
350
- borrowsAssetTiers: dec.borrowsAssetTiers,
358
+ paddingDeprecatedAssetTiers: dec.paddingDeprecatedAssetTiers,
351
359
  elevationGroup: dec.elevationGroup,
352
360
  numOfObsoleteDepositReserves: dec.numOfObsoleteDepositReserves,
353
361
  hasDebt: dec.hasDebt,
@@ -360,11 +368,12 @@ export class Obligation {
360
368
  highestBorrowFactorPct: dec.highestBorrowFactorPct,
361
369
  autodeleverageMarginCallStartedTimestamp:
362
370
  dec.autodeleverageMarginCallStartedTimestamp,
363
- orders: dec.orders.map(
371
+ obligationOrders: dec.obligationOrders.map(
364
372
  (
365
373
  item: any /* eslint-disable-line @typescript-eslint/no-explicit-any */
366
374
  ) => types.ObligationOrder.fromDecoded(item)
367
375
  ),
376
+ borrowOrder: types.BorrowOrder.fromDecoded(dec.borrowOrder),
368
377
  padding3: dec.padding3,
369
378
  })
370
379
  }
@@ -385,8 +394,7 @@ export class Obligation {
385
394
  borrowedAssetsMarketValueSf: this.borrowedAssetsMarketValueSf.toString(),
386
395
  allowedBorrowValueSf: this.allowedBorrowValueSf.toString(),
387
396
  unhealthyBorrowValueSf: this.unhealthyBorrowValueSf.toString(),
388
- depositsAssetTiers: this.depositsAssetTiers,
389
- borrowsAssetTiers: this.borrowsAssetTiers,
397
+ paddingDeprecatedAssetTiers: this.paddingDeprecatedAssetTiers,
390
398
  elevationGroup: this.elevationGroup,
391
399
  numOfObsoleteDepositReserves: this.numOfObsoleteDepositReserves,
392
400
  hasDebt: this.hasDebt,
@@ -399,7 +407,8 @@ export class Obligation {
399
407
  highestBorrowFactorPct: this.highestBorrowFactorPct.toString(),
400
408
  autodeleverageMarginCallStartedTimestamp:
401
409
  this.autodeleverageMarginCallStartedTimestamp.toString(),
402
- orders: this.orders.map((item) => item.toJSON()),
410
+ obligationOrders: this.obligationOrders.map((item) => item.toJSON()),
411
+ borrowOrder: this.borrowOrder.toJSON(),
403
412
  padding3: this.padding3.map((item) => item.toString()),
404
413
  }
405
414
  }
@@ -426,8 +435,7 @@ export class Obligation {
426
435
  borrowedAssetsMarketValueSf: new BN(obj.borrowedAssetsMarketValueSf),
427
436
  allowedBorrowValueSf: new BN(obj.allowedBorrowValueSf),
428
437
  unhealthyBorrowValueSf: new BN(obj.unhealthyBorrowValueSf),
429
- depositsAssetTiers: obj.depositsAssetTiers,
430
- borrowsAssetTiers: obj.borrowsAssetTiers,
438
+ paddingDeprecatedAssetTiers: obj.paddingDeprecatedAssetTiers,
431
439
  elevationGroup: obj.elevationGroup,
432
440
  numOfObsoleteDepositReserves: obj.numOfObsoleteDepositReserves,
433
441
  hasDebt: obj.hasDebt,
@@ -441,7 +449,10 @@ export class Obligation {
441
449
  autodeleverageMarginCallStartedTimestamp: new BN(
442
450
  obj.autodeleverageMarginCallStartedTimestamp
443
451
  ),
444
- orders: obj.orders.map((item) => types.ObligationOrder.fromJSON(item)),
452
+ obligationOrders: obj.obligationOrders.map((item) =>
453
+ types.ObligationOrder.fromJSON(item)
454
+ ),
455
+ borrowOrder: types.BorrowOrder.fromJSON(obj.borrowOrder),
445
456
  padding3: obj.padding3.map((item) => new BN(item)),
446
457
  })
447
458
  }
@@ -110,7 +110,7 @@ export class Reserve {
110
110
  types.ReserveCollateral.layout("collateral"),
111
111
  borsh.array(borsh.u64(), 150, "reserveCollateralPadding"),
112
112
  types.ReserveConfig.layout("config"),
113
- borsh.array(borsh.u64(), 116, "configPadding"),
113
+ borsh.array(borsh.u64(), 114, "configPadding"),
114
114
  borsh.u64("borrowedAmountOutsideElevationGroup"),
115
115
  borsh.array(
116
116
  borsh.u64(),
@@ -19,42 +19,17 @@ export interface UserStateFields {
19
19
  userId: BN
20
20
  farmState: Address
21
21
  owner: Address
22
- /** Indicate if this user state is part of a delegated farm */
23
22
  isFarmDelegated: number
24
23
  padding0: Array<number>
25
- /**
26
- * Rewards tally used for computation of gained rewards
27
- * (scaled from `Decimal` representation).
28
- */
29
24
  rewardsTallyScaled: Array<BN>
30
- /** Number of reward tokens ready for claim */
31
25
  rewardsIssuedUnclaimed: Array<BN>
32
26
  lastClaimTs: Array<BN>
33
- /**
34
- * User stake deposited and usable, generating rewards and fees.
35
- * (scaled from `Decimal` representation).
36
- */
37
27
  activeStakeScaled: BN
38
- /**
39
- * User stake deposited but not usable and not generating rewards yet.
40
- * (scaled from `Decimal` representation).
41
- */
42
28
  pendingDepositStakeScaled: BN
43
- /**
44
- * After this timestamp, pending user stake can be moved to user stake
45
- * Initialized to now() + delayed user stake period
46
- */
47
29
  pendingDepositStakeTs: BN
48
- /**
49
- * User deposits unstaked, pending for withdrawal, not usable and not generating rewards.
50
- * (scaled from `Decimal` representation).
51
- */
52
30
  pendingWithdrawalUnstakeScaled: BN
53
- /** After this timestamp, user can withdraw their deposit. */
54
31
  pendingWithdrawalUnstakeTs: BN
55
- /** User bump used for account address validation */
56
32
  bump: BN
57
- /** Delegatee used for initialisation - useful to check against */
58
33
  delegatee: Address
59
34
  lastStakeTs: BN
60
35
  padding1: Array<BN>
@@ -64,42 +39,17 @@ export interface UserStateJSON {
64
39
  userId: string
65
40
  farmState: string
66
41
  owner: string
67
- /** Indicate if this user state is part of a delegated farm */
68
42
  isFarmDelegated: number
69
43
  padding0: Array<number>
70
- /**
71
- * Rewards tally used for computation of gained rewards
72
- * (scaled from `Decimal` representation).
73
- */
74
44
  rewardsTallyScaled: Array<string>
75
- /** Number of reward tokens ready for claim */
76
45
  rewardsIssuedUnclaimed: Array<string>
77
46
  lastClaimTs: Array<string>
78
- /**
79
- * User stake deposited and usable, generating rewards and fees.
80
- * (scaled from `Decimal` representation).
81
- */
82
47
  activeStakeScaled: string
83
- /**
84
- * User stake deposited but not usable and not generating rewards yet.
85
- * (scaled from `Decimal` representation).
86
- */
87
48
  pendingDepositStakeScaled: string
88
- /**
89
- * After this timestamp, pending user stake can be moved to user stake
90
- * Initialized to now() + delayed user stake period
91
- */
92
49
  pendingDepositStakeTs: string
93
- /**
94
- * User deposits unstaked, pending for withdrawal, not usable and not generating rewards.
95
- * (scaled from `Decimal` representation).
96
- */
97
50
  pendingWithdrawalUnstakeScaled: string
98
- /** After this timestamp, user can withdraw their deposit. */
99
51
  pendingWithdrawalUnstakeTs: string
100
- /** User bump used for account address validation */
101
52
  bump: string
102
- /** Delegatee used for initialisation - useful to check against */
103
53
  delegatee: string
104
54
  lastStakeTs: string
105
55
  padding1: Array<string>
@@ -109,42 +59,17 @@ export class UserState {
109
59
  readonly userId: BN
110
60
  readonly farmState: Address
111
61
  readonly owner: Address
112
- /** Indicate if this user state is part of a delegated farm */
113
62
  readonly isFarmDelegated: number
114
63
  readonly padding0: Array<number>
115
- /**
116
- * Rewards tally used for computation of gained rewards
117
- * (scaled from `Decimal` representation).
118
- */
119
64
  readonly rewardsTallyScaled: Array<BN>
120
- /** Number of reward tokens ready for claim */
121
65
  readonly rewardsIssuedUnclaimed: Array<BN>
122
66
  readonly lastClaimTs: Array<BN>
123
- /**
124
- * User stake deposited and usable, generating rewards and fees.
125
- * (scaled from `Decimal` representation).
126
- */
127
67
  readonly activeStakeScaled: BN
128
- /**
129
- * User stake deposited but not usable and not generating rewards yet.
130
- * (scaled from `Decimal` representation).
131
- */
132
68
  readonly pendingDepositStakeScaled: BN
133
- /**
134
- * After this timestamp, pending user stake can be moved to user stake
135
- * Initialized to now() + delayed user stake period
136
- */
137
69
  readonly pendingDepositStakeTs: BN
138
- /**
139
- * User deposits unstaked, pending for withdrawal, not usable and not generating rewards.
140
- * (scaled from `Decimal` representation).
141
- */
142
70
  readonly pendingWithdrawalUnstakeScaled: BN
143
- /** After this timestamp, user can withdraw their deposit. */
144
71
  readonly pendingWithdrawalUnstakeTs: BN
145
- /** User bump used for account address validation */
146
72
  readonly bump: BN
147
- /** Delegatee used for initialisation - useful to check against */
148
73
  readonly delegatee: Address
149
74
  readonly lastStakeTs: BN
150
75
  readonly padding1: Array<BN>
@@ -132,6 +132,17 @@ export type CustomError =
132
132
  | InitialAdminDepositExecuted
133
133
  | ReserveHasNotReceivedInitialDeposit
134
134
  | CTokenUsageBlocked
135
+ | CannotUseSameReserve
136
+ | TransactionIncludesRestrictedPrograms
137
+ | BorrowOrderDebtLiquidityMintMismatch
138
+ | BorrowOrderMaxBorrowRateExceeded
139
+ | BorrowOrderMinDebtTermInsufficient
140
+ | BorrowOrderFillTimeLimitExceeded
141
+ | ReserveDebtMaturityReached
142
+ | NonUpdatableOrderConfiguration
143
+ | BorrowOrderExecutionDisabled
144
+ | DebtReachedReserveDebtTerm
145
+ | ExpectationNotMet
135
146
 
136
147
  export class InvalidMarketAuthority extends Error {
137
148
  static readonly code = 6000
@@ -1680,6 +1691,145 @@ export class CTokenUsageBlocked extends Error {
1680
1691
  }
1681
1692
  }
1682
1693
 
1694
+ export class CannotUseSameReserve extends Error {
1695
+ static readonly code = 6133
1696
+ readonly code = 6133
1697
+ readonly name = "CannotUseSameReserve"
1698
+ readonly msg = "Cannot call ix with same reserve"
1699
+
1700
+ constructor(readonly logs?: string[]) {
1701
+ super("6133: Cannot call ix with same reserve")
1702
+ }
1703
+ }
1704
+
1705
+ export class TransactionIncludesRestrictedPrograms extends Error {
1706
+ static readonly code = 6134
1707
+ readonly code = 6134
1708
+ readonly name = "TransactionIncludesRestrictedPrograms"
1709
+ readonly msg = "Transaction includes restricted programs"
1710
+
1711
+ constructor(readonly logs?: string[]) {
1712
+ super("6134: Transaction includes restricted programs")
1713
+ }
1714
+ }
1715
+
1716
+ export class BorrowOrderDebtLiquidityMintMismatch extends Error {
1717
+ static readonly code = 6135
1718
+ readonly code = 6135
1719
+ readonly name = "BorrowOrderDebtLiquidityMintMismatch"
1720
+ readonly msg = "There is no borrow order requesting debt in the given asset"
1721
+
1722
+ constructor(readonly logs?: string[]) {
1723
+ super("6135: There is no borrow order requesting debt in the given asset")
1724
+ }
1725
+ }
1726
+
1727
+ export class BorrowOrderMaxBorrowRateExceeded extends Error {
1728
+ static readonly code = 6136
1729
+ readonly code = 6136
1730
+ readonly name = "BorrowOrderMaxBorrowRateExceeded"
1731
+ readonly msg =
1732
+ "Reserve used for fill exceeds the maximum borrow rate specified by the order"
1733
+
1734
+ constructor(readonly logs?: string[]) {
1735
+ super(
1736
+ "6136: Reserve used for fill exceeds the maximum borrow rate specified by the order"
1737
+ )
1738
+ }
1739
+ }
1740
+
1741
+ export class BorrowOrderMinDebtTermInsufficient extends Error {
1742
+ static readonly code = 6137
1743
+ readonly code = 6137
1744
+ readonly name = "BorrowOrderMinDebtTermInsufficient"
1745
+ readonly msg =
1746
+ "Reserve used for fill defines a debt term shorter than specified by the order"
1747
+
1748
+ constructor(readonly logs?: string[]) {
1749
+ super(
1750
+ "6137: Reserve used for fill defines a debt term shorter than specified by the order"
1751
+ )
1752
+ }
1753
+ }
1754
+
1755
+ export class BorrowOrderFillTimeLimitExceeded extends Error {
1756
+ static readonly code = 6138
1757
+ readonly code = 6138
1758
+ readonly name = "BorrowOrderFillTimeLimitExceeded"
1759
+ readonly msg = "Borrow order can no longer be filled"
1760
+
1761
+ constructor(readonly logs?: string[]) {
1762
+ super("6138: Borrow order can no longer be filled")
1763
+ }
1764
+ }
1765
+
1766
+ export class ReserveDebtMaturityReached extends Error {
1767
+ static readonly code = 6139
1768
+ readonly code = 6139
1769
+ readonly name = "ReserveDebtMaturityReached"
1770
+ readonly msg =
1771
+ "Cannot borrow from a reserve that reached its debt maturity timestamp"
1772
+
1773
+ constructor(readonly logs?: string[]) {
1774
+ super(
1775
+ "6139: Cannot borrow from a reserve that reached its debt maturity timestamp"
1776
+ )
1777
+ }
1778
+ }
1779
+
1780
+ export class NonUpdatableOrderConfiguration extends Error {
1781
+ static readonly code = 6140
1782
+ readonly code = 6140
1783
+ readonly name = "NonUpdatableOrderConfiguration"
1784
+ readonly msg =
1785
+ "Some piece of the order's configuration cannot be updated (the order should be cancelled and placed again)"
1786
+
1787
+ constructor(readonly logs?: string[]) {
1788
+ super(
1789
+ "6140: Some piece of the order's configuration cannot be updated (the order should be cancelled and placed again)"
1790
+ )
1791
+ }
1792
+ }
1793
+
1794
+ export class BorrowOrderExecutionDisabled extends Error {
1795
+ static readonly code = 6141
1796
+ readonly code = 6141
1797
+ readonly name = "BorrowOrderExecutionDisabled"
1798
+ readonly msg = "Execution of borrow orders is disabled"
1799
+
1800
+ constructor(readonly logs?: string[]) {
1801
+ super("6141: Execution of borrow orders is disabled")
1802
+ }
1803
+ }
1804
+
1805
+ export class DebtReachedReserveDebtTerm extends Error {
1806
+ static readonly code = 6142
1807
+ readonly code = 6142
1808
+ readonly name = "DebtReachedReserveDebtTerm"
1809
+ readonly msg =
1810
+ "Cannot increase the debt that has reached its end of term configured by the reserve"
1811
+
1812
+ constructor(readonly logs?: string[]) {
1813
+ super(
1814
+ "6142: Cannot increase the debt that has reached its end of term configured by the reserve"
1815
+ )
1816
+ }
1817
+ }
1818
+
1819
+ export class ExpectationNotMet extends Error {
1820
+ static readonly code = 6143
1821
+ readonly code = 6143
1822
+ readonly name = "ExpectationNotMet"
1823
+ readonly msg =
1824
+ "The on-chain state does not meet expectation specified by the caller, so the operation must be aborted (to avoid race conditions)"
1825
+
1826
+ constructor(readonly logs?: string[]) {
1827
+ super(
1828
+ "6143: The on-chain state does not meet expectation specified by the caller, so the operation must be aborted (to avoid race conditions)"
1829
+ )
1830
+ }
1831
+ }
1832
+
1683
1833
  export function fromCode(code: number, logs?: string[]): CustomError | null {
1684
1834
  switch (code) {
1685
1835
  case 6000:
@@ -1948,6 +2098,28 @@ export function fromCode(code: number, logs?: string[]): CustomError | null {
1948
2098
  return new ReserveHasNotReceivedInitialDeposit(logs)
1949
2099
  case 6132:
1950
2100
  return new CTokenUsageBlocked(logs)
2101
+ case 6133:
2102
+ return new CannotUseSameReserve(logs)
2103
+ case 6134:
2104
+ return new TransactionIncludesRestrictedPrograms(logs)
2105
+ case 6135:
2106
+ return new BorrowOrderDebtLiquidityMintMismatch(logs)
2107
+ case 6136:
2108
+ return new BorrowOrderMaxBorrowRateExceeded(logs)
2109
+ case 6137:
2110
+ return new BorrowOrderMinDebtTermInsufficient(logs)
2111
+ case 6138:
2112
+ return new BorrowOrderFillTimeLimitExceeded(logs)
2113
+ case 6139:
2114
+ return new ReserveDebtMaturityReached(logs)
2115
+ case 6140:
2116
+ return new NonUpdatableOrderConfiguration(logs)
2117
+ case 6141:
2118
+ return new BorrowOrderExecutionDisabled(logs)
2119
+ case 6142:
2120
+ return new DebtReachedReserveDebtTerm(logs)
2121
+ case 6143:
2122
+ return new ExpectationNotMet(logs)
1951
2123
  }
1952
2124
 
1953
2125
  return null