@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.
- package/dist/classes/action.d.ts +21 -91
- package/dist/classes/action.d.ts.map +1 -1
- package/dist/classes/action.js +152 -139
- package/dist/classes/action.js.map +1 -1
- package/dist/classes/actionTypes.d.ts +310 -0
- package/dist/classes/actionTypes.d.ts.map +1 -0
- package/dist/classes/actionTypes.js +3 -0
- package/dist/classes/actionTypes.js.map +1 -0
- package/dist/classes/configItems.d.ts +1 -6
- package/dist/classes/configItems.d.ts.map +1 -1
- package/dist/classes/configItems.js +1 -93
- package/dist/classes/configItems.js.map +1 -1
- package/dist/classes/farm_utils.d.ts +1 -1
- package/dist/classes/farm_utils.d.ts.map +1 -1
- package/dist/classes/farm_utils.js +3 -1
- package/dist/classes/farm_utils.js.map +1 -1
- package/dist/classes/market.d.ts +15 -10
- package/dist/classes/market.d.ts.map +1 -1
- package/dist/classes/market.js +49 -26
- package/dist/classes/market.js.map +1 -1
- package/dist/classes/obligation.d.ts +9 -9
- package/dist/classes/obligation.d.ts.map +1 -1
- package/dist/classes/obligation.js +48 -50
- package/dist/classes/obligation.js.map +1 -1
- package/dist/classes/obligationOrder.d.ts.map +1 -1
- package/dist/classes/obligationOrder.js +6 -3
- package/dist/classes/obligationOrder.js.map +1 -1
- package/dist/classes/reserve.d.ts +7 -3
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +31 -43
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/shared.d.ts +3 -2
- package/dist/classes/shared.d.ts.map +1 -1
- package/dist/classes/vault.d.ts +28 -1
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +103 -6
- package/dist/classes/vault.js.map +1 -1
- package/dist/classes/vault_types.d.ts +2 -1
- package/dist/classes/vault_types.d.ts.map +1 -1
- package/dist/client/commands/borrow.d.ts +1 -1
- package/dist/client/commands/borrow.d.ts.map +1 -1
- package/dist/client/commands/borrow.js +11 -2
- package/dist/client/commands/borrow.js.map +1 -1
- package/dist/client/commands/deposit.d.ts +1 -1
- package/dist/client/commands/deposit.d.ts.map +1 -1
- package/dist/client/commands/deposit.js +11 -2
- package/dist/client/commands/deposit.js.map +1 -1
- package/dist/client/commands/printReserve.d.ts +1 -1
- package/dist/client/commands/printReserve.d.ts.map +1 -1
- package/dist/client/commands/printReserve.js +2 -4
- package/dist/client/commands/printReserve.js.map +1 -1
- package/dist/client/commands/repay.d.ts +1 -1
- package/dist/client/commands/repay.d.ts.map +1 -1
- package/dist/client/commands/repay.js +12 -2
- package/dist/client/commands/repay.js.map +1 -1
- package/dist/client/commands/withdraw.d.ts +1 -1
- package/dist/client/commands/withdraw.d.ts.map +1 -1
- package/dist/client/commands/withdraw.js +11 -2
- package/dist/client/commands/withdraw.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_calcs.d.ts +1 -1
- package/dist/lending_operations/repay_with_collateral_calcs.d.ts.map +1 -1
- package/dist/lending_operations/repay_with_collateral_calcs.js +2 -2
- package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.d.ts +4 -4
- package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.js +43 -10
- package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.d.ts +4 -4
- package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
- package/dist/lending_operations/swap_collateral_operations.js +40 -21
- package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
- package/dist/leverage/operations.d.ts +6 -6
- package/dist/leverage/operations.d.ts.map +1 -1
- package/dist/leverage/operations.js +167 -52
- package/dist/leverage/operations.js.map +1 -1
- package/dist/leverage/types.d.ts +2 -2
- package/dist/leverage/types.d.ts.map +1 -1
- package/dist/manager/client_kamino_manager.js +0 -2
- package/dist/manager/client_kamino_manager.js.map +1 -1
- package/dist/obligation_orders/price_based.js +5 -3
- package/dist/obligation_orders/price_based.js.map +1 -1
- package/dist/utils/Logger.d.ts +14 -0
- package/dist/utils/Logger.d.ts.map +1 -0
- package/dist/utils/Logger.js +12 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/ObligationType.d.ts +33 -1
- package/dist/utils/ObligationType.d.ts.map +1 -1
- package/dist/utils/ObligationType.js +81 -2
- package/dist/utils/ObligationType.js.map +1 -1
- package/dist/utils/api.d.ts +13 -4
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js +33 -31
- package/dist/utils/api.js.map +1 -1
- package/dist/utils/userMetadata.d.ts +2 -2
- package/dist/utils/userMetadata.d.ts.map +1 -1
- package/dist/utils/userMetadata.js +49 -25
- package/dist/utils/userMetadata.js.map +1 -1
- package/dist/utils/validations.d.ts +1 -0
- package/dist/utils/validations.d.ts.map +1 -1
- package/dist/utils/validations.js +5 -0
- package/dist/utils/validations.js.map +1 -1
- package/package.json +1 -1
- package/src/classes/action.ts +346 -372
- package/src/classes/actionTypes.ts +295 -0
- package/src/classes/configItems.ts +1 -99
- package/src/classes/farm_utils.ts +5 -1
- package/src/classes/market.ts +74 -31
- package/src/classes/obligation.ts +54 -53
- package/src/classes/obligationOrder.ts +6 -3
- package/src/classes/reserve.ts +118 -122
- package/src/classes/shared.ts +4 -2
- package/src/classes/vault.ts +160 -7
- package/src/classes/vault_types.ts +2 -1
- package/src/client/client.ts +17 -18
- package/src/client/commands/borrow.ts +10 -9
- package/src/client/commands/deposit.ts +10 -9
- package/src/client/commands/printReserve.ts +2 -4
- package/src/client/commands/repay.ts +11 -10
- package/src/client/commands/withdraw.ts +15 -9
- package/src/lending_operations/repay_with_collateral_calcs.ts +3 -4
- package/src/lending_operations/repay_with_collateral_operations.ts +40 -38
- package/src/lending_operations/swap_collateral_operations.ts +47 -41
- package/src/leverage/operations.ts +168 -129
- package/src/leverage/types.ts +2 -2
- package/src/manager/client_kamino_manager.ts +0 -2
- package/src/obligation_orders/price_based.ts +7 -5
- package/src/utils/Logger.ts +14 -0
- package/src/utils/ObligationType.ts +92 -1
- package/src/utils/api.ts +56 -33
- package/src/utils/userMetadata.ts +64 -30
- 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;
|
|
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:
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"ObligationType.js","sourceRoot":"","sources":["../../src/utils/ObligationType.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/api.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Address } from '@solana/kit';
|
|
2
2
|
import { ConfigType } from '../classes';
|
|
3
|
-
import {
|
|
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 }
|
|
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
|
package/dist/utils/api.d.ts.map
CHANGED
|
@@ -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;
|
|
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`),
|
|
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),
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
package/dist/utils/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"
|
|
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,
|
|
8
|
+
export declare const getUserLutAddressAndSetupIxs: (kaminoMarket: KaminoMarket, user: TransactionSigner, referrer?: Option<Address>, withExtendLut?: boolean, multiplyReserveAddresses?: {
|
|
9
9
|
coll: Address;
|
|
10
10
|
debt: Address;
|
|
11
|
-
}[],
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
49
|
-
const requiredAddresses = await getUserLookupTableAddresses(kaminoMarket, user, referrer,
|
|
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,
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
93
|
-
const kaminoReserve = kaminoMarket.
|
|
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,
|
|
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,
|
|
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,
|
|
153
|
+
async function getMultiplyObligationAndObligationFarmStateAddresses(kaminoMarket, user, reserveAddresses) {
|
|
144
154
|
const obligationPdas = [];
|
|
145
155
|
const farmUserStates = [];
|
|
146
|
-
for (const { coll:
|
|
147
|
-
const collReserve = kaminoMarket.
|
|
148
|
-
const debtReserve = kaminoMarket.
|
|
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,
|
|
190
|
+
async function getLeverageObligationAndObligationFarmStateAddresses(kaminoMarket, user, reserveAddresses) {
|
|
174
191
|
const obligationPdas = [];
|
|
175
192
|
const farmUserStates = [];
|
|
176
|
-
for (const { coll:
|
|
177
|
-
const collReserve = kaminoMarket.
|
|
178
|
-
const debtReserve = kaminoMarket.
|
|
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.
|
|
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.
|
|
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),
|