@haven-fi/solauto-sdk 1.0.679 → 1.0.680

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 (26) hide show
  1. package/dist/services/flashLoans/flProviderAggregator.d.ts +1 -0
  2. package/dist/services/flashLoans/flProviderAggregator.d.ts.map +1 -1
  3. package/dist/services/flashLoans/flProviderAggregator.js +6 -3
  4. package/dist/services/flashLoans/flProviderBase.d.ts +1 -0
  5. package/dist/services/flashLoans/flProviderBase.d.ts.map +1 -1
  6. package/dist/services/flashLoans/marginfiFlProvider.d.ts +1 -0
  7. package/dist/services/flashLoans/marginfiFlProvider.d.ts.map +1 -1
  8. package/dist/services/flashLoans/marginfiFlProvider.js +3 -0
  9. package/dist/services/transactions/transactionUtils.js +2 -2
  10. package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts +3 -0
  11. package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts.map +1 -1
  12. package/dist/solautoPosition/marginfiSolautoPositionEx.js +14 -6
  13. package/dist/solautoPosition/positionUtils.js +2 -2
  14. package/dist/solautoPosition/solautoPositionEx.d.ts +2 -0
  15. package/dist/solautoPosition/solautoPositionEx.d.ts.map +1 -1
  16. package/dist/utils/solautoUtils.js +1 -1
  17. package/local/txSandbox.ts +55 -34
  18. package/package.json +1 -1
  19. package/src/services/flashLoans/flProviderAggregator.ts +7 -3
  20. package/src/services/flashLoans/flProviderBase.ts +2 -0
  21. package/src/services/flashLoans/marginfiFlProvider.ts +4 -0
  22. package/src/services/transactions/transactionUtils.ts +2 -2
  23. package/src/solautoPosition/marginfiSolautoPositionEx.ts +16 -7
  24. package/src/solautoPosition/positionUtils.ts +2 -2
  25. package/src/solautoPosition/solautoPositionEx.ts +14 -10
  26. package/src/utils/solautoUtils.ts +1 -1
@@ -11,6 +11,7 @@ export declare class FlProviderAggregator extends FlProviderBase {
11
11
  otherSigners(): Signer[];
12
12
  lutAccountsToAdd(): PublicKey[];
13
13
  private flProvider;
14
+ liquiditySource(source: TokenType): PublicKey;
14
15
  liquidityAvailable(source: TokenType): bigint;
15
16
  flFeeBps(source: TokenType, signerFlashLoan?: boolean): number;
16
17
  flashBorrow(flashLoan: FlashLoanDetails, destTokenAccount: PublicKey): TransactionBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"flProviderAggregator.d.ts","sourceRoot":"","sources":["../../../src/services/flashLoans/flProviderAggregator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,OAAO,CAAC,kBAAkB,CAAsB;gBAG9C,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,SAAS,EACrB,QAAQ,EAAE,SAAS,EACnB,UAAU,CAAC,EAAE,UAAU;IAanB,UAAU;IAMV,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIvD,YAAY,IAAI,MAAM,EAAE;IAKxB,gBAAgB,IAAI,SAAS,EAAE;IAS/B,OAAO,CAAC,UAAU;IAKlB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAI7C,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM;IAI9D,WAAW,CACT,SAAS,EAAE,gBAAgB,EAC3B,gBAAgB,EAAE,SAAS,GAC1B,kBAAkB;IAOrB,UAAU,CAAC,SAAS,EAAE,gBAAgB,GAAG,kBAAkB;CAK5D"}
1
+ {"version":3,"file":"flProviderAggregator.d.ts","sourceRoot":"","sources":["../../../src/services/flashLoans/flProviderAggregator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,OAAO,CAAC,kBAAkB,CAAsB;gBAG9C,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,SAAS,EACrB,QAAQ,EAAE,SAAS,EACnB,UAAU,CAAC,EAAE,UAAU;IAanB,UAAU;IAMV,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIvD,YAAY,IAAI,MAAM,EAAE;IAKxB,gBAAgB,IAAI,SAAS,EAAE;IAS/B,OAAO,CAAC,UAAU;IAKlB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS;IAI7C,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAI7C,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM;IAI9D,WAAW,CACT,SAAS,EAAE,gBAAgB,EAC3B,gBAAgB,EAAE,SAAS,GAC1B,kBAAkB;IAOrB,UAAU,CAAC,SAAS,EAAE,gBAAgB,GAAG,kBAAkB;CAK5D"}
@@ -10,7 +10,7 @@ class FlProviderAggregator extends flProviderBase_1.FlProviderBase {
10
10
  this.marginfiFlProvider = new marginfiFlProvider_1.MarginfiFlProvider(umi, signer, authority, supplyMint, debtMint, programEnv);
11
11
  }
12
12
  async initialize() {
13
- // TODO: PF
13
+ // TODO: LP
14
14
  // Once we have more than one, set the right fl provider for each liquidity source
15
15
  await this.marginfiFlProvider.initialize();
16
16
  }
@@ -18,7 +18,7 @@ class FlProviderAggregator extends flProviderBase_1.FlProviderBase {
18
18
  return await this.marginfiFlProvider.initializeIMfiAccounts();
19
19
  }
20
20
  otherSigners() {
21
- // TODO: PF
21
+ // TODO: LP
22
22
  return [...this.flSigners, ...this.marginfiFlProvider.otherSigners()];
23
23
  }
24
24
  lutAccountsToAdd() {
@@ -30,9 +30,12 @@ class FlProviderAggregator extends flProviderBase_1.FlProviderBase {
30
30
  : [];
31
31
  }
32
32
  flProvider(source) {
33
- // TODO: PF
33
+ // TODO: LP
34
34
  return this.marginfiFlProvider;
35
35
  }
36
+ liquiditySource(source) {
37
+ return this.flProvider(source).liquiditySource(source);
38
+ }
36
39
  liquidityAvailable(source) {
37
40
  return this.flProvider(source).liquidityAvailable(source);
38
41
  }
@@ -17,6 +17,7 @@ export declare abstract class FlProviderBase {
17
17
  mint(source: TokenType): PublicKey;
18
18
  abstract liquidityAvailable(source: TokenType): bigint;
19
19
  liquidityAvailableUsd(source: TokenType): number;
20
+ abstract liquiditySource(source: TokenType): PublicKey;
20
21
  abstract flFeeBps(source: TokenType, signerFlashLoan?: boolean): number;
21
22
  abstract flashBorrow(flashLoan: FlashLoanDetails, destTokenAccount: PublicKey): TransactionBuilder;
22
23
  abstract flashRepay(flashLoan: FlashLoanDetails): TransactionBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"flProviderBase.d.ts","sourceRoot":"","sources":["../../../src/services/flashLoans/flProviderBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,MAAM,EAEN,kBAAkB,EAClB,GAAG,EACJ,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE3D,8BAAsB,cAAc;IAIhC,SAAS,CAAC,GAAG,EAAE,GAAG;IAClB,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,UAAU,EAAE,SAAS;IAC/B,SAAS,CAAC,QAAQ,EAAE,SAAS;IAC7B,SAAS,CAAC,UAAU,EAAE,UAAU;IARlC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;gBAGvB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,SAAS,EACrB,QAAQ,EAAE,SAAS,EACnB,UAAU,GAAE,UAAmB;IAG3C,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC,gBAAgB,IAAI,SAAS,EAAE;IAI/B,YAAY,IAAI,MAAM,EAAE;IAIxB,IAAI,CAAC,MAAM,EAAE,SAAS;IAItB,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IACtD,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAShD,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM;IACvE,QAAQ,CAAC,WAAW,CAClB,SAAS,EAAE,gBAAgB,EAC3B,gBAAgB,EAAE,SAAS,GAC1B,kBAAkB;IACrB,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,gBAAgB,GAAG,kBAAkB;IAEpE,SAAS,CAAC,iBAAiB,CACzB,SAAS,EAAE,gBAAgB,EAC3B,gBAAgB,EAAE,SAAS,GAC1B,kBAAkB;CAyBtB"}
1
+ {"version":3,"file":"flProviderBase.d.ts","sourceRoot":"","sources":["../../../src/services/flashLoans/flProviderBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,MAAM,EAEN,kBAAkB,EAClB,GAAG,EACJ,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE3D,8BAAsB,cAAc;IAIhC,SAAS,CAAC,GAAG,EAAE,GAAG;IAClB,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,UAAU,EAAE,SAAS;IAC/B,SAAS,CAAC,QAAQ,EAAE,SAAS;IAC7B,SAAS,CAAC,UAAU,EAAE,UAAU;IARlC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;gBAGvB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,SAAS,EACrB,QAAQ,EAAE,SAAS,EACnB,UAAU,GAAE,UAAmB;IAG3C,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC,gBAAgB,IAAI,SAAS,EAAE;IAI/B,YAAY,IAAI,MAAM,EAAE;IAIxB,IAAI,CAAC,MAAM,EAAE,SAAS;IAItB,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IACtD,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAShD,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS;IAEtD,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM;IACvE,QAAQ,CAAC,WAAW,CAClB,SAAS,EAAE,gBAAgB,EAC3B,gBAAgB,EAAE,SAAS,GAC1B,kBAAkB;IACrB,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,gBAAgB,GAAG,kBAAkB;IAEpE,SAAS,CAAC,iBAAiB,CACzB,SAAS,EAAE,gBAAgB,EAC3B,gBAAgB,EAAE,SAAS,GAC1B,kBAAkB;CAyBtB"}
@@ -16,6 +16,7 @@ export declare class MarginfiFlProvider extends FlProviderBase {
16
16
  private setIntermediaryAccount;
17
17
  initializeIMfiAccounts(): Promise<TransactionBuilder>;
18
18
  lutAccountsToAdd(): PublicKey[];
19
+ liquiditySource(source: TokenType): PublicKey;
19
20
  private liquidityBank;
20
21
  private iMfiAccount;
21
22
  liquidityAvailable(source: TokenType): bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"marginfiFlProvider.d.ts","sourceRoot":"","sources":["../../../src/services/flashLoans/marginfiFlProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAML,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAclC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAiBlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQ5C,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,OAAO,CAAC,wBAAwB,CAAqB;IACrD,OAAO,CAAC,yBAAyB,CAAQ;IACzC,OAAO,CAAC,uBAAuB,CAAQ;IAEvC,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,uBAAuB,CAAiB;IAChD,OAAO,CAAC,qBAAqB,CAAiB;IAExC,UAAU;YAiBF,iBAAiB;YA6CjB,sBAAsB;IAsD9B,sBAAsB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAyC3D,gBAAgB,IAAI,SAAS,EAAE;IAY/B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,WAAW;IAMnB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAI7C,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM;IAc9D,WAAW,CACT,SAAS,EAAE,gBAAgB,EAC3B,gBAAgB,EAAE,SAAS,GAC1B,kBAAkB;IAoCrB,UAAU,CAAC,SAAS,EAAE,gBAAgB,GAAG,kBAAkB;IAgD3D,YAAY,CACV,eAAe,EAAE,SAAS,EAC1B,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,SAAS;CAW3B"}
1
+ {"version":3,"file":"marginfiFlProvider.d.ts","sourceRoot":"","sources":["../../../src/services/flashLoans/marginfiFlProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAML,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAclC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAiBlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQ5C,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,OAAO,CAAC,wBAAwB,CAAqB;IACrD,OAAO,CAAC,yBAAyB,CAAQ;IACzC,OAAO,CAAC,uBAAuB,CAAQ;IAEvC,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,uBAAuB,CAAiB;IAChD,OAAO,CAAC,qBAAqB,CAAiB;IAExC,UAAU;YAiBF,iBAAiB;YA6CjB,sBAAsB;IAsD9B,sBAAsB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAyC3D,gBAAgB,IAAI,SAAS,EAAE;IAY/B,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS;IAI7C,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,WAAW;IAMnB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAI7C,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM;IAc9D,WAAW,CACT,SAAS,EAAE,gBAAgB,EAC3B,gBAAgB,EAAE,SAAS,GAC1B,kBAAkB;IAoCrB,UAAU,CAAC,SAAS,EAAE,gBAAgB,GAAG,kBAAkB;IAgD3D,YAAY,CACV,eAAe,EAAE,SAAS,EAC1B,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,SAAS;CAW3B"}
@@ -124,6 +124,9 @@ class MarginfiFlProvider extends flProviderBase_1.FlProviderBase {
124
124
  ])).map((x) => new web3_js_1.PublicKey(x)),
125
125
  ];
126
126
  }
127
+ liquiditySource(source) {
128
+ return (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.liquidityBank(source).publicKey);
129
+ }
127
130
  liquidityBank(source) {
128
131
  return source === generated_1.TokenType.Supply
129
132
  ? this.supplyBankLiquiditySource
@@ -57,7 +57,7 @@ async function transactionChoresBefore(client, accountsGettingCreated, solautoAc
57
57
  !(await (0, utils_1.getSolanaAccountCreated)(client.umi, client.marginfiAccountPk))) {
58
58
  chores = chores.add(client.marginfiAccountInitialize(client.marginfiAccount));
59
59
  }
60
- // TODO: PF
60
+ // TODO: LP
61
61
  if (!client.pos.exists) {
62
62
  chores = chores.add(client.openPositionIx());
63
63
  }
@@ -297,7 +297,7 @@ function getSolautoActions(umi, tx) {
297
297
  }
298
298
  catch { }
299
299
  }
300
- // TODO: PF
300
+ // TODO: LP
301
301
  });
302
302
  return solautoActions;
303
303
  }
@@ -7,12 +7,15 @@ export declare class MarginfiSolautoPositionEx extends SolautoPositionEx {
7
7
  maxLtvPriceType: PriceType;
8
8
  private supplyBank;
9
9
  private debtBank;
10
+ private getBankAccounts;
10
11
  getBanks(): Promise<Bank[]>;
11
12
  priceOracles(): Promise<PublicKey[]>;
12
13
  maxLtvAndLiqThresholdBps(): Promise<[number, number]>;
13
14
  private getUpToDateLiquidityAvailable;
14
15
  updateSupplyLiquidityDepositable(banks: Bank[]): void;
15
16
  updateDebtLiquidityAvailable(banks: Bank[]): void;
17
+ get lpSupplyAccount(): PublicKey;
18
+ get lpDebtAccount(): PublicKey;
16
19
  get supplyLiquidityAvailable(): number;
17
20
  refreshPositionState(priceType?: PriceType): Promise<void>;
18
21
  }
@@ -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;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;IAC3C,eAAe,YAAiB;IAEhC,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;CA2BjE"}
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;IAC3C,eAAe,YAAiB;IAEhC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAqB;IAErC,OAAO,CAAC,eAAe;IAMjB,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAW3B,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,eAAe,cAElB;IAED,IAAI,aAAa,cAEhB;IAED,IAAI,wBAAwB,IAAI,MAAM,CAKrC;IAEK,oBAAoB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BjE"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MarginfiSolautoPositionEx = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
4
5
  const marginfi_sdk_1 = require("../marginfi-sdk");
5
6
  const umi_1 = require("@metaplex-foundation/umi");
6
7
  const utils_1 = require("../utils");
@@ -15,15 +16,16 @@ class MarginfiSolautoPositionEx extends solautoPositionEx_1.SolautoPositionEx {
15
16
  this.supplyBank = null;
16
17
  this.debtBank = null;
17
18
  }
19
+ getBankAccounts(mint) {
20
+ const group = this.lpPoolAccount.toString();
21
+ const bankAccounts = (0, constants_1.getMarginfiAccounts)(this.lpEnv).bankAccounts;
22
+ return bankAccounts[group][mint.toString()];
23
+ }
18
24
  async getBanks() {
19
25
  if (!this.supplyBank || !this.debtBank) {
20
- const group = this.lpPoolAccount.toString();
21
- const bankAccounts = (0, constants_1.getMarginfiAccounts)(this.lpEnv).bankAccounts;
22
- const supplyBank = bankAccounts[group][this.supplyMint.toString()].bank;
23
- const debtBank = bankAccounts[group][this.debtMint.toString()].bank;
24
26
  [this.supplyBank, this.debtBank] = await (0, marginfi_sdk_1.safeFetchAllBank)(this.umi, [
25
- (0, umi_1.publicKey)(supplyBank),
26
- (0, umi_1.publicKey)(debtBank),
27
+ (0, umi_1.publicKey)(this.lpSupplyAccount),
28
+ (0, umi_1.publicKey)(this.lpDebtAccount),
27
29
  ]);
28
30
  }
29
31
  return [this.supplyBank, this.debtBank];
@@ -58,6 +60,12 @@ class MarginfiSolautoPositionEx extends solautoPositionEx_1.SolautoPositionEx {
58
60
  updateDebtLiquidityAvailable(banks) {
59
61
  this._data.state.debt.amountCanBeUsed = this.getUpToDateLiquidityAvailable(banks, this.debtMint, false);
60
62
  }
63
+ get lpSupplyAccount() {
64
+ return new web3_js_1.PublicKey(this.getBankAccounts(this.supplyMint).bank);
65
+ }
66
+ get lpDebtAccount() {
67
+ return new web3_js_1.PublicKey(this.getBankAccounts(this.debtMint).bank);
68
+ }
61
69
  get supplyLiquidityAvailable() {
62
70
  return (0, utils_1.fromBaseUnit)((0, utils_1.getBankLiquidityAvailableBaseUnit)(this.supplyBank, false), this.supplyMintInfo.decimals);
63
71
  }
@@ -31,7 +31,7 @@ async function getPositionExBulk(umi, publicKeys) {
31
31
  publicKey: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(x.publicKey),
32
32
  data: x,
33
33
  });
34
- // TODO: PF
34
+ // TODO: LP
35
35
  }
36
36
  });
37
37
  }
@@ -59,7 +59,7 @@ async function getOrCreatePositionEx(umi, authority, positionId, programId, cust
59
59
  switch (lendingPlatform) {
60
60
  case generated_1.LendingPlatform.Marginfi:
61
61
  position = new marginfiSolautoPositionEx_1.MarginfiSolautoPositionEx(args);
62
- // TODO: PF
62
+ // TODO: LP
63
63
  }
64
64
  if (position.selfManaged) {
65
65
  await position.refreshPositionState();
@@ -78,6 +78,8 @@ export declare abstract class SolautoPositionEx {
78
78
  get supplyLiquidityUsdAvailable(): number;
79
79
  get debtLiquidityAvailable(): number;
80
80
  get debtLiquidityUsdAvailable(): number;
81
+ abstract get lpSupplyAccount(): PublicKey;
82
+ abstract get lpDebtAccount(): PublicKey;
81
83
  abstract get supplyLiquidityAvailable(): number;
82
84
  abstract maxLtvAndLiqThresholdBps(): Promise<[number, number]>;
83
85
  abstract priceOracles(): Promise<PublicKey[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"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"}
@@ -126,7 +126,7 @@ async function getSolautoManagedPositions(umi, authority, positionTypeFilter) {
126
126
  .mint,
127
127
  ];
128
128
  }
129
- // TODO: PF
129
+ // TODO: LP
130
130
  return {
131
131
  publicKey: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(x.publicKey),
132
132
  authority: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(position.authority),
@@ -1,5 +1,5 @@
1
1
  import { Keypair, PublicKey } from "@solana/web3.js";
2
- import { createSignerFromKeypair } from "@metaplex-foundation/umi";
2
+ import { createSignerFromKeypair, publicKey } from "@metaplex-foundation/umi";
3
3
  import { fromWeb3JsKeypair } from "@metaplex-foundation/umi-web3js-adapters";
4
4
  import {
5
5
  consoleLog,
@@ -26,6 +26,13 @@ import {
26
26
  deposit,
27
27
  toBaseUnit,
28
28
  RETARDIO,
29
+ withdraw,
30
+ closeSolautoPosition,
31
+ fetchBank,
32
+ getBankLiquidityAvailableBaseUnit,
33
+ fetchTokenPrices,
34
+ fetchMarginfiAccount,
35
+ marginfiAccountEmpty,
29
36
  } from "../src";
30
37
  import { getSecretKey } from "./shared";
31
38
 
@@ -41,7 +48,7 @@ let [, umi] = getSolanaRpcConnection(
41
48
 
42
49
  const signer = createSignerFromKeypair(
43
50
  umi,
44
- fromWeb3JsKeypair(Keypair.fromSecretKey(getSecretKey("solauto-manager")))
51
+ fromWeb3JsKeypair(Keypair.fromSecretKey(getSecretKey()))
45
52
  );
46
53
 
47
54
  export async function main() {
@@ -53,39 +60,53 @@ export async function main() {
53
60
  lpEnv,
54
61
  });
55
62
 
56
- await client.initialize({
57
- positionId: 2,
58
- supplyMint: new PublicKey(USDC),
59
- debtMint: new PublicKey(RETARDIO),
60
- lpPoolAccount: new PublicKey("EpzY5EYF1A5eFDRfjtsPXSYMPmEx1FXKaXPnouTMF4dm")
61
- // authority: new PublicKey("5UqsR2PGzbP8pGPbXEeXx86Gjz2N2UFBAuFZUSVydAEe"),
62
- // lpUserAccount: new PublicKey(
63
- // "GEokw9jqbh6d1xUNA3qaeYFFetbSR5Y1nt7C3chwwgSz"
64
- // ),
65
- });
63
+ // await client.initialize({
64
+ // positionId: 2,
65
+ // supplyMint: new PublicKey(USDC),
66
+ // debtMint: new PublicKey(RETARDIO),
67
+ // lpPoolAccount: new PublicKey("EpzY5EYF1A5eFDRfjtsPXSYMPmEx1FXKaXPnouTMF4dm")
68
+ // // authority: new PublicKey("5UqsR2PGzbP8pGPbXEeXx86Gjz2N2UFBAuFZUSVydAEe"),
69
+ // // lpUserAccount: new PublicKey(
70
+ // // "GEokw9jqbh6d1xUNA3qaeYFFetbSR5Y1nt7C3chwwgSz"
71
+ // // ),
72
+ // });
66
73
 
67
- const transactionItems = [
68
- openSolautoPosition(client, {
69
- boostGap: 250,
70
- boostToBps: 8681,
71
- repayGap: 250,
72
- repayToBps: 8681,
73
- }),
74
- deposit(client, toBaseUnit(4.5, tokenInfo(new PublicKey(USDC)).decimals)),
75
- rebalance(client, 8500),
76
- ];
77
-
78
- const txManager = new TransactionsManager(
79
- client,
80
- undefined,
81
- payForTransaction ? "normal" : "only-simulate",
82
- PriorityFeeSetting.High,
83
- false,
84
- undefined,
85
- { totalRetries: 5 }
86
- );
87
- const statuses = await txManager.clientSend(transactionItems);
88
- consoleLog(statuses);
74
+ const bank = await fetchBank(client.umi, publicKey("3J5rKmCi7JXG6qmiobFJyAidVTnnNAMGj4jomfBxKGRM"));
75
+
76
+ const mint = new PublicKey(RETARDIO);
77
+ const [price] = await fetchTokenPrices([mint]);
78
+ const debtAvailableBaseUnit = getBankLiquidityAvailableBaseUnit(bank, false);
79
+ const debtAvailable = fromBaseUnit(debtAvailableBaseUnit, tokenInfo(mint).decimals);
80
+ const debtAvailableUsd = debtAvailable * price;
81
+
82
+ console.log(debtAvailable, debtAvailableUsd);
83
+
84
+ const account = await fetchMarginfiAccount(umi, publicKey("CKDgZfh7b7FdYyL7qWxYTKmyKYgr2PzsQcm2b5ptDxYW"));
85
+
86
+ console.log(marginfiAccountEmpty(account));
87
+
88
+ // const transactionItems = [
89
+ // openSolautoPosition(client, {
90
+ // boostGap: 250,
91
+ // boostToBps: 8681,
92
+ // repayGap: 250,
93
+ // repayToBps: 8681,
94
+ // }),
95
+ // deposit(client, toBaseUnit(10, tokenInfo(new PublicKey(USDC)).decimals)),
96
+ // rebalance(client, 8500),
97
+ // ];
98
+
99
+ // const txManager = new TransactionsManager(
100
+ // client,
101
+ // undefined,
102
+ // payForTransaction ? "normal" : "only-simulate",
103
+ // PriorityFeeSetting.High,
104
+ // true,
105
+ // undefined,
106
+ // { totalRetries: 5 }
107
+ // );
108
+ // const statuses = await txManager.clientSend(transactionItems);
109
+ // consoleLog(statuses);
89
110
  }
90
111
 
91
112
  async function refreshAll() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.679",
3
+ "version": "1.0.680",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "description": "Typescript SDK for the Solauto program on the Solana blockchain",
@@ -29,7 +29,7 @@ export class FlProviderAggregator extends FlProviderBase {
29
29
  }
30
30
 
31
31
  async initialize() {
32
- // TODO: PF
32
+ // TODO: LP
33
33
  // Once we have more than one, set the right fl provider for each liquidity source
34
34
  await this.marginfiFlProvider.initialize();
35
35
  }
@@ -39,7 +39,7 @@ export class FlProviderAggregator extends FlProviderBase {
39
39
  }
40
40
 
41
41
  otherSigners(): Signer[] {
42
- // TODO: PF
42
+ // TODO: LP
43
43
  return [...this.flSigners, ...this.marginfiFlProvider.otherSigners()];
44
44
  }
45
45
 
@@ -53,10 +53,14 @@ export class FlProviderAggregator extends FlProviderBase {
53
53
  }
54
54
 
55
55
  private flProvider(source: TokenType): FlProviderBase {
56
- // TODO: PF
56
+ // TODO: LP
57
57
  return this.marginfiFlProvider;
58
58
  }
59
59
 
60
+ liquiditySource(source: TokenType): PublicKey {
61
+ return this.flProvider(source).liquiditySource(source);
62
+ }
63
+
60
64
  liquidityAvailable(source: TokenType): bigint {
61
65
  return this.flProvider(source).liquidityAvailable(source);
62
66
  }
@@ -52,6 +52,8 @@ export abstract class FlProviderBase {
52
52
  );
53
53
  }
54
54
 
55
+ abstract liquiditySource(source: TokenType): PublicKey;
56
+
55
57
  abstract flFeeBps(source: TokenType, signerFlashLoan?: boolean): number;
56
58
  abstract flashBorrow(
57
59
  flashLoan: FlashLoanDetails,
@@ -225,6 +225,10 @@ export class MarginfiFlProvider extends FlProviderBase {
225
225
  ];
226
226
  }
227
227
 
228
+ liquiditySource(source: TokenType): PublicKey {
229
+ return toWeb3JsPublicKey(this.liquidityBank(source).publicKey);
230
+ }
231
+
228
232
  private liquidityBank(source: TokenType): Bank {
229
233
  return source === TokenType.Supply
230
234
  ? this.supplyBankLiquiditySource
@@ -145,7 +145,7 @@ async function transactionChoresBefore(
145
145
  client.marginfiAccountInitialize(client.marginfiAccount as Signer)
146
146
  );
147
147
  }
148
- // TODO: PF
148
+ // TODO: LP
149
149
 
150
150
  if (!client.pos.exists) {
151
151
  chores = chores.add(client.openPositionIx());
@@ -517,7 +517,7 @@ function getSolautoActions(umi: Umi, tx: TransactionBuilder): SolautoAction[] {
517
517
  } catch {}
518
518
  }
519
519
 
520
- // TODO: PF
520
+ // TODO: LP
521
521
  });
522
522
 
523
523
  return solautoActions;
@@ -24,16 +24,17 @@ export class MarginfiSolautoPositionEx extends SolautoPositionEx {
24
24
  private supplyBank: Bank | null = null;
25
25
  private debtBank: Bank | null = null;
26
26
 
27
+ private getBankAccounts(mint: PublicKey) {
28
+ const group = this.lpPoolAccount.toString();
29
+ const bankAccounts = getMarginfiAccounts(this.lpEnv).bankAccounts;
30
+ return bankAccounts[group][mint.toString()];
31
+ }
32
+
27
33
  async getBanks(): Promise<Bank[]> {
28
34
  if (!this.supplyBank || !this.debtBank) {
29
- const group = this.lpPoolAccount.toString();
30
- const bankAccounts = getMarginfiAccounts(this.lpEnv).bankAccounts;
31
- const supplyBank = bankAccounts[group][this.supplyMint.toString()].bank;
32
- const debtBank = bankAccounts[group][this.debtMint.toString()].bank;
33
-
34
35
  [this.supplyBank, this.debtBank] = await safeFetchAllBank(this.umi, [
35
- publicKey(supplyBank),
36
- publicKey(debtBank),
36
+ publicKey(this.lpSupplyAccount),
37
+ publicKey(this.lpDebtAccount),
37
38
  ]);
38
39
  }
39
40
 
@@ -99,6 +100,14 @@ export class MarginfiSolautoPositionEx extends SolautoPositionEx {
99
100
  );
100
101
  }
101
102
 
103
+ get lpSupplyAccount() {
104
+ return new PublicKey(this.getBankAccounts(this.supplyMint).bank);
105
+ }
106
+
107
+ get lpDebtAccount() {
108
+ return new PublicKey(this.getBankAccounts(this.debtMint).bank);
109
+ }
110
+
102
111
  get supplyLiquidityAvailable(): number {
103
112
  return fromBaseUnit(
104
113
  getBankLiquidityAvailableBaseUnit(this.supplyBank, false),
@@ -70,7 +70,7 @@ export async function getPositionExBulk(
70
70
  publicKey: toWeb3JsPublicKey(x.publicKey),
71
71
  data: x,
72
72
  });
73
- // TODO: PF
73
+ // TODO: LP
74
74
  }
75
75
  });
76
76
  }
@@ -117,7 +117,7 @@ export async function getOrCreatePositionEx(
117
117
  switch (lendingPlatform) {
118
118
  case LendingPlatform.Marginfi:
119
119
  position = new MarginfiSolautoPositionEx(args);
120
- // TODO: PF
120
+ // TODO: LP
121
121
  }
122
122
 
123
123
  if (position.selfManaged) {
@@ -240,41 +240,45 @@ export abstract class SolautoPositionEx {
240
240
  return this._supplyPrice ?? safeGetPrice(this.supplyMint, priceType);
241
241
  }
242
242
 
243
+
243
244
  get totalDebt() {
244
245
  return calcTotalDebt(this.state);
245
246
  }
246
-
247
+
247
248
  debtUsd(priceType?: PriceType) {
248
249
  const debtPrice = this.debtPrice(priceType);
249
250
  return debtPrice
250
- ? calcTotalDebt(this.state) * debtPrice
251
- : calcDebtUsd(this.state);
251
+ ? calcTotalDebt(this.state) * debtPrice
252
+ : calcDebtUsd(this.state);
252
253
  }
253
-
254
+
254
255
  protected debtPrice(priceType?: PriceType) {
255
256
  return this._debtPrice ?? safeGetPrice(this.debtMint, priceType);
256
257
  }
257
-
258
+
259
+
258
260
  get supplyLiquidityDepositable() {
259
261
  return supplyLiquidityDepositable(this.state);
260
262
  }
261
-
263
+
262
264
  get supplyLiquidityUsdDepositable() {
263
265
  return supplyLiquidityUsdDepositable(this.state);
264
266
  }
265
-
267
+
266
268
  get supplyLiquidityUsdAvailable() {
267
269
  return this.supplyLiquidityAvailable * (this.supplyPrice() ?? 0);
268
270
  }
269
-
271
+
270
272
  get debtLiquidityAvailable() {
271
273
  return debtLiquidityAvailable(this.state);
272
274
  }
273
-
275
+
274
276
  get debtLiquidityUsdAvailable() {
275
277
  return debtLiquidityUsdAvailable(this.state);
276
278
  }
277
-
279
+
280
+ abstract get lpSupplyAccount(): PublicKey;
281
+ abstract get lpDebtAccount(): PublicKey;
278
282
  abstract get supplyLiquidityAvailable(): number;
279
283
 
280
284
  abstract maxLtvAndLiqThresholdBps(): Promise<[number, number]>;
@@ -188,7 +188,7 @@ export async function getSolautoManagedPositions(
188
188
  .mint,
189
189
  ];
190
190
  }
191
- // TODO: PF
191
+ // TODO: LP
192
192
 
193
193
  return {
194
194
  publicKey: toWeb3JsPublicKey(x.publicKey),