@haven-fi/solauto-sdk 1.0.565 → 1.0.567
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/clients/solautoMarginfiClient.d.ts +1 -0
- package/dist/clients/solautoMarginfiClient.d.ts.map +1 -1
- package/dist/clients/solautoMarginfiClient.js +9 -0
- package/dist/transactions/transactionsManager.d.ts.map +1 -1
- package/dist/transactions/transactionsManager.js +3 -9
- package/dist/utils/jupiterUtils.d.ts.map +1 -1
- package/dist/utils/solauto/generalUtils.d.ts.map +1 -1
- package/dist/utils/solauto/generalUtils.js +0 -1
- package/package.json +1 -1
- package/src/clients/solautoMarginfiClient.ts +22 -1
- package/src/transactions/transactionsManager.ts +3 -8
- package/src/utils/jupiterUtils.ts +0 -1
- package/src/utils/solauto/generalUtils.ts +0 -1
- package/tests/transactions/solautoMarginfi.ts +184 -13
@@ -43,6 +43,7 @@ export declare class SolautoMarginfiClient extends SolautoClient {
|
|
43
43
|
rebalance(rebalanceStep: "A" | "B", jupQuote: QuoteResponse, rebalanceType: SolautoRebalanceTypeArgs, rebalanceValues: RebalanceValues, flashLoan?: FlashLoanDetails, targetLiqUtilizationRateBps?: number): TransactionBuilder;
|
44
44
|
flashBorrow(rebalanceType: SolautoRebalanceType, flashLoanDetails: FlashLoanDetails, destinationTokenAccount: PublicKey): TransactionBuilder;
|
45
45
|
flashRepay(flashLoanDetails: FlashLoanDetails): TransactionBuilder;
|
46
|
+
closeBalance(marginfiAccount: PublicKey, bank: PublicKey): TransactionBuilder;
|
46
47
|
getFreshPositionState(): Promise<PositionState | undefined>;
|
47
48
|
supplyLiquidityAvailable(): bigint;
|
48
49
|
supplyLiquidityDepositable(): bigint;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EAGb,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAEtB,OAAO,EAGL,eAAe,
|
1
|
+
{"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"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"}
|
@@ -454,11 +454,20 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
|
|
454
454
|
signer: this.signer,
|
455
455
|
signerTokenAccount: (0, umi_1.publicKey)((0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), flashLoanDetails.mint)),
|
456
456
|
}))
|
457
|
+
.add(this.closeBalance(this.intermediaryMarginfiAccountPk, new web3_js_1.PublicKey(accounts.data.bank)))
|
457
458
|
.add((0, marginfi_sdk_1.lendingAccountEndFlashloan)(this.umi, {
|
458
459
|
marginfiAccount: (0, umi_1.publicKey)(this.intermediaryMarginfiAccountPk),
|
459
460
|
signer: this.signer,
|
460
461
|
}).addRemainingAccounts(remainingAccounts));
|
461
462
|
}
|
463
|
+
closeBalance(marginfiAccount, bank) {
|
464
|
+
return (0, umi_1.transactionBuilder)().add((0, marginfi_sdk_1.lendingAccountCloseBalance)(this.umi, {
|
465
|
+
signer: this.signer,
|
466
|
+
marginfiAccount: (0, umi_1.publicKey)(marginfiAccount),
|
467
|
+
bank: (0, umi_1.publicKey)(bank),
|
468
|
+
marginfiGroup: (0, umi_1.publicKey)(this.marginfiGroup),
|
469
|
+
}));
|
470
|
+
}
|
462
471
|
async getFreshPositionState() {
|
463
472
|
const state = await super.getFreshPositionState();
|
464
473
|
if (state) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,OAAO,EAEL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAa7D,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAqCD,qBAAa,eAAe;IAOjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM;IATtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,WAAW,EAAE,OAAO,CAAS;IAC7B,SAAS,EAAE,MAAM,CAAK;gBAGb,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAKV,OAAO,CAAC,UAAU,EAAE,MAAM;IAOhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAwGD,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EAAE,CAAC;AAEJ,UAAU,WAAW;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa,CAAC;IAdxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B,kBAAkB,SAAmB;gBAG3B,SAAS,EAAE,aAAa,GAAG,oBAAoB,EAC/C,cAAc,CAAC,GAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,aAAA,EAC/D,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,UAAU,GAAE,OAAe,EAC3B,aAAa,CAAC,EAAE,aAAa,YAAA,EACrC,WAAW,CAAC,EAAE,WAAW;YAab,uBAAuB;IA0CrC,OAAO,CAAC,YAAY;YA6CN,aAAa;IAoB3B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,mBAAmB;YAoBb,SAAS;IAiBV,UAAU,CACrB,YAAY,EAAE,eAAe,EAAE,GAC9B,OAAO,CAAC,0BAA0B,CAAC;IA0GzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;
|
1
|
+
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,OAAO,EAEL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAa7D,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAqCD,qBAAa,eAAe;IAOjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM;IATtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,WAAW,EAAE,OAAO,CAAS;IAC7B,SAAS,EAAE,MAAM,CAAK;gBAGb,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAKV,OAAO,CAAC,UAAU,EAAE,MAAM;IAOhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAwGD,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EAAE,CAAC;AAEJ,UAAU,WAAW;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa,CAAC;IAdxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B,kBAAkB,SAAmB;gBAG3B,SAAS,EAAE,aAAa,GAAG,oBAAoB,EAC/C,cAAc,CAAC,GAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,aAAA,EAC/D,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,UAAU,GAAE,OAAe,EAC3B,aAAa,CAAC,EAAE,aAAa,YAAA,EACrC,WAAW,CAAC,EAAE,WAAW;YAab,uBAAuB;IA0CrC,OAAO,CAAC,YAAY;YA6CN,aAAa;IAoB3B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,mBAAmB;YAoBb,SAAS;IAiBV,UAAU,CACrB,YAAY,EAAE,eAAe,EAAE,GAC9B,OAAO,CAAC,0BAA0B,CAAC;IA0GzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;YA8BxB,6BAA6B;YA4I7B,qBAAqB;YAgDrB,eAAe;YA0Df,eAAe;CA4D9B"}
|
@@ -333,18 +333,12 @@ class TransactionsManager {
|
|
333
333
|
async send(items) {
|
334
334
|
this.statuses = [];
|
335
335
|
this.lookupTables.reset();
|
336
|
-
const itemSets = await (0, generalUtils_1.retryWithExponentialBackoff)(async (
|
337
|
-
|
338
|
-
|
336
|
+
const itemSets = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => {
|
337
|
+
for (const item of items) {
|
338
|
+
if (!item.initialized) {
|
339
339
|
await item.initialize();
|
340
340
|
}
|
341
341
|
}
|
342
|
-
else if (attemptNum > 0) {
|
343
|
-
await this.txHandler.resetLiveTxUpdates();
|
344
|
-
for (const item of items) {
|
345
|
-
await item.refetch(attemptNum);
|
346
|
-
}
|
347
|
-
}
|
348
342
|
this.txHandler.log("Transaction items:", items.length);
|
349
343
|
return await this.assembleTransactionSets(items);
|
350
344
|
}, this.totalRetries);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"jupiterUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jupiterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAGL,aAAa,EACd,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"jupiterUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jupiterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAGL,aAAa,EACd,MAAM,aAAa,CAAC;AASrB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,iBAAiB,EAAE,SAAS,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAgBD,wBAAsB,WAAW,CAAC,WAAW,EAAE,YAAY,0BAkB1D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CA2F7B;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,SAAS,EAAE,EAClB,oBAAoB,CAAC,EAAE,OAAO;;GAwC/B"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -40,6 +40,7 @@ import {
|
|
40
40
|
MARGINFI_PROGRAM_ID,
|
41
41
|
MarginfiAccount,
|
42
42
|
lendingAccountBorrow,
|
43
|
+
lendingAccountCloseBalance,
|
43
44
|
lendingAccountDeposit,
|
44
45
|
lendingAccountEndFlashloan,
|
45
46
|
lendingAccountRepay,
|
@@ -584,7 +585,10 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
584
585
|
return transactionBuilder().add(
|
585
586
|
splTokenTransferUmiIx(
|
586
587
|
this.signer,
|
587
|
-
getTokenAccount(
|
588
|
+
getTokenAccount(
|
589
|
+
toWeb3JsPublicKey(this.signer.publicKey),
|
590
|
+
this.debtMint
|
591
|
+
),
|
588
592
|
destinationTokenAccount,
|
589
593
|
toWeb3JsPublicKey(this.signer.publicKey),
|
590
594
|
flashLoanDetails.baseUnitAmount
|
@@ -701,6 +705,12 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
701
705
|
),
|
702
706
|
})
|
703
707
|
)
|
708
|
+
.add(
|
709
|
+
this.closeBalance(
|
710
|
+
this.intermediaryMarginfiAccountPk,
|
711
|
+
new PublicKey(accounts.data.bank)
|
712
|
+
)
|
713
|
+
)
|
704
714
|
.add(
|
705
715
|
lendingAccountEndFlashloan(this.umi, {
|
706
716
|
marginfiAccount: publicKey(this.intermediaryMarginfiAccountPk),
|
@@ -709,6 +719,17 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
709
719
|
);
|
710
720
|
}
|
711
721
|
|
722
|
+
closeBalance(marginfiAccount: PublicKey, bank: PublicKey) {
|
723
|
+
return transactionBuilder().add(
|
724
|
+
lendingAccountCloseBalance(this.umi, {
|
725
|
+
signer: this.signer,
|
726
|
+
marginfiAccount: publicKey(marginfiAccount),
|
727
|
+
bank: publicKey(bank),
|
728
|
+
marginfiGroup: publicKey(this.marginfiGroup),
|
729
|
+
})
|
730
|
+
);
|
731
|
+
}
|
732
|
+
|
712
733
|
async getFreshPositionState(): Promise<PositionState | undefined> {
|
713
734
|
const state = await super.getFreshPositionState();
|
714
735
|
if (state) {
|
@@ -546,16 +546,11 @@ export class TransactionsManager {
|
|
546
546
|
this.statuses = [];
|
547
547
|
this.lookupTables.reset();
|
548
548
|
|
549
|
-
const itemSets = await retryWithExponentialBackoff(async (
|
550
|
-
|
551
|
-
|
549
|
+
const itemSets = await retryWithExponentialBackoff(async () => {
|
550
|
+
for (const item of items) {
|
551
|
+
if (!item.initialized) {
|
552
552
|
await item.initialize();
|
553
553
|
}
|
554
|
-
} else if (attemptNum > 0) {
|
555
|
-
await this.txHandler.resetLiveTxUpdates();
|
556
|
-
for (const item of items) {
|
557
|
-
await item.refetch(attemptNum);
|
558
|
-
}
|
559
554
|
}
|
560
555
|
this.txHandler.log("Transaction items:", items.length);
|
561
556
|
return await this.assembleTransactionSets(items);
|
@@ -1,9 +1,17 @@
|
|
1
1
|
import { describe, it } from "mocha";
|
2
|
-
import {
|
2
|
+
import {
|
3
|
+
none,
|
4
|
+
publicKey,
|
5
|
+
some,
|
6
|
+
transactionBuilder,
|
7
|
+
Umi,
|
8
|
+
} from "@metaplex-foundation/umi";
|
3
9
|
import { setupTest } from "../shared";
|
4
10
|
import { SolautoMarginfiClient } from "../../src/clients/solautoMarginfiClient";
|
5
11
|
import {
|
12
|
+
fetchSolautoPosition,
|
6
13
|
PositionType,
|
14
|
+
safeFetchAllSolautoPosition,
|
7
15
|
safeFetchSolautoPosition,
|
8
16
|
solautoAction,
|
9
17
|
SolautoSettingsParametersInpArgs,
|
@@ -27,6 +35,8 @@ import { PublicKey } from "@solana/web3.js";
|
|
27
35
|
import {
|
28
36
|
DEFAULT_MARGINFI_GROUP,
|
29
37
|
MARGINFI_ACCOUNTS,
|
38
|
+
POPCAT,
|
39
|
+
RETARDIO,
|
30
40
|
SOLAUTO_PROD_PROGRAM,
|
31
41
|
SOLAUTO_TEST_PROGRAM,
|
32
42
|
USDC,
|
@@ -34,22 +44,120 @@ import {
|
|
34
44
|
} from "../../src/constants";
|
35
45
|
import {
|
36
46
|
buildHeliusApiUrl,
|
47
|
+
fetchTokenPrices,
|
37
48
|
getAllPositionsByAuthority,
|
49
|
+
getBankLiquidityAvailableBaseUnit,
|
38
50
|
getQnComputeUnitPriceEstimate,
|
39
51
|
getSolautoManagedPositions,
|
40
52
|
getSolautoPositionAccount,
|
41
53
|
retryWithExponentialBackoff,
|
54
|
+
safeGetPrice,
|
42
55
|
} from "../../src/utils";
|
43
56
|
import { PriorityFeeSetting } from "../../src/types";
|
44
|
-
import {
|
57
|
+
import {
|
58
|
+
buildIronforgeApiUrl,
|
59
|
+
fromBaseUnit,
|
60
|
+
tokenInfo,
|
61
|
+
USD_DECIMALS,
|
62
|
+
} from "../../dist";
|
63
|
+
import {
|
64
|
+
safeFetchBank,
|
65
|
+
safeFetchMarginfiAccount,
|
66
|
+
} from "../../src/marginfi-sdk";
|
67
|
+
import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
|
68
|
+
|
69
|
+
async function test(
|
70
|
+
umi: Umi,
|
71
|
+
sp: PublicKey | undefined,
|
72
|
+
supplyMint: PublicKey,
|
73
|
+
sb: PublicKey,
|
74
|
+
supplyMintDecimals: number,
|
75
|
+
debtMint: PublicKey,
|
76
|
+
db: PublicKey,
|
77
|
+
debtMintDecimals: number
|
78
|
+
) {
|
79
|
+
const solautoPosition = sp
|
80
|
+
? await fetchSolautoPosition(umi, publicKey(sp))
|
81
|
+
: undefined;
|
82
|
+
|
83
|
+
const mfiAccount = solautoPosition
|
84
|
+
? await safeFetchMarginfiAccount(
|
85
|
+
umi,
|
86
|
+
solautoPosition.position.protocolUserAccount
|
87
|
+
)
|
88
|
+
: undefined;
|
89
|
+
|
90
|
+
const supplyBank = await safeFetchBank(umi, publicKey(sb));
|
91
|
+
const debtBank = await safeFetchBank(umi, publicKey(db));
|
92
|
+
|
93
|
+
await fetchTokenPrices([supplyMint, debtMint]);
|
94
|
+
|
95
|
+
console.log(supplyBank);
|
96
|
+
console.log(debtBank);
|
97
|
+
|
98
|
+
if (mfiAccount) {
|
99
|
+
console.log(mfiAccount.lendingAccount.balances);
|
100
|
+
console.log(
|
101
|
+
fromBaseUnit(
|
102
|
+
BigInt(
|
103
|
+
bytesToI80F48(
|
104
|
+
mfiAccount.lendingAccount.balances[0].assetShares.value
|
105
|
+
) * bytesToI80F48(supplyBank.assetShareValue.value)
|
106
|
+
),
|
107
|
+
supplyMintDecimals
|
108
|
+
) * safeGetPrice(supplyMint)
|
109
|
+
);
|
110
|
+
}
|
111
|
+
|
112
|
+
const imfiAccount = await safeFetchMarginfiAccount(
|
113
|
+
umi,
|
114
|
+
publicKey("E8oukAkTMW4YsAPymMzWQHWb8egmGq9yjDtmMi6gfY18")
|
115
|
+
);
|
116
|
+
|
117
|
+
console.log(
|
118
|
+
bytesToI80F48(
|
119
|
+
imfiAccount.lendingAccount.balances[0].liabilityShares.value
|
120
|
+
) *
|
121
|
+
bytesToI80F48(supplyBank.liabilityShareValue.value) *
|
122
|
+
safeGetPrice(supplyMint)
|
123
|
+
);
|
124
|
+
console.log(
|
125
|
+
bytesToI80F48(
|
126
|
+
imfiAccount.lendingAccount.balances[1].liabilityShares.value
|
127
|
+
) *
|
128
|
+
bytesToI80F48(debtBank.liabilityShareValue.value) *
|
129
|
+
safeGetPrice(debtMint)
|
130
|
+
);
|
131
|
+
|
132
|
+
console.log(
|
133
|
+
bytesToI80F48(supplyBank.totalAssetShares.value),
|
134
|
+
bytesToI80F48(supplyBank.totalLiabilityShares.value),
|
135
|
+
bytesToI80F48(supplyBank.totalAssetShares.value) -
|
136
|
+
bytesToI80F48(supplyBank.totalLiabilityShares.value),
|
137
|
+
fromBaseUnit(
|
138
|
+
getBankLiquidityAvailableBaseUnit(supplyBank, false),
|
139
|
+
supplyMintDecimals
|
140
|
+
) * safeGetPrice(supplyMint)
|
141
|
+
);
|
142
|
+
console.log(
|
143
|
+
bytesToI80F48(debtBank.totalAssetShares.value),
|
144
|
+
bytesToI80F48(debtBank.totalLiabilityShares.value),
|
145
|
+
bytesToI80F48(debtBank.totalAssetShares.value) -
|
146
|
+
bytesToI80F48(debtBank.totalLiabilityShares.value),
|
147
|
+
fromBaseUnit(
|
148
|
+
getBankLiquidityAvailableBaseUnit(debtBank, false),
|
149
|
+
debtMintDecimals
|
150
|
+
) * safeGetPrice(debtMint)
|
151
|
+
);
|
152
|
+
}
|
45
153
|
|
46
154
|
describe("Solauto Marginfi tests", async () => {
|
47
|
-
|
48
|
-
const signer = setupTest("solauto-manager");
|
155
|
+
const signer = setupTest();
|
156
|
+
// const signer = setupTest("solauto-manager");
|
49
157
|
|
50
158
|
const payForTransactions = true;
|
51
|
-
const testProgram =
|
52
|
-
const positionId =
|
159
|
+
const testProgram = true;
|
160
|
+
const positionId = 1;
|
53
161
|
|
54
162
|
it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
|
55
163
|
const client = new SolautoMarginfiClient(
|
@@ -65,7 +173,7 @@ describe("Solauto Marginfi tests", async () => {
|
|
65
173
|
await client.initialize({
|
66
174
|
signer,
|
67
175
|
positionId,
|
68
|
-
authority: new PublicKey("
|
176
|
+
// authority: new PublicKey("5UqsR2PGzbP8pGPbXEeXx86Gjz2N2UFBAuFZUSVydAEe"),
|
69
177
|
// new: true,
|
70
178
|
// marginfiAccount: new PublicKey(
|
71
179
|
// ""
|
@@ -75,6 +183,41 @@ describe("Solauto Marginfi tests", async () => {
|
|
75
183
|
// debtMint: new PublicKey(USDC),
|
76
184
|
});
|
77
185
|
|
186
|
+
// await test(
|
187
|
+
// client.umi,
|
188
|
+
// undefined,
|
189
|
+
// new PublicKey(RETARDIO),
|
190
|
+
// new PublicKey("3J5rKmCi7JXG6qmiobFJyAidVTnnNAMGj4jomfBxKGRM"),
|
191
|
+
// 6,
|
192
|
+
// new PublicKey(USDC),
|
193
|
+
// new PublicKey("6cgYhBFWCc5sNHxkvSRhd5H9AdAHR41zKwuF37HmLry5"),
|
194
|
+
// 6
|
195
|
+
// );
|
196
|
+
// await test(
|
197
|
+
// client.umi,
|
198
|
+
// new PublicKey("EcdfYZCtaePaDWVy9Cz6eiS5QbLbhThau1fHLhQTEZqs"),
|
199
|
+
// new PublicKey(USDC),
|
200
|
+
// new PublicKey("EXrnNVfLagt3j4hCHSD9WqK75o6dkZBtjpnrSrSC78MA"),
|
201
|
+
// 6,
|
202
|
+
// new PublicKey(POPCAT),
|
203
|
+
// new PublicKey("845oEvt1oduoBj5zQxTr21cWWaUVnRjGerJuW3yMo2nn"),
|
204
|
+
// 9
|
205
|
+
// );
|
206
|
+
|
207
|
+
// const mfiAccount = await safeFetchMarginfiAccount(
|
208
|
+
// client.umi,
|
209
|
+
// publicKey("E8oukAkTMW4YsAPymMzWQHWb8egmGq9yjDtmMi6gfY18")
|
210
|
+
// );
|
211
|
+
// console.log(mfiAccount.lendingAccount.balances);
|
212
|
+
// console.log(
|
213
|
+
// mfiAccount.lendingAccount.balances.map((x) =>
|
214
|
+
// bytesToI80F48(x.liabilityShares.value)
|
215
|
+
// )
|
216
|
+
// );
|
217
|
+
// console.log(
|
218
|
+
// mfiAccount.lendingAccount.balances.map((x) => x.bankPk.toString())
|
219
|
+
// );
|
220
|
+
|
78
221
|
const transactionItems: TransactionItem[] = [];
|
79
222
|
// const settingParams: SolautoSettingsParametersInpArgs = {
|
80
223
|
// boostToBps: maxBoostToBps(
|
@@ -142,13 +285,41 @@ describe("Solauto Marginfi tests", async () => {
|
|
142
285
|
// )
|
143
286
|
// );
|
144
287
|
|
145
|
-
transactionItems.push(
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
288
|
+
// transactionItems.push(
|
289
|
+
// new TransactionItem(
|
290
|
+
// async (attemptNum) =>
|
291
|
+
// await buildSolautoRebalanceTransaction(client, undefined, attemptNum),
|
292
|
+
// "rebalance"
|
293
|
+
// )
|
294
|
+
// );
|
295
|
+
|
296
|
+
const imfiAccount = await safeFetchMarginfiAccount(
|
297
|
+
client.umi,
|
298
|
+
publicKey(client.intermediaryMarginfiAccountPk)
|
299
|
+
);
|
300
|
+
|
301
|
+
console.log(imfiAccount.lendingAccount.balances);
|
302
|
+
console.log(
|
303
|
+
imfiAccount.lendingAccount.balances.map((x) => x.bankPk.toString())
|
151
304
|
);
|
305
|
+
return;
|
306
|
+
|
307
|
+
// transactionItems.push(
|
308
|
+
// new TransactionItem(async () => ({
|
309
|
+
// tx: transactionBuilder().add(
|
310
|
+
// imfiAccount.lendingAccount.balances
|
311
|
+
// .filter(
|
312
|
+
// (x) => x.active && bytesToI80F48(x.liabilityShares.value) > 0
|
313
|
+
// )
|
314
|
+
// .map((x) =>
|
315
|
+
// client.closeBalance(
|
316
|
+
// client.intermediaryMarginfiAccountPk,
|
317
|
+
// toWeb3JsPublicKey(x.bankPk)
|
318
|
+
// )
|
319
|
+
// )
|
320
|
+
// ),
|
321
|
+
// }))
|
322
|
+
// );
|
152
323
|
|
153
324
|
// transactionItems.push(
|
154
325
|
// new TransactionItem(
|