@haven-fi/solauto-sdk 1.0.671 → 1.0.673
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/README.md +1 -0
- package/dist/services/solauto/solautoClient.d.ts.map +1 -1
- package/dist/services/solauto/solautoClient.js +0 -20
- package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts +3 -0
- package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts.map +1 -1
- package/dist/solautoPosition/marginfiSolautoPositionEx.js +17 -0
- package/dist/solautoPosition/solautoPositionEx.d.ts +1 -3
- package/dist/solautoPosition/solautoPositionEx.d.ts.map +1 -1
- package/dist/solautoPosition/solautoPositionEx.js +0 -9
- package/package.json +1 -1
- package/src/services/solauto/solautoClient.ts +0 -21
- package/src/solautoPosition/marginfiSolautoPositionEx.ts +40 -0
- package/src/solautoPosition/solautoPositionEx.ts +0 -12
- package/tests/transactions/shared.ts +2 -0
- package/tests/unit/rebalanceCalculations.ts +3 -1
package/README.md
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoClient.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAA6B,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EACL,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,gCAAgC,EAEhC,sBAAsB,EAGvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAKL,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,8BAAsB,aAAc,SAAQ,oBAAoB;IACvD,eAAe,EAAG,eAAe,CAAC;IAClC,KAAK,EAAG,UAAU,CAAC;IAEnB,SAAS,EAAG,SAAS,CAAC;IAEtB,GAAG,EAAG,iBAAiB,CAAC;IAExB,gBAAgB,EAAG,SAAS,CAAC;IAC7B,cAAc,EAAG,SAAS,CAAC;IAE3B,cAAc,EAAG,SAAS,CAAC;IAC3B,YAAY,EAAG,SAAS,CAAC;IAEzB,mBAAmB,EAAG,SAAS,CAAC;IAChC,iBAAiB,EAAG,SAAS,CAAC;IAE9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAEhC,UAAU,EAAG,oBAAoB,CAAC;IAClC,cAAc,EAAE,cAAc,CAAwB;IAE7D,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAqB;IAExC,UAAU,CAAC,IAAI,EAAE,iBAAiB;IAyExC,kBAAkB,IAAI,SAAS,GAAG,SAAS;IAO3C,gBAAgB,IAAI,SAAS,GAAG,SAAS;IAOnC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO;
|
1
|
+
{"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoClient.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAA6B,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EACL,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,gCAAgC,EAEhC,sBAAsB,EAGvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAKL,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,8BAAsB,aAAc,SAAQ,oBAAoB;IACvD,eAAe,EAAG,eAAe,CAAC;IAClC,KAAK,EAAG,UAAU,CAAC;IAEnB,SAAS,EAAG,SAAS,CAAC;IAEtB,GAAG,EAAG,iBAAiB,CAAC;IAExB,gBAAgB,EAAG,SAAS,CAAC;IAC7B,cAAc,EAAG,SAAS,CAAC;IAE3B,cAAc,EAAG,SAAS,CAAC;IAC3B,YAAY,EAAG,SAAS,CAAC;IAEzB,mBAAmB,EAAG,SAAS,CAAC;IAChC,iBAAiB,EAAG,SAAS,CAAC;IAE9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAEhC,UAAU,EAAG,oBAAoB,CAAC;IAClC,cAAc,EAAE,cAAc,CAAwB;IAE7D,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAqB;IAExC,UAAU,CAAC,IAAI,EAAE,iBAAiB;IAyExC,kBAAkB,IAAI,SAAS,GAAG,SAAS;IAO3C,gBAAgB,IAAI,SAAS,GAAG,SAAS;IAOnC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO;IAe1C,mBAAmB,IAAI,MAAM,EAAE;IAS/B,gBAAgB,IAAI,SAAS,EAAE;IAezB,iCAAiC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAUzD,iBAAiB,IAAI,OAAO,CAC9B;QACE,EAAE,EAAE,kBAAkB,CAAC;QACvB,GAAG,EAAE,OAAO,CAAC;QACb,aAAa,EAAE,SAAS,EAAE,CAAC;KAC5B,GACD,SAAS,CACZ;IAgEK,cAAc,IAAI,OAAO,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAgBF,cAAc,CACZ,QAAQ,CAAC,EAAE,gCAAgC,EAC3C,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IA0BrB,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB;IAsDlE,QAAQ,CAAC,eAAe,IAAI,kBAAkB;IAE9C,WAAW,IAAI,kBAAkB;IAcjC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;IAE5D,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAqFlE,QAAQ,CAAC,WAAW,CAClB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,gBAAgB,GACrB,kBAAkB;CACtB"}
|
@@ -69,9 +69,6 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
69
69
|
if (this.contextUpdates.settings) {
|
70
70
|
this.pos.updateSettings(this.contextUpdates.settings);
|
71
71
|
}
|
72
|
-
if (this.contextUpdates.dca) {
|
73
|
-
this.pos.updateDca(this.contextUpdates.dca);
|
74
|
-
}
|
75
72
|
// All other live position updates can be derived by getting a fresh position state, so we don't need to do anything else form contextUpdates
|
76
73
|
}
|
77
74
|
}
|
@@ -238,23 +235,6 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
238
235
|
let dcaMint = undefined;
|
239
236
|
let positionDcaTa = undefined;
|
240
237
|
let signerDcaTa = undefined;
|
241
|
-
const currDca = this.pos.dca;
|
242
|
-
if (currDca.dcaInBaseUnit > 0) {
|
243
|
-
if (currDca.tokenType === generated_1.TokenType.Supply) {
|
244
|
-
dcaMint = (0, umi_1.publicKey)(this.pos.supplyMint);
|
245
|
-
positionDcaTa = (0, umi_1.publicKey)(this.positionSupplyTa);
|
246
|
-
signerDcaTa = (0, umi_1.publicKey)(this.signerSupplyTa);
|
247
|
-
}
|
248
|
-
else {
|
249
|
-
dcaMint = (0, umi_1.publicKey)(this.pos.debtMint);
|
250
|
-
positionDcaTa = (0, umi_1.publicKey)(this.positionDebtTa);
|
251
|
-
signerDcaTa = (0, umi_1.publicKey)(this.signerDebtTa);
|
252
|
-
}
|
253
|
-
this.contextUpdates.new({
|
254
|
-
type: "cancellingDca",
|
255
|
-
value: this.pos.dca.tokenType,
|
256
|
-
});
|
257
|
-
}
|
258
238
|
return (0, generated_1.cancelDCA)(this.umi, {
|
259
239
|
signer: this.signer,
|
260
240
|
solautoPosition: (0, umi_1.publicKey)(this.pos.publicKey),
|
@@ -9,6 +9,9 @@ export declare class MarginfiSolautoPositionEx extends SolautoPositionEx {
|
|
9
9
|
getBanks(): Promise<Bank[]>;
|
10
10
|
priceOracles(): Promise<PublicKey[]>;
|
11
11
|
maxLtvAndLiqThresholdBps(): Promise<[number, number]>;
|
12
|
+
private getUpToDateLiquidityAvailable;
|
13
|
+
updateSupplyLiquidityDepositable(banks: Bank[]): void;
|
14
|
+
updateDebtLiquidityAvailable(banks: Bank[]): void;
|
12
15
|
get supplyLiquidityAvailable(): number;
|
13
16
|
refreshPositionState(priceType?: PriceType): Promise<void>;
|
14
17
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"marginfiSolautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/marginfiSolautoPositionEx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAoB,MAAM,iBAAiB,CAAC;
|
1
|
+
{"version":3,"file":"marginfiSolautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/marginfiSolautoPositionEx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAoB,MAAM,iBAAiB,CAAC;AAezD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1D,qBAAa,yBAA0B,SAAQ,iBAAiB;IAC9D,eAAe,kBAA4B;IAE3C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAqB;IAE/B,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAgB3B,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IASpC,wBAAwB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAa3D,OAAO,CAAC,6BAA6B;IAwBrC,gCAAgC,CAAC,KAAK,EAAE,IAAI,EAAE;IAK9C,4BAA4B,CAAC,KAAK,EAAE,IAAI,EAAE;IAQ1C,IAAI,wBAAwB,IAAI,MAAM,CAKrC;IAEK,oBAAoB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBjE"}
|
@@ -40,6 +40,23 @@ class MarginfiSolautoPositionEx extends solautoPositionEx_1.SolautoPositionEx {
|
|
40
40
|
const [maxLtvBps, liqThresholdBps] = (0, utils_1.calcMarginfiMaxLtvAndLiqThresholdBps)(supplyBank, debtBank, supplyPrice);
|
41
41
|
return [maxLtvBps, liqThresholdBps];
|
42
42
|
}
|
43
|
+
getUpToDateLiquidityAvailable(banks, mint, availableToDeposit) {
|
44
|
+
const bank = banks.find((x) => x.group.toString() === this.lpPoolAccount.toString() &&
|
45
|
+
x.mint.toString() === mint.toString());
|
46
|
+
const baseUnit = (0, utils_1.getBankLiquidityAvailableBaseUnit)(bank, availableToDeposit);
|
47
|
+
return {
|
48
|
+
baseUnit: baseUnit,
|
49
|
+
baseAmountUsdValue: (0, utils_1.toRoundedUsdValue)((0, utils_1.fromBaseUnit)(baseUnit, (0, utils_1.tokenInfo)(mint).decimals) *
|
50
|
+
((0, utils_1.safeGetPrice)(mint) ?? 0)),
|
51
|
+
};
|
52
|
+
}
|
53
|
+
updateSupplyLiquidityDepositable(banks) {
|
54
|
+
this._data.state.supply.amountCanBeUsed =
|
55
|
+
this.getUpToDateLiquidityAvailable(banks, this.supplyMint, true);
|
56
|
+
}
|
57
|
+
updateDebtLiquidityAvailable(banks) {
|
58
|
+
this._data.state.debt.amountCanBeUsed = this.getUpToDateLiquidityAvailable(banks, this.debtMint, false);
|
59
|
+
}
|
43
60
|
get supplyLiquidityAvailable() {
|
44
61
|
return (0, utils_1.fromBaseUnit)((0, utils_1.getBankLiquidityAvailableBaseUnit)(this.supplyBank, false), this.supplyMintInfo.decimals);
|
45
62
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { PublicKey } from "@solana/web3.js";
|
2
2
|
import { Umi } from "@metaplex-foundation/umi";
|
3
|
-
import {
|
3
|
+
import { LendingPlatform, PositionState, PriceType, SolautoPosition, SolautoSettingsParameters } from "../generated";
|
4
4
|
import { ContextUpdates } from "../utils";
|
5
5
|
import { ProgramEnv, RebalanceAction } from "../types";
|
6
6
|
import { TokenInfo } from "../constants";
|
@@ -53,8 +53,6 @@ export declare abstract class SolautoPositionEx {
|
|
53
53
|
get state(): PositionState;
|
54
54
|
get settings(): SolautoSettingsParameters | undefined;
|
55
55
|
updateSettings(settings: SolautoSettingsParameters): void;
|
56
|
-
get dca(): DCASettings | undefined;
|
57
|
-
updateDca(dca: DCASettings): void;
|
58
56
|
get supplyMint(): PublicKey;
|
59
57
|
get supplyMintInfo(): TokenInfo;
|
60
58
|
get debtMint(): PublicKey;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAK/C,OAAO,
|
1
|
+
{"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"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"}
|
@@ -59,15 +59,6 @@ class SolautoPositionEx {
|
|
59
59
|
updateSettings(settings) {
|
60
60
|
this.data.position.settings = settings;
|
61
61
|
}
|
62
|
-
// TODO: DCA
|
63
|
-
get dca() {
|
64
|
-
// return this.contextUpdates?.dca ?? this.data.position?.dca;
|
65
|
-
return undefined;
|
66
|
-
}
|
67
|
-
// TODO: DCA
|
68
|
-
updateDca(dca) {
|
69
|
-
// this.data.position!.dca = dca;
|
70
|
-
}
|
71
62
|
get supplyMint() {
|
72
63
|
return this._supplyMint ?? (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.state.supply.mint);
|
73
64
|
}
|
package/package.json
CHANGED
@@ -169,9 +169,6 @@ export abstract class SolautoClient extends ReferralStateManager {
|
|
169
169
|
if (this.contextUpdates.settings) {
|
170
170
|
this.pos.updateSettings(this.contextUpdates.settings);
|
171
171
|
}
|
172
|
-
if (this.contextUpdates.dca) {
|
173
|
-
this.pos.updateDca(this.contextUpdates.dca);
|
174
|
-
}
|
175
172
|
// All other live position updates can be derived by getting a fresh position state, so we don't need to do anything else form contextUpdates
|
176
173
|
}
|
177
174
|
}
|
@@ -392,24 +389,6 @@ export abstract class SolautoClient extends ReferralStateManager {
|
|
392
389
|
let positionDcaTa: UmiPublicKey | undefined = undefined;
|
393
390
|
let signerDcaTa: UmiPublicKey | undefined = undefined;
|
394
391
|
|
395
|
-
const currDca = this.pos.dca!;
|
396
|
-
if (currDca.dcaInBaseUnit > 0) {
|
397
|
-
if (currDca.tokenType === TokenType.Supply) {
|
398
|
-
dcaMint = publicKey(this.pos.supplyMint);
|
399
|
-
positionDcaTa = publicKey(this.positionSupplyTa);
|
400
|
-
signerDcaTa = publicKey(this.signerSupplyTa);
|
401
|
-
} else {
|
402
|
-
dcaMint = publicKey(this.pos.debtMint);
|
403
|
-
positionDcaTa = publicKey(this.positionDebtTa);
|
404
|
-
signerDcaTa = publicKey(this.signerDebtTa);
|
405
|
-
}
|
406
|
-
|
407
|
-
this.contextUpdates.new({
|
408
|
-
type: "cancellingDca",
|
409
|
-
value: this.pos.dca!.tokenType,
|
410
|
-
});
|
411
|
-
}
|
412
|
-
|
413
392
|
return cancelDCA(this.umi, {
|
414
393
|
signer: this.signer,
|
415
394
|
solautoPosition: publicKey(this.pos.publicKey),
|
@@ -8,6 +8,9 @@ import {
|
|
8
8
|
getBankLiquidityAvailableBaseUnit,
|
9
9
|
getMarginfiAccountPositionState,
|
10
10
|
getMarginfiPriceOracle,
|
11
|
+
safeGetPrice,
|
12
|
+
tokenInfo,
|
13
|
+
toRoundedUsdValue,
|
11
14
|
validPubkey,
|
12
15
|
} from "../utils";
|
13
16
|
import { getMarginfiAccounts } from "../constants";
|
@@ -58,6 +61,43 @@ export class MarginfiSolautoPositionEx extends SolautoPositionEx {
|
|
58
61
|
return [maxLtvBps, liqThresholdBps];
|
59
62
|
}
|
60
63
|
|
64
|
+
private getUpToDateLiquidityAvailable(
|
65
|
+
banks: Bank[],
|
66
|
+
mint: PublicKey,
|
67
|
+
availableToDeposit: boolean
|
68
|
+
) {
|
69
|
+
const bank = banks.find(
|
70
|
+
(x) =>
|
71
|
+
x.group.toString() === this.lpPoolAccount.toString() &&
|
72
|
+
x.mint.toString() === mint.toString()
|
73
|
+
);
|
74
|
+
|
75
|
+
const baseUnit = getBankLiquidityAvailableBaseUnit(
|
76
|
+
bank!,
|
77
|
+
availableToDeposit
|
78
|
+
);
|
79
|
+
return {
|
80
|
+
baseUnit: baseUnit,
|
81
|
+
baseAmountUsdValue: toRoundedUsdValue(
|
82
|
+
fromBaseUnit(baseUnit, tokenInfo(mint).decimals) *
|
83
|
+
(safeGetPrice(mint) ?? 0)
|
84
|
+
),
|
85
|
+
};
|
86
|
+
}
|
87
|
+
|
88
|
+
updateSupplyLiquidityDepositable(banks: Bank[]) {
|
89
|
+
this._data.state.supply.amountCanBeUsed =
|
90
|
+
this.getUpToDateLiquidityAvailable(banks, this.supplyMint, true);
|
91
|
+
}
|
92
|
+
|
93
|
+
updateDebtLiquidityAvailable(banks: Bank[]) {
|
94
|
+
this._data.state.debt.amountCanBeUsed = this.getUpToDateLiquidityAvailable(
|
95
|
+
banks,
|
96
|
+
this.debtMint,
|
97
|
+
false
|
98
|
+
);
|
99
|
+
}
|
100
|
+
|
61
101
|
get supplyLiquidityAvailable(): number {
|
62
102
|
return fromBaseUnit(
|
63
103
|
getBankLiquidityAvailableBaseUnit(this.supplyBank, false),
|
@@ -5,7 +5,6 @@ import {
|
|
5
5
|
toWeb3JsPublicKey,
|
6
6
|
} from "@metaplex-foundation/umi-web3js-adapters";
|
7
7
|
import {
|
8
|
-
DCASettings,
|
9
8
|
fetchSolautoPosition,
|
10
9
|
LendingPlatform,
|
11
10
|
PositionState,
|
@@ -170,17 +169,6 @@ export abstract class SolautoPositionEx {
|
|
170
169
|
this.data.position!.settings = settings;
|
171
170
|
}
|
172
171
|
|
173
|
-
// TODO: DCA
|
174
|
-
get dca(): DCASettings | undefined {
|
175
|
-
// return this.contextUpdates?.dca ?? this.data.position?.dca;
|
176
|
-
return undefined;
|
177
|
-
}
|
178
|
-
|
179
|
-
// TODO: DCA
|
180
|
-
updateDca(dca: DCASettings) {
|
181
|
-
// this.data.position!.dca = dca;
|
182
|
-
}
|
183
|
-
|
184
172
|
get supplyMint(): PublicKey {
|
185
173
|
return this._supplyMint ?? toWeb3JsPublicKey(this.state.supply.mint);
|
186
174
|
}
|
@@ -21,6 +21,7 @@ import {
|
|
21
21
|
rebalance,
|
22
22
|
withdraw,
|
23
23
|
closeSolautoPosition,
|
24
|
+
getMarginfiAccounts,
|
24
25
|
} from "../../src";
|
25
26
|
|
26
27
|
export async function e2eTransactionTest(
|
@@ -42,6 +43,7 @@ export async function e2eTransactionTest(
|
|
42
43
|
|
43
44
|
await client.initialize({
|
44
45
|
positionId: 1,
|
46
|
+
lpPoolAccount: getMarginfiAccounts().defaultGroup,
|
45
47
|
supplyMint,
|
46
48
|
debtMint,
|
47
49
|
});
|
@@ -20,6 +20,7 @@ import {
|
|
20
20
|
SolautoFeesBps,
|
21
21
|
createFakePositionState,
|
22
22
|
MarginfiSolautoPositionEx,
|
23
|
+
getMarginfiAccounts,
|
23
24
|
} from "../../src";
|
24
25
|
|
25
26
|
const signer = setupTest(undefined, true);
|
@@ -65,6 +66,7 @@ async function getFakePosition(
|
|
65
66
|
});
|
66
67
|
await client.initialize({
|
67
68
|
positionId: 1,
|
69
|
+
lpPoolAccount: getMarginfiAccounts().defaultGroup,
|
68
70
|
supplyMint: new PublicKey(NATIVE_MINT),
|
69
71
|
debtMint: new PublicKey(USDC),
|
70
72
|
});
|
@@ -105,8 +107,8 @@ async function getFakePosition(
|
|
105
107
|
lpUserAccount: defaultPk,
|
106
108
|
lpSupplyAccount: defaultPk,
|
107
109
|
lpDebtAccount: defaultPk,
|
110
|
+
lpPoolAccount: defaultPk,
|
108
111
|
settings,
|
109
|
-
dca: null,
|
110
112
|
padding: [],
|
111
113
|
padding1: [],
|
112
114
|
},
|