@kamino-finance/klend-sdk 7.3.10-beta.0 → 7.3.10-beta.1

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 (131) hide show
  1. package/dist/classes/action.d.ts +21 -91
  2. package/dist/classes/action.d.ts.map +1 -1
  3. package/dist/classes/action.js +152 -139
  4. package/dist/classes/action.js.map +1 -1
  5. package/dist/classes/actionTypes.d.ts +310 -0
  6. package/dist/classes/actionTypes.d.ts.map +1 -0
  7. package/dist/classes/actionTypes.js +3 -0
  8. package/dist/classes/actionTypes.js.map +1 -0
  9. package/dist/classes/configItems.d.ts +1 -6
  10. package/dist/classes/configItems.d.ts.map +1 -1
  11. package/dist/classes/configItems.js +1 -93
  12. package/dist/classes/configItems.js.map +1 -1
  13. package/dist/classes/farm_utils.d.ts +1 -1
  14. package/dist/classes/farm_utils.d.ts.map +1 -1
  15. package/dist/classes/farm_utils.js +3 -1
  16. package/dist/classes/farm_utils.js.map +1 -1
  17. package/dist/classes/market.d.ts +15 -10
  18. package/dist/classes/market.d.ts.map +1 -1
  19. package/dist/classes/market.js +49 -26
  20. package/dist/classes/market.js.map +1 -1
  21. package/dist/classes/obligation.d.ts +9 -9
  22. package/dist/classes/obligation.d.ts.map +1 -1
  23. package/dist/classes/obligation.js +48 -50
  24. package/dist/classes/obligation.js.map +1 -1
  25. package/dist/classes/obligationOrder.d.ts.map +1 -1
  26. package/dist/classes/obligationOrder.js +6 -3
  27. package/dist/classes/obligationOrder.js.map +1 -1
  28. package/dist/classes/reserve.d.ts +7 -3
  29. package/dist/classes/reserve.d.ts.map +1 -1
  30. package/dist/classes/reserve.js +31 -43
  31. package/dist/classes/reserve.js.map +1 -1
  32. package/dist/classes/shared.d.ts +3 -2
  33. package/dist/classes/shared.d.ts.map +1 -1
  34. package/dist/classes/vault.d.ts +28 -1
  35. package/dist/classes/vault.d.ts.map +1 -1
  36. package/dist/classes/vault.js +103 -6
  37. package/dist/classes/vault.js.map +1 -1
  38. package/dist/classes/vault_types.d.ts +2 -1
  39. package/dist/classes/vault_types.d.ts.map +1 -1
  40. package/dist/client/commands/borrow.d.ts +1 -1
  41. package/dist/client/commands/borrow.d.ts.map +1 -1
  42. package/dist/client/commands/borrow.js +11 -2
  43. package/dist/client/commands/borrow.js.map +1 -1
  44. package/dist/client/commands/deposit.d.ts +1 -1
  45. package/dist/client/commands/deposit.d.ts.map +1 -1
  46. package/dist/client/commands/deposit.js +11 -2
  47. package/dist/client/commands/deposit.js.map +1 -1
  48. package/dist/client/commands/printReserve.d.ts +1 -1
  49. package/dist/client/commands/printReserve.d.ts.map +1 -1
  50. package/dist/client/commands/printReserve.js +2 -4
  51. package/dist/client/commands/printReserve.js.map +1 -1
  52. package/dist/client/commands/repay.d.ts +1 -1
  53. package/dist/client/commands/repay.d.ts.map +1 -1
  54. package/dist/client/commands/repay.js +12 -2
  55. package/dist/client/commands/repay.js.map +1 -1
  56. package/dist/client/commands/withdraw.d.ts +1 -1
  57. package/dist/client/commands/withdraw.d.ts.map +1 -1
  58. package/dist/client/commands/withdraw.js +11 -2
  59. package/dist/client/commands/withdraw.js.map +1 -1
  60. package/dist/lending_operations/repay_with_collateral_calcs.d.ts +1 -1
  61. package/dist/lending_operations/repay_with_collateral_calcs.d.ts.map +1 -1
  62. package/dist/lending_operations/repay_with_collateral_calcs.js +2 -2
  63. package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -1
  64. package/dist/lending_operations/repay_with_collateral_operations.d.ts +4 -4
  65. package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
  66. package/dist/lending_operations/repay_with_collateral_operations.js +43 -10
  67. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  68. package/dist/lending_operations/swap_collateral_operations.d.ts +4 -4
  69. package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
  70. package/dist/lending_operations/swap_collateral_operations.js +40 -21
  71. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  72. package/dist/leverage/operations.d.ts +6 -6
  73. package/dist/leverage/operations.d.ts.map +1 -1
  74. package/dist/leverage/operations.js +167 -52
  75. package/dist/leverage/operations.js.map +1 -1
  76. package/dist/leverage/types.d.ts +2 -2
  77. package/dist/leverage/types.d.ts.map +1 -1
  78. package/dist/manager/client_kamino_manager.js +0 -2
  79. package/dist/manager/client_kamino_manager.js.map +1 -1
  80. package/dist/obligation_orders/price_based.js +5 -3
  81. package/dist/obligation_orders/price_based.js.map +1 -1
  82. package/dist/utils/Logger.d.ts +14 -0
  83. package/dist/utils/Logger.d.ts.map +1 -0
  84. package/dist/utils/Logger.js +12 -0
  85. package/dist/utils/Logger.js.map +1 -0
  86. package/dist/utils/ObligationType.d.ts +33 -1
  87. package/dist/utils/ObligationType.d.ts.map +1 -1
  88. package/dist/utils/ObligationType.js +81 -2
  89. package/dist/utils/ObligationType.js.map +1 -1
  90. package/dist/utils/api.d.ts +13 -4
  91. package/dist/utils/api.d.ts.map +1 -1
  92. package/dist/utils/api.js +33 -31
  93. package/dist/utils/api.js.map +1 -1
  94. package/dist/utils/userMetadata.d.ts +2 -2
  95. package/dist/utils/userMetadata.d.ts.map +1 -1
  96. package/dist/utils/userMetadata.js +49 -25
  97. package/dist/utils/userMetadata.js.map +1 -1
  98. package/dist/utils/validations.d.ts +1 -0
  99. package/dist/utils/validations.d.ts.map +1 -1
  100. package/dist/utils/validations.js +5 -0
  101. package/dist/utils/validations.js.map +1 -1
  102. package/package.json +1 -1
  103. package/src/classes/action.ts +346 -372
  104. package/src/classes/actionTypes.ts +295 -0
  105. package/src/classes/configItems.ts +1 -99
  106. package/src/classes/farm_utils.ts +5 -1
  107. package/src/classes/market.ts +74 -31
  108. package/src/classes/obligation.ts +54 -53
  109. package/src/classes/obligationOrder.ts +6 -3
  110. package/src/classes/reserve.ts +118 -122
  111. package/src/classes/shared.ts +4 -2
  112. package/src/classes/vault.ts +160 -7
  113. package/src/classes/vault_types.ts +2 -1
  114. package/src/client/client.ts +17 -18
  115. package/src/client/commands/borrow.ts +10 -9
  116. package/src/client/commands/deposit.ts +10 -9
  117. package/src/client/commands/printReserve.ts +2 -4
  118. package/src/client/commands/repay.ts +11 -10
  119. package/src/client/commands/withdraw.ts +15 -9
  120. package/src/lending_operations/repay_with_collateral_calcs.ts +3 -4
  121. package/src/lending_operations/repay_with_collateral_operations.ts +40 -38
  122. package/src/lending_operations/swap_collateral_operations.ts +47 -41
  123. package/src/leverage/operations.ts +168 -129
  124. package/src/leverage/types.ts +2 -2
  125. package/src/manager/client_kamino_manager.ts +0 -2
  126. package/src/obligation_orders/price_based.ts +7 -5
  127. package/src/utils/Logger.ts +14 -0
  128. package/src/utils/ObligationType.ts +92 -1
  129. package/src/utils/api.ts +56 -33
  130. package/src/utils/userMetadata.ts +64 -30
  131. package/src/utils/validations.ts +5 -0
@@ -0,0 +1,14 @@
1
+ export interface Logger {
2
+ info(message: string, ...args: any[]): void;
3
+ warn(message: string, ...args: any[]): void;
4
+ error(message: string, ...args: any[]): void;
5
+ debug(message: string, ...args: any[]): void;
6
+ }
7
+ export declare enum LogLevel {
8
+ INFO = "info",
9
+ WARN = "warn",
10
+ ERROR = "error",
11
+ DEBUG = "debug",
12
+ NONE = "none"
13
+ }
14
+ //# sourceMappingURL=Logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC9C;AAED,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;CACd"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogLevel = void 0;
4
+ var LogLevel;
5
+ (function (LogLevel) {
6
+ LogLevel["INFO"] = "info";
7
+ LogLevel["WARN"] = "warn";
8
+ LogLevel["ERROR"] = "error";
9
+ LogLevel["DEBUG"] = "debug";
10
+ LogLevel["NONE"] = "none";
11
+ })(LogLevel || (exports.LogLevel = LogLevel = {}));
12
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":";;;AAOA,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,yBAAa,CAAA;AACf,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB"}
@@ -5,7 +5,10 @@ export declare enum ObligationTypeTag {
5
5
  Vanilla = 0,
6
6
  Multiply = 1,
7
7
  Lending = 2,
8
- Leverage = 3
8
+ Leverage = 3,
9
+ MultiplyFixedRate = 4,
10
+ LendingFixedRate = 5,
11
+ LeverageFixedRate = 6
9
12
  }
10
13
  export type InitObligationArgsModel = {
11
14
  tag: number;
@@ -31,6 +34,16 @@ export declare class MultiplyObligation {
31
34
  toArgs(): InitObligationArgsModel;
32
35
  toPda(market: Address, user: Address): Promise<Address>;
33
36
  }
37
+ export declare class MultiplyObligationFixedRate {
38
+ readonly collReserveAddress: Address;
39
+ readonly debtReserveAddress: Address;
40
+ readonly programId: Address;
41
+ readonly id: number;
42
+ static tag: number;
43
+ constructor(collReserveAddress: Address, debtReserveAddress: Address, programId: Address, id?: number);
44
+ toArgs(): InitObligationArgsModel;
45
+ toPda(market: Address, user: Address): Promise<Address>;
46
+ }
34
47
  export declare class LeverageObligation {
35
48
  readonly collToken: Address;
36
49
  readonly debtToken: Address;
@@ -41,6 +54,16 @@ export declare class LeverageObligation {
41
54
  toArgs(): InitObligationArgsModel;
42
55
  toPda(market: Address, user: Address): Promise<Address>;
43
56
  }
57
+ export declare class LeverageObligationFixedRate {
58
+ readonly collReserveAddress: Address;
59
+ readonly debtReserveAddress: Address;
60
+ readonly programId: Address;
61
+ readonly id: number;
62
+ static tag: number;
63
+ constructor(collReserveAddress: Address, debtReserveAddress: Address, programId: Address, id?: number);
64
+ toArgs(): InitObligationArgsModel;
65
+ toPda(market: Address, user: Address): Promise<Address>;
66
+ }
44
67
  export declare class LendingObligation {
45
68
  readonly token: Address;
46
69
  readonly programId: Address;
@@ -50,6 +73,15 @@ export declare class LendingObligation {
50
73
  toArgs(): InitObligationArgsModel;
51
74
  toPda(market: Address, user: Address): Promise<Address>;
52
75
  }
76
+ export declare class LendingObligationFixedRate {
77
+ readonly reserveAddress: Address;
78
+ readonly programId: Address;
79
+ readonly id: number;
80
+ static tag: number;
81
+ constructor(reserveAddress: Address, programId: Address, id?: number);
82
+ toArgs(): InitObligationArgsModel;
83
+ toPda(market: Address, user: Address): Promise<Address>;
84
+ }
53
85
  export declare function getObligationPdaWithArgs(market: Address, user: Address, args: InitObligationArgsModel, programId: Address): Promise<Address>;
54
86
  export declare function getObligationType(kaminoMarket: KaminoMarket, obligationTag: ObligationTypeTag, mintAddress1?: Option<Address>, mintAddress2?: Option<Address>): ObligationType;
55
87
  export declare function getObligationTypeFromObligation(kaminoMarket: KaminoMarket, obligation: KaminoObligation): ObligationType;
@@ -1 +1 @@
1
- {"version":3,"file":"ObligationType.d.ts","sourceRoot":"","sources":["../../src/utils/ObligationType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA6D,MAAM,EAAE,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK5D,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAE7G,oBAAY,iBAAiB;IAC3B,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,OAAO,IAAI;IACX,QAAQ,IAAI;CACb;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,GAAG,SAAK;gBAEH,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM;IAK3C,MAAM;IAWN,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;CAGrC;AAED,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,GAAG,SAAK;gBAEH,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM;IAOnF,MAAM;IAWN,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;CAGrC;AAED,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,GAAG,SAAK;gBAEH,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM;IAOnF,MAAM;IAWN,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;CAGrC;AAED,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,GAAG,SAAK;gBAEH,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM;IAM3D,MAAM;IAWN,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;CAGrC;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,uBAAuB,EAC7B,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,OAAO,CAAC,CAclB;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,iBAAiB,EAChC,YAAY,GAAE,MAAM,CAAC,OAAO,CAAU,EACtC,YAAY,GAAE,MAAM,CAAC,OAAO,CAAU,GACrC,cAAc,CAiChB;AAED,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,gBAAgB,GAC3B,cAAc,CA0BhB"}
1
+ {"version":3,"file":"ObligationType.d.ts","sourceRoot":"","sources":["../../src/utils/ObligationType.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LendingObligation = exports.LeverageObligation = exports.MultiplyObligation = exports.VanillaObligation = exports.ObligationTypeTag = void 0;
3
+ exports.LendingObligationFixedRate = exports.LendingObligation = exports.LeverageObligationFixedRate = exports.LeverageObligation = exports.MultiplyObligationFixedRate = exports.MultiplyObligation = exports.VanillaObligation = exports.ObligationTypeTag = void 0;
4
4
  exports.getObligationPdaWithArgs = getObligationPdaWithArgs;
5
5
  exports.getObligationType = getObligationType;
6
6
  exports.getObligationTypeFromObligation = getObligationTypeFromObligation;
@@ -13,6 +13,9 @@ var ObligationTypeTag;
13
13
  ObligationTypeTag[ObligationTypeTag["Multiply"] = 1] = "Multiply";
14
14
  ObligationTypeTag[ObligationTypeTag["Lending"] = 2] = "Lending";
15
15
  ObligationTypeTag[ObligationTypeTag["Leverage"] = 3] = "Leverage";
16
+ ObligationTypeTag[ObligationTypeTag["MultiplyFixedRate"] = 4] = "MultiplyFixedRate";
17
+ ObligationTypeTag[ObligationTypeTag["LendingFixedRate"] = 5] = "LendingFixedRate";
18
+ ObligationTypeTag[ObligationTypeTag["LeverageFixedRate"] = 6] = "LeverageFixedRate";
16
19
  })(ObligationTypeTag || (exports.ObligationTypeTag = ObligationTypeTag = {}));
17
20
  class VanillaObligation {
18
21
  programId;
@@ -62,6 +65,32 @@ class MultiplyObligation {
62
65
  }
63
66
  }
64
67
  exports.MultiplyObligation = MultiplyObligation;
68
+ class MultiplyObligationFixedRate {
69
+ collReserveAddress;
70
+ debtReserveAddress;
71
+ programId;
72
+ id;
73
+ static tag = 4;
74
+ constructor(collReserveAddress, debtReserveAddress, programId, id) {
75
+ this.collReserveAddress = collReserveAddress;
76
+ this.debtReserveAddress = debtReserveAddress;
77
+ this.programId = programId;
78
+ this.id = id ?? 0;
79
+ }
80
+ toArgs() {
81
+ const initObligationArgs = {
82
+ tag: MultiplyObligationFixedRate.tag,
83
+ id: this.id,
84
+ seed1: this.collReserveAddress,
85
+ seed2: this.debtReserveAddress,
86
+ };
87
+ return initObligationArgs;
88
+ }
89
+ toPda(market, user) {
90
+ return getObligationPdaWithArgs(market, user, this.toArgs(), this.programId);
91
+ }
92
+ }
93
+ exports.MultiplyObligationFixedRate = MultiplyObligationFixedRate;
65
94
  class LeverageObligation {
66
95
  collToken;
67
96
  debtToken;
@@ -88,6 +117,32 @@ class LeverageObligation {
88
117
  }
89
118
  }
90
119
  exports.LeverageObligation = LeverageObligation;
120
+ class LeverageObligationFixedRate {
121
+ collReserveAddress;
122
+ debtReserveAddress;
123
+ programId;
124
+ id;
125
+ static tag = 6;
126
+ constructor(collReserveAddress, debtReserveAddress, programId, id) {
127
+ this.collReserveAddress = collReserveAddress;
128
+ this.debtReserveAddress = debtReserveAddress;
129
+ this.programId = programId;
130
+ this.id = id ?? 0;
131
+ }
132
+ toArgs() {
133
+ const initObligationArgs = {
134
+ tag: LeverageObligationFixedRate.tag,
135
+ id: this.id,
136
+ seed1: this.collReserveAddress,
137
+ seed2: this.debtReserveAddress,
138
+ };
139
+ return initObligationArgs;
140
+ }
141
+ toPda(market, user) {
142
+ return getObligationPdaWithArgs(market, user, this.toArgs(), this.programId);
143
+ }
144
+ }
145
+ exports.LeverageObligationFixedRate = LeverageObligationFixedRate;
91
146
  class LendingObligation {
92
147
  token;
93
148
  programId;
@@ -101,7 +156,7 @@ class LendingObligation {
101
156
  toArgs() {
102
157
  const initObligationArgs = {
103
158
  tag: LendingObligation.tag,
104
- id: 0,
159
+ id: this.id,
105
160
  seed1: this.token,
106
161
  seed2: this.token,
107
162
  };
@@ -112,6 +167,30 @@ class LendingObligation {
112
167
  }
113
168
  }
114
169
  exports.LendingObligation = LendingObligation;
170
+ class LendingObligationFixedRate {
171
+ reserveAddress;
172
+ programId;
173
+ id;
174
+ static tag = 5;
175
+ constructor(reserveAddress, programId, id) {
176
+ this.reserveAddress = reserveAddress;
177
+ this.programId = programId;
178
+ this.id = id ?? 0;
179
+ }
180
+ toArgs() {
181
+ const initObligationArgs = {
182
+ tag: LendingObligationFixedRate.tag,
183
+ id: this.id,
184
+ seed1: this.reserveAddress,
185
+ seed2: this.reserveAddress,
186
+ };
187
+ return initObligationArgs;
188
+ }
189
+ toPda(market, user) {
190
+ return getObligationPdaWithArgs(market, user, this.toArgs(), this.programId);
191
+ }
192
+ }
193
+ exports.LendingObligationFixedRate = LendingObligationFixedRate;
115
194
  async function getObligationPdaWithArgs(market, user, args, programId) {
116
195
  const seeds = [
117
196
  Buffer.from([args.tag]),
@@ -1 +1 @@
1
- {"version":3,"file":"ObligationType.js","sourceRoot":"","sources":["../../src/utils/ObligationType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObligationType.js","sourceRoot":"","sources":["../../src/utils/ObligationType.ts"],"names":[],"mappings":";;;AAmOA,4DAmBC;AAED,8CAsCC;AAED,0EA6BC;AA7TD,qCAAyG;AAEzG,qCAA8C;AAE9C,MAAM,cAAc,GAAG,IAAA,uBAAiB,GAAE,CAAC;AAI3C,IAAY,iBAQX;AARD,WAAY,iBAAiB;IAC3B,+DAAW,CAAA;IACX,iEAAY,CAAA;IACZ,+DAAW,CAAA;IACX,iEAAY,CAAA;IACZ,mFAAqB,CAAA;IACrB,iFAAoB,CAAA;IACpB,mFAAqB,CAAA;AACvB,CAAC,EARW,iBAAiB,iCAAjB,iBAAiB,QAQ5B;AASD,MAAa,iBAAiB;IACnB,SAAS,CAAU;IACnB,EAAE,CAAS;IACpB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAEf,YAAY,SAAkB,EAAE,EAAW;QACzC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,MAAM,kBAAkB,GAA4B;YAClD,GAAG,EAAE,iBAAiB,CAAC,GAAG;YAC1B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,2BAAkB;YACzB,KAAK,EAAE,2BAAkB;SAC1B,CAAC;QAEF,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAe,EAAE,IAAa;QAClC,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;;AAvBH,8CAwBC;AAED,MAAa,kBAAkB;IACpB,SAAS,CAAU;IACnB,SAAS,CAAU;IACnB,SAAS,CAAU;IACnB,EAAE,CAAS;IACpB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAEf,YAAY,SAAkB,EAAE,SAAkB,EAAE,SAAkB,EAAE,EAAW;QACjF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,MAAM,kBAAkB,GAA4B;YAClD,GAAG,EAAE,kBAAkB,CAAC,GAAG;YAC3B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,KAAK,EAAE,IAAI,CAAC,SAAS;SACtB,CAAC;QAEF,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAe,EAAE,IAAa;QAClC,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;;AA3BH,gDA4BC;AAED,MAAa,2BAA2B;IAC7B,kBAAkB,CAAU;IAC5B,kBAAkB,CAAU;IAC5B,SAAS,CAAU;IACnB,EAAE,CAAS;IACpB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAEf,YAAY,kBAA2B,EAAE,kBAA2B,EAAE,SAAkB,EAAE,EAAW;QACnG,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,MAAM,kBAAkB,GAA4B;YAClD,GAAG,EAAE,2BAA2B,CAAC,GAAG;YACpC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,kBAAkB;YAC9B,KAAK,EAAE,IAAI,CAAC,kBAAkB;SAC/B,CAAC;QAEF,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAe,EAAE,IAAa;QAClC,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;;AA3BH,kEA4BC;AAED,MAAa,kBAAkB;IACpB,SAAS,CAAU;IACnB,SAAS,CAAU;IACnB,SAAS,CAAU;IACnB,EAAE,CAAS;IACpB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAEf,YAAY,SAAkB,EAAE,SAAkB,EAAE,SAAkB,EAAE,EAAW;QACjF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,MAAM,kBAAkB,GAA4B;YAClD,GAAG,EAAE,kBAAkB,CAAC,GAAG;YAC3B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,KAAK,EAAE,IAAI,CAAC,SAAS;SACtB,CAAC;QAEF,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAe,EAAE,IAAa;QAClC,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;;AA3BH,gDA4BC;AAED,MAAa,2BAA2B;IAC7B,kBAAkB,CAAU;IAC5B,kBAAkB,CAAU;IAC5B,SAAS,CAAU;IACnB,EAAE,CAAS;IACpB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAEf,YAAY,kBAA2B,EAAE,kBAA2B,EAAE,SAAkB,EAAE,EAAW;QACnG,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,MAAM,kBAAkB,GAA4B;YAClD,GAAG,EAAE,2BAA2B,CAAC,GAAG;YACpC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,kBAAkB;YAC9B,KAAK,EAAE,IAAI,CAAC,kBAAkB;SAC/B,CAAC;QAEF,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAe,EAAE,IAAa;QAClC,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;;AA3BH,kEA4BC;AAED,MAAa,iBAAiB;IACnB,KAAK,CAAU;IACf,SAAS,CAAU;IACnB,EAAE,CAAS;IACpB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAEf,YAAY,KAAc,EAAE,SAAkB,EAAE,EAAW;QACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,MAAM,kBAAkB,GAA4B;YAClD,GAAG,EAAE,iBAAiB,CAAC,GAAG;YAC1B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;QAEF,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAe,EAAE,IAAa;QAClC,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;;AAzBH,8CA0BC;AAED,MAAa,0BAA0B;IAC5B,cAAc,CAAU;IACxB,SAAS,CAAU;IACnB,EAAE,CAAS;IACpB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAEf,YAAY,cAAuB,EAAE,SAAkB,EAAE,EAAW;QAClE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,MAAM,kBAAkB,GAA4B;YAClD,GAAG,EAAE,0BAA0B,CAAC,GAAG;YACnC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,cAAc;YAC1B,KAAK,EAAE,IAAI,CAAC,cAAc;SAC3B,CAAC;QAEF,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAe,EAAE,IAAa;QAClC,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;;AAzBH,gEA0BC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,MAAe,EACf,IAAa,EACb,IAA6B,EAC7B,SAAkB;IAElB,MAAM,KAAK,GAAG;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3B,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;KAClC,CAAC;IACF,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,GAAG,MAAM,IAAA,8BAAwB,EAAC;QACjF,KAAK;QACL,cAAc,EAAE,SAAS;KAC1B,CAAC,CAAC;IACH,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAgB,iBAAiB,CAC/B,YAA0B,EAC1B,aAAgC,EAChC,eAAgC,IAAA,UAAI,GAAE,EACtC,eAAgC,IAAA,UAAI,GAAE;IAEtC,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,OAAO,IAAI,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,IAAI,IAAA,YAAM,EAAC,YAAY,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,IAAA,YAAM,EAAC,YAAY,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,IAAI,kBAAkB,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAChG,CAAC;QACD,KAAK,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,IAAI,IAAA,YAAM,EAAC,YAAY,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,IAAA,YAAM,EAAC,YAAY,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,IAAI,kBAAkB,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAChG,CAAC;QACD,KAAK,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,IAAI,IAAA,YAAM,EAAC,YAAY,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,IAAI,iBAAiB,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,+BAA+B,CAC7C,YAA0B,EAC1B,UAA4B;IAE5B,QAAQ,UAAU,CAAC,aAAa,EAAE,CAAC;QACjC,KAAK,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,OAAO,IAAI,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,OAAO,IAAI,kBAAkB,CAC3B,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EACvC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EACtC,YAAY,CAAC,SAAS,CACvB,CAAC;QACJ,CAAC;QACD,KAAK,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,OAAO,IAAI,kBAAkB,CAC3B,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EACvC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EACtC,YAAY,CAAC,SAAS,CACvB,CAAC;QACJ,CAAC;QACD,KAAK,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,OAAO,IAAI,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Address } from '@solana/kit';
2
2
  import { ConfigType } from '../classes';
3
- import { IBackOffOptions } from 'exponential-backoff';
3
+ import { Logger, LogLevel } from './Logger';
4
4
  export type ApiRequestOptions = {
5
5
  programId?: Address;
6
6
  source?: 'API' | 'CDN';
@@ -9,6 +9,15 @@ export type ApiRequestOptions = {
9
9
  export type ApiFilterOptions = {
10
10
  isCurated?: boolean;
11
11
  };
12
+ export type ApiLoggerOptions = {
13
+ logger?: Logger;
14
+ errorLevel?: LogLevel;
15
+ };
16
+ export type MarketsApiRequest = {
17
+ api?: ApiRequestOptions;
18
+ filter?: ApiFilterOptions;
19
+ log?: ApiLoggerOptions;
20
+ };
12
21
  /**
13
22
  * Fetch config from the API
14
23
  * A good place to start to find active klend markets without expensive RPC calls
@@ -17,8 +26,8 @@ export type ApiFilterOptions = {
17
26
  * @param source - CDN is a json file hosted in the cloud, API is a webserver
18
27
  * @param apiBaseUrl - Optional base URL for the API, if not provided, defaults to the standard API endpoint, not used for CDN
19
28
  * @param filterOptions - Config options to filter markets by
29
+ * @param logger - pass a custom logger instance to log retries
30
+ * @param errorLevel - retry log level, NONE for no logs
20
31
  */
21
- export declare function getMarketsFromApi({ programId, source, apiBaseUrl }?: ApiRequestOptions, filterOptions?: ApiFilterOptions): Promise<ConfigType>;
22
- export declare const KAMINO_CDN_RETRY: Partial<IBackOffOptions>;
23
- export declare const KAMINO_API_RETRY: Partial<IBackOffOptions>;
32
+ export declare function getMarketsFromApi({ api: { programId, source, apiBaseUrl }, filter: filterOptions, log: { logger, errorLevel }, }?: MarketsApiRequest): Promise<ConfigType>;
24
33
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAW,MAAM,qBAAqB,CAAC;AAG/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,SAAsB,EAAE,MAAc,EAAE,UAAU,EAAE,GAAE,iBAAsB,EAC9E,aAAa,GAAE,gBAAqB,GACnC,OAAO,CAAC,UAAU,CAAC,CAkBrB;AAED,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,eAAe,CAYrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,eAAe,CAYrD,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAIvD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,GAAG,EAAE,EAAE,SAAsB,EAAE,MAAc,EAAE,UAAU,EAAO,EAChE,MAAM,EAAE,aAAkB,EAC1B,GAAG,EAAE,EAAE,MAAgB,EAAE,UAA0B,EAAO,GAC3D,GAAE,iBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAwB9C"}
package/dist/utils/api.js CHANGED
@@ -3,13 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.KAMINO_API_RETRY = exports.KAMINO_CDN_RETRY = void 0;
7
6
  exports.getMarketsFromApi = getMarketsFromApi;
8
7
  const axios_1 = __importDefault(require("axios"));
9
8
  const classes_1 = require("../classes");
10
9
  const utils_1 = require("../utils");
11
10
  const exponential_backoff_1 = require("exponential-backoff");
12
11
  const lib_1 = require("../lib");
12
+ const Logger_1 = require("./Logger");
13
13
  /**
14
14
  * Fetch config from the API
15
15
  * A good place to start to find active klend markets without expensive RPC calls
@@ -18,16 +18,17 @@ const lib_1 = require("../lib");
18
18
  * @param source - CDN is a json file hosted in the cloud, API is a webserver
19
19
  * @param apiBaseUrl - Optional base URL for the API, if not provided, defaults to the standard API endpoint, not used for CDN
20
20
  * @param filterOptions - Config options to filter markets by
21
+ * @param logger - pass a custom logger instance to log retries
22
+ * @param errorLevel - retry log level, NONE for no logs
21
23
  */
22
- async function getMarketsFromApi({ programId = lib_1.PROGRAM_ID, source = 'CDN', apiBaseUrl } = {}, filterOptions = {}) {
24
+ async function getMarketsFromApi({ api: { programId = lib_1.PROGRAM_ID, source = 'CDN', apiBaseUrl } = {}, filter: filterOptions = {}, log: { logger = console, errorLevel = Logger_1.LogLevel.WARN } = {}, } = {}) {
23
25
  let unfilteredConfigs = {};
24
26
  if (source === 'CDN') {
25
- unfilteredConfigs = (await (0, exponential_backoff_1.backOff)(() => axios_1.default.get(`${utils_1.CDN_ENDPOINT}/kamino_lend_config_v3.json`), exports.KAMINO_CDN_RETRY))
26
- .data[programId.toString()];
27
+ unfilteredConfigs = (await (0, exponential_backoff_1.backOff)(() => axios_1.default.get(`${utils_1.CDN_ENDPOINT}/kamino_lend_config_v3.json`), getKaminoCdnRetry(logger, errorLevel))).data[programId.toString()];
27
28
  }
28
29
  if (!unfilteredConfigs || (0, classes_1.isEmptyObject)(unfilteredConfigs)) {
29
30
  const API_ENDPOINT = (0, utils_1.getApiEndpoint)(programId, apiBaseUrl);
30
- unfilteredConfigs = (await (0, exponential_backoff_1.backOff)(() => axios_1.default.get(API_ENDPOINT), exports.KAMINO_API_RETRY)).data;
31
+ unfilteredConfigs = (await (0, exponential_backoff_1.backOff)(() => axios_1.default.get(API_ENDPOINT), getKaminoApiRetry(logger, errorLevel, API_ENDPOINT))).data;
31
32
  }
32
33
  return unfilteredConfigs.filter((c) => {
33
34
  if (filterOptions.isCurated !== undefined) {
@@ -36,30 +37,31 @@ async function getMarketsFromApi({ programId = lib_1.PROGRAM_ID, source = 'CDN',
36
37
  return true;
37
38
  });
38
39
  }
39
- exports.KAMINO_CDN_RETRY = {
40
- maxDelay: 1000,
41
- numOfAttempts: 3,
42
- startingDelay: 10,
43
- retry: (e, attemptNumber) => {
44
- console.warn(e);
45
- console.warn({
46
- attemptNumber,
47
- message: 'kamino CDN call failed, retrying with exponential backoff...',
48
- });
49
- return true;
50
- },
51
- };
52
- exports.KAMINO_API_RETRY = {
53
- maxDelay: 1000,
54
- numOfAttempts: 3,
55
- startingDelay: 10,
56
- retry: (e, attemptNumber) => {
57
- console.warn(e);
58
- console.warn({
59
- attemptNumber,
60
- message: 'api.kamino.finance call failed, retrying with exponential backoff...',
61
- });
62
- return true;
63
- },
64
- };
40
+ function getKaminoCdnRetry(logger, errorLevel) {
41
+ return {
42
+ maxDelay: 1000,
43
+ numOfAttempts: 3,
44
+ startingDelay: 10,
45
+ retry: (e, attemptNumber) => {
46
+ log(logger, errorLevel, `kamino CDN call #${attemptNumber} failed, retrying with exponential backoff...`, e);
47
+ return true;
48
+ },
49
+ };
50
+ }
51
+ function getKaminoApiRetry(logger, errorLevel, apiUrl) {
52
+ return {
53
+ maxDelay: 1000,
54
+ numOfAttempts: 3,
55
+ startingDelay: 10,
56
+ retry: (e, attemptNumber) => {
57
+ log(logger, errorLevel, `${apiUrl} call #${attemptNumber} failed, retrying with exponential backoff...`, e);
58
+ return true;
59
+ },
60
+ };
61
+ }
62
+ function log(logger, errorLevel, msg, ...meta) {
63
+ if (errorLevel !== Logger_1.LogLevel.NONE) {
64
+ logger[errorLevel](msg, ...meta);
65
+ }
66
+ }
65
67
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":";;;;;;AA0BA,8CAqBC;AA9CD,kDAA0B;AAC1B,wCAAuD;AACvD,oCAAwD;AACxD,6DAA+D;AAC/D,gCAAoC;AAYpC;;;;;;;;GAQG;AACI,KAAK,UAAU,iBAAiB,CACrC,EAAE,SAAS,GAAG,gBAAU,EAAE,MAAM,GAAG,KAAK,EAAE,UAAU,KAAwB,EAAE,EAC9E,gBAAkC,EAAE;IAEpC,IAAI,iBAAiB,GAAe,EAAgB,CAAC;IACrD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,iBAAiB,GAAG,CAAC,MAAM,IAAA,6BAAO,EAAC,GAAG,EAAE,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,oBAAY,6BAA6B,CAAC,EAAE,wBAAgB,CAAC,CAAC;aACjH,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAe,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,iBAAiB,IAAI,IAAA,uBAAa,EAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC3D,iBAAiB,GAAG,CAAC,MAAM,IAAA,6BAAO,EAAC,GAAG,EAAE,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,wBAAgB,CAAC,CAAC,CAAC,IAAkB,CAAC;IAC1G,CAAC;IAED,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,IAAI,aAAa,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,gBAAgB,GAA6B;IACxD,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,CAAC,CAAM,EAAE,aAAqB,EAAE,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC;YACX,aAAa;YACb,OAAO,EAAE,8DAA8D;SACxE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEW,QAAA,gBAAgB,GAA6B;IACxD,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,CAAC,CAAM,EAAE,aAAqB,EAAE,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC;YACX,aAAa;YACb,OAAO,EAAE,sEAAsE;SAChF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":";;;;;AAwCA,8CA4BC;AAnED,kDAA0B;AAC1B,wCAAuD;AACvD,oCAAwD;AACxD,6DAA+D;AAC/D,gCAAoC;AACpC,qCAA4C;AAuB5C;;;;;;;;;;GAUG;AACI,KAAK,UAAU,iBAAiB,CAAC,EACtC,GAAG,EAAE,EAAE,SAAS,GAAG,gBAAU,EAAE,MAAM,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,EAChE,MAAM,EAAE,aAAa,GAAG,EAAE,EAC1B,GAAG,EAAE,EAAE,MAAM,GAAG,OAAO,EAAE,UAAU,GAAG,iBAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,MACrC,EAAE;IACvB,IAAI,iBAAiB,GAAe,EAAgB,CAAC;IACrD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,iBAAiB,GAAG,CAClB,MAAM,IAAA,6BAAO,EACX,GAAG,EAAE,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,oBAAY,6BAA6B,CAAC,EAC7D,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CACtC,CACF,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAe,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,iBAAiB,IAAI,IAAA,uBAAa,EAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC3D,iBAAiB,GAAG,CAClB,MAAM,IAAA,6BAAO,EAAC,GAAG,EAAE,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAClG,CAAC,IAAkB,CAAC;IACvB,CAAC;IAED,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,IAAI,aAAa,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,UAAoB;IAC7D,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,CAAC,CAAM,EAAE,aAAqB,EAAE,EAAE;YACvC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,oBAAoB,aAAa,+CAA+C,EAAE,CAAC,CAAC,CAAC;YAC7G,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,UAAoB,EAAE,MAAc;IAC7E,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,CAAC,CAAM,EAAE,aAAqB,EAAE,EAAE;YACvC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,UAAU,aAAa,+CAA+C,EAAE,CAAC,CAAC,CAAC;YAC5G,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,MAAc,EAAE,UAAoB,EAAE,GAAW,EAAE,GAAG,IAAW;IAC5E,IAAI,UAAU,KAAK,iBAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
@@ -5,10 +5,10 @@ export type KaminoUserMetadata = {
5
5
  address: Address;
6
6
  state: UserMetadata;
7
7
  };
8
- export declare const getUserLutAddressAndSetupIxs: (kaminoMarket: KaminoMarket, user: TransactionSigner, referrer?: Option<Address>, withExtendLut?: boolean, multiplyMints?: {
8
+ export declare const getUserLutAddressAndSetupIxs: (kaminoMarket: KaminoMarket, user: TransactionSigner, referrer?: Option<Address>, withExtendLut?: boolean, multiplyReserveAddresses?: {
9
9
  coll: Address;
10
10
  debt: Address;
11
- }[], leverageMints?: {
11
+ }[], leverageReserveAddresses?: {
12
12
  coll: Address;
13
13
  debt: Address;
14
14
  }[], repayWithCollObligation?: KaminoObligation | undefined, payer?: TransactionSigner) => Promise<[Address, Instruction[][]]>;
@@ -1 +1 @@
1
- {"version":3,"file":"userMetadata.d.ts","sourceRoot":"","sources":["../../src/utils/userMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,WAAW,EAGX,GAAG,EACH,qBAAqB,EACrB,8BAA8B,EAC9B,gCAAgC,EAChC,iBAAiB,EACjB,MAAM,EAEP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAUL,YAAY,EAGb,MAAM,QAAQ,CAAC;AAOhB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,cAAc,YAAY,EAC1B,MAAM,iBAAiB,EACvB,WAAU,MAAM,CAAC,OAAO,CAAU,EAClC,gBAAe,OAAc,EAC7B,gBAAe;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EAAO,EACtD,gBAAe;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EAAO,EACtD,0BAAyB,gBAAgB,GAAG,SAAqB,EACjE,QAAO,iBAAwB,KAC9B,OAAO,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAyDpC,CAAC;AAsQF,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,GAAG,CAAC,qBAAqB,CAAC,EAC/B,MAAM,EAAE,CAAC,gCAAgC,GAAG,8BAA8B,CAAC,EAAE,EAC7E,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA4B/B"}
1
+ {"version":3,"file":"userMetadata.d.ts","sourceRoot":"","sources":["../../src/utils/userMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,WAAW,EAGX,GAAG,EACH,qBAAqB,EACrB,8BAA8B,EAC9B,gCAAgC,EAChC,iBAAiB,EACjB,MAAM,EAEP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAUL,YAAY,EAKb,MAAM,QAAQ,CAAC;AAOhB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,cAAc,YAAY,EAC1B,MAAM,iBAAiB,EACvB,WAAU,MAAM,CAAC,OAAO,CAAU,EAClC,gBAAe,OAAc,EAC7B,2BAA0B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EAAO,EACjE,2BAA0B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EAAO,EACjE,0BAAyB,gBAAgB,GAAG,SAAqB,EACjE,QAAO,iBAAwB,KAC9B,OAAO,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAyDpC,CAAC;AAsSF,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,GAAG,CAAC,qBAAqB,CAAC,EAC/B,MAAM,EAAE,CAAC,gCAAgC,GAAG,8BAA8B,CAAC,EAAE,EAC7E,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA4B/B"}
@@ -8,7 +8,7 @@ const buffer_1 = require("buffer");
8
8
  const system_1 = require("@solana-program/system");
9
9
  const sysvars_1 = require("@solana/sysvars");
10
10
  const address_lookup_table_1 = require("@solana-program/address-lookup-table");
11
- const getUserLutAddressAndSetupIxs = async (kaminoMarket, user, referrer = (0, kit_1.none)(), withExtendLut = true, multiplyMints = [], leverageMints = [], repayWithCollObligation = undefined, payer = user) => {
11
+ const getUserLutAddressAndSetupIxs = async (kaminoMarket, user, referrer = (0, kit_1.none)(), withExtendLut = true, multiplyReserveAddresses = [], leverageReserveAddresses = [], repayWithCollObligation = undefined, payer = user) => {
12
12
  const [userMetadataAddress, userMetadataState] = await kaminoMarket.getUserMetadata(user.address);
13
13
  const initUserMetadataIxs = [];
14
14
  let userLookupTableAddress;
@@ -36,7 +36,7 @@ const getUserLutAddressAndSetupIxs = async (kaminoMarket, user, referrer = (0, k
36
36
  }
37
37
  const setupUserMetadataIxs = [initUserMetadataIxs];
38
38
  if (withExtendLut) {
39
- const dedupUserLutAddresses = await getDedupUserLookupTableAddresses(kaminoMarket, userLookupTableAddress, user.address, referrer, multiplyMints, leverageMints, userMetadataState !== null, repayWithCollObligation);
39
+ const dedupUserLutAddresses = await getDedupUserLookupTableAddresses(kaminoMarket, userLookupTableAddress, user.address, referrer, multiplyReserveAddresses, leverageReserveAddresses, userMetadataState !== null, repayWithCollObligation);
40
40
  const extendLookupTableChunkIxs = (0, lib_1.extendLookupTableIxs)(user, userLookupTableAddress, dedupUserLutAddresses, payer);
41
41
  for (const extendLutIx of extendLookupTableChunkIxs) {
42
42
  setupUserMetadataIxs.push([extendLutIx]);
@@ -45,8 +45,8 @@ const getUserLutAddressAndSetupIxs = async (kaminoMarket, user, referrer = (0, k
45
45
  return [userLookupTableAddress, setupUserMetadataIxs];
46
46
  };
47
47
  exports.getUserLutAddressAndSetupIxs = getUserLutAddressAndSetupIxs;
48
- const getDedupUserLookupTableAddresses = async (kaminoMarket, tableAddress, user, referrer, multiplyMints = [], leverageMints = [], tableExists, repayWithCollObligation = undefined) => {
49
- const requiredAddresses = await getUserLookupTableAddresses(kaminoMarket, user, referrer, multiplyMints, leverageMints, repayWithCollObligation);
48
+ const getDedupUserLookupTableAddresses = async (kaminoMarket, tableAddress, user, referrer, multiplyReserveAddresses = [], leverageReserveAddresses = [], tableExists, repayWithCollObligation = undefined) => {
49
+ const requiredAddresses = await getUserLookupTableAddresses(kaminoMarket, user, referrer, multiplyReserveAddresses, leverageReserveAddresses, repayWithCollObligation);
50
50
  if (tableExists) {
51
51
  const userLookupTable = (await (0, address_lookup_table_1.fetchAddressLookupTable)(kaminoMarket.getRpc(), tableAddress)).data;
52
52
  const addressesAndLogsNotInLut = requiredAddresses.filter((addressAndLogs) => userLookupTable.addresses.filter((a) => a === addressAndLogs.address).length === 0);
@@ -65,19 +65,28 @@ const getDedupUserLookupTableAddresses = async (kaminoMarket, tableAddress, user
65
65
  return [...new Set(addressNotInLut)];
66
66
  }
67
67
  };
68
- const getUserLookupTableAddresses = async (kaminoMarket, user, referrer, multiplyMints = [], leverageMints = [], repayWithCollObligation = undefined) => {
68
+ const getUserLookupTableAddresses = async (kaminoMarket, user, referrer, multiplyReserveAddresses = [], leverageReserveAddresses = [], repayWithCollObligation = undefined) => {
69
69
  const addresses = [];
70
70
  addresses.push({ address: user, log: 'user address' });
71
71
  const [userMetadataAddress] = await (0, lib_1.userMetadataPda)(user, kaminoMarket.programId);
72
72
  addresses.push({ address: userMetadataAddress, log: 'userMetadata address' });
73
73
  const allMints = [];
74
- multiplyMints.forEach(({ coll: collMint, debt: debtMint }) => {
75
- allMints.push(collMint);
76
- allMints.push(debtMint);
74
+ const allReserves = [];
75
+ multiplyReserveAddresses.forEach(({ coll: collReserveAddress, debt: debtReserveAddress }) => {
76
+ const collReserveMint = kaminoMarket.getExistingReserveByAddress(collReserveAddress).getLiquidityMint();
77
+ const debtReserveMint = kaminoMarket.getExistingReserveByAddress(debtReserveAddress).getLiquidityMint();
78
+ allMints.push(collReserveMint);
79
+ allMints.push(debtReserveMint);
80
+ allReserves.push(collReserveAddress);
81
+ allReserves.push(debtReserveAddress);
77
82
  });
78
- leverageMints.forEach(({ coll: collMint, debt: debtMint }) => {
79
- allMints.push(collMint);
80
- allMints.push(debtMint);
83
+ leverageReserveAddresses.forEach(({ coll: collReserveAddress, debt: debtReserveAddress }) => {
84
+ const collReserveMint = kaminoMarket.getExistingReserveByAddress(collReserveAddress).getLiquidityMint();
85
+ const debtReserveMint = kaminoMarket.getExistingReserveByAddress(debtReserveAddress).getLiquidityMint();
86
+ allMints.push(collReserveMint);
87
+ allMints.push(debtReserveMint);
88
+ allReserves.push(collReserveAddress);
89
+ allReserves.push(debtReserveAddress);
81
90
  });
82
91
  if (repayWithCollObligation) {
83
92
  repayWithCollObligation.borrows.forEach((borrow) => {
@@ -88,9 +97,10 @@ const getUserLookupTableAddresses = async (kaminoMarket, user, referrer, multipl
88
97
  });
89
98
  }
90
99
  const dedupMints = [...new Set(allMints)];
100
+ const dedupReserveAddresses = [...new Set(allReserves)];
91
101
  const reserves = [];
92
- dedupMints.forEach((mint) => {
93
- const kaminoReserve = kaminoMarket.getReserveByMint(mint);
102
+ dedupReserveAddresses.forEach((reserveAddress) => {
103
+ const kaminoReserve = kaminoMarket.getReserveByAddress(reserveAddress);
94
104
  if (kaminoReserve) {
95
105
  reserves.push(kaminoReserve);
96
106
  }
@@ -127,10 +137,10 @@ const getUserLookupTableAddresses = async (kaminoMarket, user, referrer, multipl
127
137
  }));
128
138
  addresses.push(...referrerTokenStates);
129
139
  }
130
- const [multiplyObligations, multiplyObligationsFarmUserStates] = await getMultiplyObligationAndObligationFarmStateAddresses(kaminoMarket, user, multiplyMints);
140
+ const [multiplyObligations, multiplyObligationsFarmUserStates] = await getMultiplyObligationAndObligationFarmStateAddresses(kaminoMarket, user, multiplyReserveAddresses);
131
141
  addresses.push(...multiplyObligations);
132
142
  addresses.push(...multiplyObligationsFarmUserStates);
133
- const [leverageObligations, leverageObligationsFarmUserStates] = await getLeverageObligationAndObligationFarmStateAddresses(kaminoMarket, user, leverageMints);
143
+ const [leverageObligations, leverageObligationsFarmUserStates] = await getLeverageObligationAndObligationFarmStateAddresses(kaminoMarket, user, leverageReserveAddresses);
134
144
  addresses.push(...leverageObligations);
135
145
  addresses.push(...leverageObligationsFarmUserStates);
136
146
  if (repayWithCollObligation) {
@@ -140,12 +150,14 @@ const getUserLookupTableAddresses = async (kaminoMarket, user, referrer, multipl
140
150
  }
141
151
  return addresses;
142
152
  };
143
- async function getMultiplyObligationAndObligationFarmStateAddresses(kaminoMarket, user, mints) {
153
+ async function getMultiplyObligationAndObligationFarmStateAddresses(kaminoMarket, user, reserveAddresses) {
144
154
  const obligationPdas = [];
145
155
  const farmUserStates = [];
146
- for (const { coll: collMint, debt: debtMint } of mints) {
147
- const collReserve = kaminoMarket.getReserveByMint(collMint);
148
- const debtReserve = kaminoMarket.getReserveByMint(debtMint);
156
+ for (const { coll: collReserveAddress, debt: debtReserveAddress } of reserveAddresses) {
157
+ const collReserve = kaminoMarket.getReserveByAddress(collReserveAddress);
158
+ const debtReserve = kaminoMarket.getReserveByAddress(debtReserveAddress);
159
+ const collMint = collReserve.getLiquidityMint();
160
+ const debtMint = debtReserve.getLiquidityMint();
149
161
  const collMintString = collMint.toString();
150
162
  const debtMintString = debtMint.toString();
151
163
  if (collReserve && debtReserve) {
@@ -154,6 +166,11 @@ async function getMultiplyObligationAndObligationFarmStateAddresses(kaminoMarket
154
166
  address: await multiplyObligation.toPda(kaminoMarket.getAddress(), user),
155
167
  log: 'multiply obligation coll: ' + collMintString + ' debt: ' + debtMintString,
156
168
  });
169
+ const multiplyObligationFixedRate = new lib_1.MultiplyObligationFixedRate(collReserveAddress, debtReserveAddress, kaminoMarket.programId);
170
+ obligationPdas.push({
171
+ address: await multiplyObligationFixedRate.toPda(kaminoMarket.getAddress(), user),
172
+ log: 'multiply obligation fixed rate coll: ' + collReserveAddress + ' debt: ' + debtReserveAddress,
173
+ });
157
174
  if (collReserve.state.farmCollateral !== lib_1.DEFAULT_PUBLIC_KEY) {
158
175
  farmUserStates.push({
159
176
  address: await (0, lib_1.obligationFarmStatePda)(collReserve.state.farmCollateral, await multiplyObligation.toPda(kaminoMarket.getAddress(), user)),
@@ -170,12 +187,14 @@ async function getMultiplyObligationAndObligationFarmStateAddresses(kaminoMarket
170
187
  }
171
188
  return [obligationPdas, farmUserStates];
172
189
  }
173
- async function getLeverageObligationAndObligationFarmStateAddresses(kaminoMarket, user, mints) {
190
+ async function getLeverageObligationAndObligationFarmStateAddresses(kaminoMarket, user, reserveAddresses) {
174
191
  const obligationPdas = [];
175
192
  const farmUserStates = [];
176
- for (const { coll: collMint, debt: debtMint } of mints) {
177
- const collReserve = kaminoMarket.getReserveByMint(collMint);
178
- const debtReserve = kaminoMarket.getReserveByMint(debtMint);
193
+ for (const { coll: collReserveAddress, debt: debtReserveAddress } of reserveAddresses) {
194
+ const collReserve = kaminoMarket.getReserveByAddress(collReserveAddress);
195
+ const debtReserve = kaminoMarket.getReserveByAddress(debtReserveAddress);
196
+ const collMint = collReserve.getLiquidityMint();
197
+ const debtMint = debtReserve.getLiquidityMint();
179
198
  const collMintString = collMint.toString();
180
199
  const debtMintString = debtMint.toString();
181
200
  if (collReserve && debtReserve) {
@@ -184,6 +203,11 @@ async function getLeverageObligationAndObligationFarmStateAddresses(kaminoMarket
184
203
  address: await leverageObligation.toPda(kaminoMarket.getAddress(), user),
185
204
  log: 'leverage obligation coll: ' + collMintString + ' debt: ' + debtMintString,
186
205
  });
206
+ const leverageObligationFixedRate = new lib_1.LeverageObligationFixedRate(collReserveAddress, debtReserveAddress, kaminoMarket.programId);
207
+ obligationPdas.push({
208
+ address: await leverageObligationFixedRate.toPda(kaminoMarket.getAddress(), user),
209
+ log: 'leverage obligation fixed rate coll: ' + collReserveAddress + ' debt: ' + debtReserveAddress,
210
+ });
187
211
  if (collReserve.state.farmCollateral !== lib_1.DEFAULT_PUBLIC_KEY) {
188
212
  farmUserStates.push({
189
213
  address: await (0, lib_1.obligationFarmStatePda)(collReserve.state.farmCollateral, await leverageObligation.toPda(kaminoMarket.getAddress(), user)),
@@ -204,7 +228,7 @@ async function getRepayWithCollObligationFarmStateAddresses(kaminoMarket, obliga
204
228
  const farmUserStates = [];
205
229
  const obligationString = obligation.obligationAddress.toString();
206
230
  for (const borrow of obligation.getBorrows()) {
207
- const borrowReserve = kaminoMarket.getReserveByMint(borrow.mintAddress);
231
+ const borrowReserve = kaminoMarket.getReserveByAddress(borrow.reserveAddress);
208
232
  if (borrowReserve.state.farmDebt !== lib_1.DEFAULT_PUBLIC_KEY) {
209
233
  farmUserStates.push({
210
234
  address: await (0, lib_1.obligationFarmStatePda)(borrowReserve.state.farmDebt, obligation.obligationAddress),
@@ -213,7 +237,7 @@ async function getRepayWithCollObligationFarmStateAddresses(kaminoMarket, obliga
213
237
  }
214
238
  }
215
239
  for (const deposit of obligation.getDeposits()) {
216
- const depositReserve = kaminoMarket.getReserveByMint(deposit.mintAddress);
240
+ const depositReserve = kaminoMarket.getReserveByAddress(deposit.reserveAddress);
217
241
  if (depositReserve.state.farmCollateral !== lib_1.DEFAULT_PUBLIC_KEY) {
218
242
  farmUserStates.push({
219
243
  address: await (0, lib_1.obligationFarmStatePda)(depositReserve.state.farmCollateral, obligation.obligationAddress),