@haven-fi/solauto-sdk 1.0.570 → 1.0.571
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.map +1 -1
- package/dist/clients/solautoMarginfiClient.js +9 -1
- package/dist/utils/marginfiUtils.js +2 -2
- package/package.json +1 -1
- package/src/clients/solautoMarginfiClient.ts +10 -5
- package/src/utils/marginfiUtils.ts +2 -2
- package/tests/transactions/solautoMarginfi.ts +49 -19
@@ -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,EAWhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAUzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,cAAc,CAAC,CAAY;IAE5B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAErD,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAqB;IAE/B,UAAU,CAAC,IAAI,EAAE,yBAAyB;IAiG1C,8BAA8B;IAwCpC,eAAe,IAAI,SAAS;IAI5B,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAUzB,wBAAwB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IA0B3D,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,kBAAkB;IAStE,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA6C9B,OAAO,IAAI,kBAAkB;IAc7B,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUhE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,SAAS,CACP,aAAa,EAAE,GAAG,GAAG,GAAG,EACxB,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,wBAAwB,EACvC,eAAe,EAAE,eAAe,EAChC,SAAS,CAAC,EAAE,gBAAgB,EAC5B,2BAA2B,CAAC,EAAE,MAAM,GACnC,kBAAkB;IA+ErB,WAAW,CACT,aAAa,EAAE,oBAAoB,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IA8CrB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;
|
1
|
+
{"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"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"}
|
@@ -449,6 +449,7 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
|
|
449
449
|
.filter((x) => x.active && (0, numberUtils_1.bytesToI80F48)(x.liabilityShares.value) > 0)
|
450
450
|
.map((x) => x.bankPk.toString()),
|
451
451
|
]));
|
452
|
+
this.log("Intermediary marginfi account active balances:", banksRequiringBalanceClose);
|
452
453
|
return (0, umi_1.transactionBuilder)()
|
453
454
|
.add((0, marginfi_sdk_1.lendingAccountRepay)(this.umi, {
|
454
455
|
amount: flashLoanDetails.baseUnitAmount,
|
@@ -460,7 +461,14 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
|
|
460
461
|
signer: this.signer,
|
461
462
|
signerTokenAccount: (0, umi_1.publicKey)((0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), flashLoanDetails.mint)),
|
462
463
|
}))
|
463
|
-
.add(
|
464
|
+
.add(
|
465
|
+
// banksRequiringBalanceClose.map((x) =>
|
466
|
+
// this.closeBalance(
|
467
|
+
// this.intermediaryMarginfiAccountPk,
|
468
|
+
// new PublicKey(x)
|
469
|
+
// )
|
470
|
+
// )
|
471
|
+
this.closeBalance(this.intermediaryMarginfiAccountPk, new web3_js_1.PublicKey(accounts.data.bank)))
|
464
472
|
.add((0, marginfi_sdk_1.lendingAccountEndFlashloan)(this.umi, {
|
465
473
|
marginfiAccount: (0, umi_1.publicKey)(this.intermediaryMarginfiAccountPk),
|
466
474
|
signer: this.signer,
|
@@ -322,6 +322,6 @@ function getUpToDateShareValues(bank) {
|
|
322
322
|
}
|
323
323
|
function marginfiAccountEmpty(marginfiAccount) {
|
324
324
|
return (marginfiAccount.lendingAccount.balances.find((x) => x.bankPk.toString() !== web3_js_1.PublicKey.default.toString() &&
|
325
|
-
(
|
326
|
-
|
325
|
+
((0, numberUtils_1.bytesToI80F48)(x.assetShares.value) > 0.0001 ||
|
326
|
+
(0, numberUtils_1.bytesToI80F48)(x.liabilityShares.value) > 0.0001)) === undefined);
|
327
327
|
}
|
package/package.json
CHANGED
@@ -695,6 +695,7 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
695
695
|
.map((x) => x.bankPk.toString()),
|
696
696
|
])
|
697
697
|
);
|
698
|
+
this.log("Intermediary marginfi account active balances:", banksRequiringBalanceClose);
|
698
699
|
|
699
700
|
return transactionBuilder()
|
700
701
|
.add(
|
@@ -715,11 +716,15 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
715
716
|
})
|
716
717
|
)
|
717
718
|
.add(
|
718
|
-
banksRequiringBalanceClose.map((x) =>
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
719
|
+
// banksRequiringBalanceClose.map((x) =>
|
720
|
+
// this.closeBalance(
|
721
|
+
// this.intermediaryMarginfiAccountPk,
|
722
|
+
// new PublicKey(x)
|
723
|
+
// )
|
724
|
+
// )
|
725
|
+
this.closeBalance(
|
726
|
+
this.intermediaryMarginfiAccountPk,
|
727
|
+
new PublicKey(accounts.data.bank)
|
723
728
|
)
|
724
729
|
)
|
725
730
|
.add(
|
@@ -591,8 +591,8 @@ export function marginfiAccountEmpty(marginfiAccount: MarginfiAccount) {
|
|
591
591
|
marginfiAccount.lendingAccount.balances.find(
|
592
592
|
(x) =>
|
593
593
|
x.bankPk.toString() !== PublicKey.default.toString() &&
|
594
|
-
(
|
595
|
-
|
594
|
+
(bytesToI80F48(x.assetShares.value) > 0.0001 ||
|
595
|
+
bytesToI80F48(x.liabilityShares.value) > 0.0001)
|
596
596
|
) === undefined
|
597
597
|
);
|
598
598
|
}
|
@@ -5,6 +5,7 @@ import {
|
|
5
5
|
some,
|
6
6
|
transactionBuilder,
|
7
7
|
Umi,
|
8
|
+
UmiError,
|
8
9
|
} from "@metaplex-foundation/umi";
|
9
10
|
import { setupTest } from "../shared";
|
10
11
|
import { SolautoMarginfiClient } from "../../src/clients/solautoMarginfiClient";
|
@@ -50,6 +51,7 @@ import {
|
|
50
51
|
getQnComputeUnitPriceEstimate,
|
51
52
|
getSolautoManagedPositions,
|
52
53
|
getSolautoPositionAccount,
|
54
|
+
marginfiAccountEmpty,
|
53
55
|
retryWithExponentialBackoff,
|
54
56
|
safeGetPrice,
|
55
57
|
} from "../../src/utils";
|
@@ -61,6 +63,7 @@ import {
|
|
61
63
|
USD_DECIMALS,
|
62
64
|
} from "../../dist";
|
63
65
|
import {
|
66
|
+
lendingPoolAccrueBankInterest,
|
64
67
|
safeFetchBank,
|
65
68
|
safeFetchMarginfiAccount,
|
66
69
|
} from "../../src/marginfi-sdk";
|
@@ -117,16 +120,16 @@ async function test(
|
|
117
120
|
console.log(
|
118
121
|
bytesToI80F48(
|
119
122
|
imfiAccount.lendingAccount.balances[0].liabilityShares.value
|
120
|
-
) *
|
121
|
-
|
122
|
-
|
123
|
+
) * bytesToI80F48(supplyBank.liabilityShareValue.value),
|
124
|
+
bytesToI80F48(imfiAccount.lendingAccount.balances[0].assetShares.value) *
|
125
|
+
bytesToI80F48(supplyBank.assetShareValue.value)
|
123
126
|
);
|
124
127
|
console.log(
|
125
128
|
bytesToI80F48(
|
126
129
|
imfiAccount.lendingAccount.balances[1].liabilityShares.value
|
127
|
-
) *
|
128
|
-
|
129
|
-
|
130
|
+
) * bytesToI80F48(debtBank.liabilityShareValue.value),
|
131
|
+
bytesToI80F48(imfiAccount.lendingAccount.balances[1].assetShares.value) *
|
132
|
+
bytesToI80F48(debtBank.assetShareValue.value)
|
130
133
|
);
|
131
134
|
|
132
135
|
console.log(
|
@@ -183,16 +186,17 @@ describe("Solauto Marginfi tests", async () => {
|
|
183
186
|
// debtMint: new PublicKey(USDC),
|
184
187
|
});
|
185
188
|
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
189
|
+
await test(
|
190
|
+
client.umi,
|
191
|
+
// new PublicKey("E8oukAkTMW4YsAPymMzWQHWb8egmGq9yjDtmMi6gfY18"),
|
192
|
+
undefined,
|
193
|
+
new PublicKey(RETARDIO),
|
194
|
+
new PublicKey("3J5rKmCi7JXG6qmiobFJyAidVTnnNAMGj4jomfBxKGRM"),
|
195
|
+
6,
|
196
|
+
new PublicKey(USDC),
|
197
|
+
new PublicKey("6cgYhBFWCc5sNHxkvSRhd5H9AdAHR41zKwuF37HmLry5"),
|
198
|
+
6
|
199
|
+
);
|
196
200
|
// await test(
|
197
201
|
// client.umi,
|
198
202
|
// new PublicKey("EcdfYZCtaePaDWVy9Cz6eiS5QbLbhThau1fHLhQTEZqs"),
|
@@ -208,7 +212,7 @@ describe("Solauto Marginfi tests", async () => {
|
|
208
212
|
// client.umi,
|
209
213
|
// publicKey("E8oukAkTMW4YsAPymMzWQHWb8egmGq9yjDtmMi6gfY18")
|
210
214
|
// );
|
211
|
-
// console.log(mfiAccount.lendingAccount.balances);
|
215
|
+
// // console.log(mfiAccount.lendingAccount.balances);
|
212
216
|
// console.log(
|
213
217
|
// mfiAccount.lendingAccount.balances.map((x) =>
|
214
218
|
// bytesToI80F48(x.liabilityShares.value)
|
@@ -295,15 +299,41 @@ describe("Solauto Marginfi tests", async () => {
|
|
295
299
|
|
296
300
|
const imfiAccount = await safeFetchMarginfiAccount(
|
297
301
|
client.umi,
|
298
|
-
publicKey(client.intermediaryMarginfiAccountPk)
|
302
|
+
// publicKey(client.intermediaryMarginfiAccountPk)
|
303
|
+
publicKey("E8oukAkTMW4YsAPymMzWQHWb8egmGq9yjDtmMi6gfY18")
|
299
304
|
);
|
300
305
|
|
301
306
|
console.log(imfiAccount.lendingAccount.balances);
|
302
307
|
console.log(
|
303
|
-
imfiAccount.lendingAccount.balances.map((x) =>
|
308
|
+
imfiAccount.lendingAccount.balances.map((x) => [
|
309
|
+
x.bankPk.toString(),
|
310
|
+
x.liabilityShares.value,
|
311
|
+
bytesToI80F48(x.liabilityShares.value),
|
312
|
+
])
|
304
313
|
);
|
314
|
+
|
315
|
+
console.log(marginfiAccountEmpty(imfiAccount));
|
305
316
|
return;
|
306
317
|
|
318
|
+
// transactionItems.push(
|
319
|
+
// new TransactionItem(async () => ({
|
320
|
+
// tx: transactionBuilder().add([
|
321
|
+
// lendingPoolAccrueBankInterest(client.umi, {
|
322
|
+
// bank: publicKey("3J5rKmCi7JXG6qmiobFJyAidVTnnNAMGj4jomfBxKGRM"),
|
323
|
+
// marginfiGroup: publicKey(
|
324
|
+
// "EpzY5EYF1A5eFDRfjtsPXSYMPmEx1FXKaXPnouTMF4dm"
|
325
|
+
// ),
|
326
|
+
// }),
|
327
|
+
// lendingPoolAccrueBankInterest(client.umi, {
|
328
|
+
// bank: publicKey("6cgYhBFWCc5sNHxkvSRhd5H9AdAHR41zKwuF37HmLry5"),
|
329
|
+
// marginfiGroup: publicKey(
|
330
|
+
// "EpzY5EYF1A5eFDRfjtsPXSYMPmEx1FXKaXPnouTMF4dm"
|
331
|
+
// ),
|
332
|
+
// }),
|
333
|
+
// ]),
|
334
|
+
// }))
|
335
|
+
// );
|
336
|
+
|
307
337
|
// transactionItems.push(
|
308
338
|
// new TransactionItem(async () => ({
|
309
339
|
// tx: transactionBuilder().add(
|