@haven-fi/solauto-sdk 1.0.675 → 1.0.677

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.
@@ -1 +1 @@
1
- {"version":3,"file":"rebalanceTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceTxBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAGL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAgCrB,qBAAa,kBAAkB;IAS3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,2BAA2B,CAAC;IATtC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAwB;IAC/C,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAGhB,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,YAAA;IAG9C,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;IAyC5B,OAAO,CAAC,iCAAiC;YAsC3B,qBAAqB;IA0CnC,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,yBAAyB;YAqBnB,mBAAmB;YAwBnB,sBAAsB;YAyBtB,mBAAmB;IAmEpB,gBAAgB,CAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;CAe9C"}
1
+ {"version":3,"file":"rebalanceTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceTxBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAGL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAgCrB,qBAAa,kBAAkB;IAS3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,2BAA2B,CAAC;IATtC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAwB;IAC/C,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAGhB,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,YAAA;IAG9C,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;IAyC5B,OAAO,CAAC,iCAAiC;YAgC3B,qBAAqB;IA0CnC,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,yBAAyB;YAqBnB,mBAAmB;YAwBnB,sBAAsB;YAyBtB,mBAAmB;IAmEpB,gBAAgB,CAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;CAe9C"}
@@ -53,8 +53,8 @@ class RebalanceTxBuilder {
53
53
  }
54
54
  const fees = new solautoFees_1.SolautoFeesBps(this.client.isReferred, this.targetLiqUtilizationRateBps, this.client.pos.netWorthUsd(generated_1.PriceType.Realtime));
55
55
  const { intermediaryLiqUtilizationRateBps } = (0, rebalanceValues_1.applyDebtAdjustmentUsd)(this.values.debtAdjustmentUsd, {
56
- supplyUsd: (0, utils_1.realtimeUsdToEmaUsd)(this.client.pos.supplyUsd(generated_1.PriceType.Realtime), this.client.pos.supplyMint),
57
- debtUsd: (0, utils_1.realtimeUsdToEmaUsd)(this.client.pos.debtUsd(generated_1.PriceType.Realtime), this.client.pos.debtMint),
56
+ supplyUsd: this.client.pos.supplyUsd(generated_1.PriceType.Ema),
57
+ debtUsd: this.client.pos.debtUsd(generated_1.PriceType.Ema),
58
58
  }, (0, utils_1.fromBps)(this.client.pos.state.liqThresholdBps), {
59
59
  solauto: fees.getSolautoFeesBps(this.values.rebalanceDirection).total,
60
60
  lpBorrow: this.client.pos.state.debt.borrowFeeBps,
@@ -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;CAuBjE"}
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"}
@@ -62,6 +62,9 @@ class MarginfiSolautoPositionEx extends solautoPositionEx_1.SolautoPositionEx {
62
62
  return (0, utils_1.fromBaseUnit)((0, utils_1.getBankLiquidityAvailableBaseUnit)(this.supplyBank, false), this.supplyMintInfo.decimals);
63
63
  }
64
64
  async refreshPositionState(priceType) {
65
+ if (!this.canRefreshPositionState()) {
66
+ return;
67
+ }
65
68
  const useDesignatedMint = !this.exists ||
66
69
  !this.selfManaged ||
67
70
  (this.selfManaged && !(0, utils_1.validPubkey)(this.lpUserAccount));
@@ -84,6 +84,7 @@ export declare abstract class SolautoPositionEx {
84
84
  get memecoinPosition(): boolean | undefined;
85
85
  eligibleForRebalance(bpsDistanceThreshold?: number, skipExtraChecks?: boolean): RebalanceAction | undefined;
86
86
  eligibleForRefresh(): boolean;
87
+ protected canRefreshPositionState(): true | undefined;
87
88
  abstract refreshPositionState(priceType?: PriceType): Promise<void>;
88
89
  utilizationRateBpsDrift(priceType?: PriceType): Promise<number>;
89
90
  updateSupply(newSupplyUsd: number, supplyPrice?: number): void;
@@ -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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"}
@@ -148,6 +148,12 @@ class SolautoPositionEx {
148
148
  return false;
149
149
  return ((0, utils_1.currentUnixSeconds)() - Number(this.state.lastRefreshed) > 60 * 60 * 24 * 7);
150
150
  }
151
+ canRefreshPositionState() {
152
+ if ((0, utils_1.currentUnixSeconds)() - Number(this.state.lastRefreshed) > 3 ||
153
+ this.contextUpdates?.positionUpdates()) {
154
+ return true;
155
+ }
156
+ }
151
157
  async utilizationRateBpsDrift(priceType) {
152
158
  const supplyPrice = this.supplyPrice(priceType) ?? 0;
153
159
  const debtPrice = this.debtPrice(priceType) ?? 0;
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/utils/marginfi/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAsB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO/E,OAAO,EACL,IAAI,EAGJ,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgBjD,wBAAsB,mCAAmC,CACvD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE;IACN,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,IAAI,EAAE;IACJ,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA8C3B;AAED,wBAAsB,mCAAmC,CACvD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,eAAe,EAAE,CAAC,CA6B5B;AAED,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,CAAC,EAAE,SAAS,EACjB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CACR;IAAE,eAAe,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,CAC/E,CAyDA;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,kBAAkB,EAAE,OAAO,UAqB5B;AA0DD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,KAAK,UAAU,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CAAC;AAwBhE,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE;IAAE,EAAE,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,EAChE,aAAa,CAAC,EAAE,SAAS,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,aAAa,EACpB,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CACN;IACE,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;CACtB,GACD,SAAS,CACZ,CA+KA;AA+DD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,oBAU7C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBnE"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/utils/marginfi/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAsB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO/E,OAAO,EACL,IAAI,EAGJ,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgBjD,wBAAsB,mCAAmC,CACvD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE;IACN,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,IAAI,EAAE;IACJ,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA8C3B;AAED,wBAAsB,mCAAmC,CACvD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,eAAe,EAAE,CAAC,CA6B5B;AAED,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,CAAC,EAAE,SAAS,EACjB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CACR;IAAE,eAAe,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,CAC/E,CAyDA;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,kBAAkB,EAAE,OAAO,UAqB5B;AA0DD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,KAAK,UAAU,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CAAC;AAwBhE,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE;IAAE,EAAE,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,EAChE,aAAa,CAAC,EAAE,SAAS,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,aAAa,EACpB,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CACN;IACE,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;CACtB,GACD,SAAS,CACZ,CA+KA;AA+DD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,oBAU7C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBnE"}
@@ -4,6 +4,7 @@ import { QuoteResponse } from "@jup-ag/api";
4
4
  import { AutomationSettings, DCASettings, DCASettingsInpArgs, LendingPlatform, PositionState, PositionType, SolautoRebalanceType, SolautoSettingsParameters, SolautoSettingsParametersInpArgs, TokenType } from "../generated";
5
5
  import { SolautoPositionDetails } from "../types";
6
6
  import { SolautoClient, SolautoMarginfiClient, TxHandlerProps } from "../services";
7
+ import { MarginfiSolautoPositionEx, SolautoPositionEx } from "../solautoPosition";
7
8
  export declare function createDynamicSolautoProgram(programId?: PublicKey): Program;
8
9
  export declare function nextAutomationPeriodTimestamp(automation: AutomationSettings): number;
9
10
  export declare function eligibleForNextAutomationPeriod(automation: AutomationSettings, currentUnixTime: number): boolean;
@@ -55,6 +56,7 @@ export declare class ContextUpdates {
55
56
  }
56
57
  export declare function getClient(lendingPlatform: LendingPlatform, txHandlerProps: TxHandlerProps): SolautoMarginfiClient;
57
58
  export declare function isMarginfiClient(client: SolautoClient): client is SolautoMarginfiClient;
59
+ export declare function isMarginfiPosition(pos: SolautoPositionEx): pos is MarginfiSolautoPositionEx;
58
60
  export declare function hasFirstRebalance(rebalanceType: SolautoRebalanceType): boolean;
59
61
  export declare function hasLastRebalance(rebalanceType: SolautoRebalanceType): boolean;
60
62
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"solautoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solautoUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solautoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solautoUtils.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ exports.getAllPositionsByAuthority = getAllPositionsByAuthority;
12
12
  exports.positionStateWithLatestPrices = positionStateWithLatestPrices;
13
13
  exports.getClient = getClient;
14
14
  exports.isMarginfiClient = isMarginfiClient;
15
+ exports.isMarginfiPosition = isMarginfiPosition;
15
16
  exports.hasFirstRebalance = hasFirstRebalance;
16
17
  exports.hasLastRebalance = hasLastRebalance;
17
18
  const umi_1 = require("@metaplex-foundation/umi");
@@ -318,13 +319,17 @@ function getClient(lendingPlatform, txHandlerProps) {
318
319
  }
319
320
  else {
320
321
  throw new Error("Lending platform not yet supported");
321
- // TODO: PF
322
+ // TODO: LP
322
323
  }
323
324
  }
325
+ // TODO: LP
324
326
  function isMarginfiClient(client) {
325
327
  return client.lendingPlatform === generated_1.LendingPlatform.Marginfi;
326
328
  }
327
- // TODO: PF
329
+ // TODO: LP
330
+ function isMarginfiPosition(pos) {
331
+ return pos.lendingPlatform === generated_1.LendingPlatform.Marginfi;
332
+ }
328
333
  function hasFirstRebalance(rebalanceType) {
329
334
  return [
330
335
  generated_1.SolautoRebalanceType.Regular,
@@ -1,19 +1,22 @@
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,
6
+ fetchBank,
6
7
  getBatches,
7
8
  getClient,
8
9
  getPositionExBulk,
9
10
  getSolanaRpcConnection,
10
11
  getSolautoManagedPositions,
12
+ isMarginfiPosition,
11
13
  LendingPlatform,
12
14
  LOCAL_IRONFORGE_API_URL,
13
15
  PriceType,
14
16
  PriorityFeeSetting,
15
17
  ProgramEnv,
16
18
  rebalance,
19
+ safeFetchBank,
17
20
  SOLAUTO_PROD_PROGRAM,
18
21
  SOLAUTO_TEST_PROGRAM,
19
22
  SolautoClient,
@@ -22,7 +25,7 @@ import {
22
25
  } from "../src";
23
26
  import { getSecretKey } from "./shared";
24
27
 
25
- const payForTransaction = false;
28
+ const payForTransaction = true;
26
29
  const testProgram = false;
27
30
  const lpEnv: ProgramEnv = "Prod";
28
31
 
@@ -47,26 +50,53 @@ export async function main() {
47
50
  });
48
51
 
49
52
  await client.initialize({
50
- positionId: 1,
51
- authority: new PublicKey("5UqsR2PGzbP8pGPbXEeXx86Gjz2N2UFBAuFZUSVydAEe"),
53
+ positionId: 4,
54
+ authority: new PublicKey("EBhRj7jbF2EVE21i19JSuCX1BAbnZFYhoKW64HnaZ3kf"),
52
55
  // lpUserAccount: new PublicKey(
53
56
  // "GEokw9jqbh6d1xUNA3qaeYFFetbSR5Y1nt7C3chwwgSz"
54
57
  // ),
55
58
  });
56
59
 
57
- const transactionItems = [rebalance(client)];
60
+ const transactionItems = [
61
+ new TransactionItem(
62
+ async () => ({ tx: client.refreshIx(PriceType.Realtime) }),
63
+ `refresh`
64
+ ),
65
+ ];
58
66
 
59
- const txManager = new TransactionsManager(
60
- client,
61
- undefined,
62
- payForTransaction ? "normal" : "only-simulate",
63
- PriorityFeeSetting.High,
64
- true,
65
- undefined,
66
- { totalRetries: 5 }
67
+ const bank = await fetchBank(
68
+ umi,
69
+ publicKey("E4td8i8PT2BZkMygzW4MGHCv2KPPs57dvz5W2ZXf9Twu")
70
+ );
71
+
72
+ console.log(
73
+ client.pos.supplyLiquidityDepositable,
74
+ client.pos.supplyLiquidityUsdDepositable
67
75
  );
68
- const statuses = await txManager.clientSend(transactionItems);
69
- consoleLog(statuses);
76
+ console.log(client.pos.eligibleForRebalance());
77
+ console.log(client.pos.state.supply.amountCanBeUsed);
78
+
79
+ if (isMarginfiPosition(client.pos)) {
80
+ client.pos.updateSupplyLiquidityDepositable([bank]);
81
+ }
82
+ console.log(
83
+ client.pos.supplyLiquidityDepositable,
84
+ client.pos.supplyLiquidityUsdDepositable
85
+ );
86
+ console.log(client.pos.eligibleForRebalance());
87
+ console.log(client.pos.state.supply.amountCanBeUsed);
88
+
89
+ // const txManager = new TransactionsManager(
90
+ // client,
91
+ // undefined,
92
+ // payForTransaction ? "normal" : "only-simulate",
93
+ // PriorityFeeSetting.High,
94
+ // true,
95
+ // undefined,
96
+ // { totalRetries: 5 }
97
+ // );
98
+ // const statuses = await txManager.clientSend(transactionItems);
99
+ // consoleLog(statuses);
70
100
  }
71
101
 
72
102
  async function refreshAll() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.675",
3
+ "version": "1.0.677",
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",
@@ -138,14 +138,8 @@ export class RebalanceTxBuilder {
138
138
  const { intermediaryLiqUtilizationRateBps } = applyDebtAdjustmentUsd(
139
139
  this.values.debtAdjustmentUsd,
140
140
  {
141
- supplyUsd: realtimeUsdToEmaUsd(
142
- this.client.pos.supplyUsd(PriceType.Realtime),
143
- this.client.pos.supplyMint
144
- ),
145
- debtUsd: realtimeUsdToEmaUsd(
146
- this.client.pos.debtUsd(PriceType.Realtime),
147
- this.client.pos.debtMint
148
- ),
141
+ supplyUsd: this.client.pos.supplyUsd(PriceType.Ema),
142
+ debtUsd: this.client.pos.debtUsd(PriceType.Ema),
149
143
  },
150
144
  fromBps(this.client.pos.state.liqThresholdBps),
151
145
  {
@@ -107,6 +107,10 @@ export class MarginfiSolautoPositionEx extends SolautoPositionEx {
107
107
  }
108
108
 
109
109
  async refreshPositionState(priceType?: PriceType): Promise<void> {
110
+ if (!this.canRefreshPositionState()) {
111
+ return;
112
+ }
113
+
110
114
  const useDesignatedMint =
111
115
  !this.exists ||
112
116
  !this.selfManaged ||
@@ -302,6 +302,15 @@ export abstract class SolautoPositionEx {
302
302
  );
303
303
  }
304
304
 
305
+ protected canRefreshPositionState() {
306
+ if (
307
+ currentUnixSeconds() - Number(this.state.lastRefreshed) > 3 ||
308
+ this.contextUpdates?.positionUpdates()
309
+ ) {
310
+ return true;
311
+ }
312
+ }
313
+
305
314
  abstract refreshPositionState(priceType?: PriceType): Promise<void>;
306
315
 
307
316
  async utilizationRateBpsDrift(priceType?: PriceType) {
@@ -1,7 +1,6 @@
1
1
  import { PublicKey } from "@solana/web3.js";
2
2
  import { publicKey, Umi } from "@metaplex-foundation/umi";
3
3
  import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
4
- import { ProgramEnv } from "../../types";
5
4
  import { PositionState, PositionTokenState, PriceType } from "../../generated";
6
5
  import {
7
6
  ALL_SUPPORTED_TOKENS,
@@ -26,7 +26,11 @@ import {
26
26
  SolautoMarginfiClient,
27
27
  TxHandlerProps,
28
28
  } from "../services";
29
- import { createSolautoSettings } from "../solautoPosition";
29
+ import {
30
+ createSolautoSettings,
31
+ MarginfiSolautoPositionEx,
32
+ SolautoPositionEx,
33
+ } from "../solautoPosition";
30
34
  import { getReferralState } from "./accountUtils";
31
35
  import {
32
36
  calcTotalDebt,
@@ -38,7 +42,10 @@ import {
38
42
  } from "./numberUtils";
39
43
  import { fetchTokenPrices } from "./priceUtils";
40
44
  import { validPubkey } from "./generalUtils";
41
- import { findMarginfiAccounts, getAllMarginfiAccountsByAuthority } from "./marginfi";
45
+ import {
46
+ findMarginfiAccounts,
47
+ getAllMarginfiAccountsByAuthority,
48
+ } from "./marginfi";
42
49
 
43
50
  export function createDynamicSolautoProgram(programId?: PublicKey): Program {
44
51
  return {
@@ -440,16 +447,23 @@ export function getClient(
440
447
  return new SolautoMarginfiClient(txHandlerProps);
441
448
  } else {
442
449
  throw new Error("Lending platform not yet supported");
443
- // TODO: PF
450
+ // TODO: LP
444
451
  }
445
452
  }
446
453
 
454
+ // TODO: LP
447
455
  export function isMarginfiClient(
448
456
  client: SolautoClient
449
457
  ): client is SolautoMarginfiClient {
450
458
  return client.lendingPlatform === LendingPlatform.Marginfi;
451
459
  }
452
- // TODO: PF
460
+
461
+ // TODO: LP
462
+ export function isMarginfiPosition(
463
+ pos: SolautoPositionEx
464
+ ): pos is MarginfiSolautoPositionEx {
465
+ return pos.lendingPlatform === LendingPlatform.Marginfi;
466
+ }
453
467
 
454
468
  export function hasFirstRebalance(rebalanceType: SolautoRebalanceType) {
455
469
  return [