@haven-fi/solauto-sdk 1.0.554 → 1.0.555

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.
@@ -3,7 +3,7 @@ import { PublicKey } from "@solana/web3.js";
3
3
  import { TransactionBuilder } from "@metaplex-foundation/umi";
4
4
  import { DCASettings, DCASettingsInpArgs, LendingPlatform, PositionState, SolautoActionArgs, SolautoPosition, SolautoRebalanceType, SolautoRebalanceTypeArgs, SolautoSettingsParameters, SolautoSettingsParametersInpArgs, UpdatePositionDataArgs } from "../generated";
5
5
  import { FlashLoanDetails, RebalanceValues } from "../utils/solauto/rebalanceUtils";
6
- import { LivePositionUpdates } from "../utils/solauto/generalUtils";
6
+ import { ContextUpdates } from "../utils/solauto/generalUtils";
7
7
  import { ReferralStateManager, ReferralStateManagerArgs } from "./referralStateManager";
8
8
  import { QuoteResponse } from "@jup-ag/api";
9
9
  export interface SolautoClientArgs extends ReferralStateManagerArgs {
@@ -31,7 +31,7 @@ export declare abstract class SolautoClient extends ReferralStateManager {
31
31
  solautoFeesSupplyTa: PublicKey;
32
32
  solautoFeesDebtTa: PublicKey;
33
33
  authorityLutAddress?: PublicKey;
34
- livePositionUpdates: LivePositionUpdates;
34
+ contextUpdates: ContextUpdates;
35
35
  private signerSupplyBalance;
36
36
  private signerDebtBalance;
37
37
  initialize(args: SolautoClientArgs): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoClient.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAA6B,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAEL,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,gCAAgC,EAEhC,sBAAsB,EAKvB,MAAM,cAAc,CAAC;AAUtB,OAAO,EACL,gBAAgB,EAChB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB;IACjE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,8BAAsB,aAAc,SAAQ,oBAAoB;IACvD,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,SAAS,EAAG,SAAS,CAAC;IAEtB,UAAU,EAAG,MAAM,CAAC;IACpB,WAAW,EAAG,OAAO,CAAC;IACtB,eAAe,EAAG,SAAS,CAAC;IAC5B,mBAAmB,EAAG,eAAe,GAAG,IAAI,CAAC;IAC7C,oBAAoB,EAAG,aAAa,GAAG,SAAS,CAAC;IAEjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,UAAU,EAAG,SAAS,CAAC;IACvB,gBAAgB,EAAG,SAAS,CAAC;IAC7B,cAAc,EAAG,SAAS,CAAC;IAE3B,QAAQ,EAAG,SAAS,CAAC;IACrB,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,mBAAmB,EAAE,mBAAmB,CAA6B;IAE5E,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAqB;IAExC,UAAU,CAAC,IAAI,EAAE,iBAAiB;IA8ExC,kBAAkB,IAAI,SAAS,GAAG,SAAS;IAO3C,gBAAgB,IAAI,SAAS,GAAG,SAAS;IAOnC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO;IAuB1C,QAAQ,CAAC,eAAe,IAAI,SAAS;IAErC,mBAAmB,IAAI,MAAM,EAAE;IAS/B,gBAAgB,IAAI,SAAS,EAAE;IAkBzB,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;IA2DK,cAAc,IAAI,OAAO,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAwCF,uBAAuB,IAAI,yBAAyB,GAAG,SAAS;IAOhE,wBAAwB,IAAI,WAAW,GAAG,SAAS;IAO7C,wBAAwB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAO3D,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IA0BrB,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB;IAsDlE,eAAe,IAAI,kBAAkB;IAYrC,WAAW,IAAI,kBAAkB;IAgCjC,QAAQ,CAAC,OAAO,IAAI,kBAAkB;IAEtC,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAuFhE,QAAQ,CAAC,WAAW,CAClB,aAAa,EAAE,oBAAoB,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IAErB,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;IAE3E,QAAQ,CAAC,SAAS,CAChB,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;IAEf,qBAAqB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAcjE,QAAQ,CAAC,wBAAwB,IAAI,MAAM;IAC3C,QAAQ,CAAC,0BAA0B,IAAI,MAAM;IAC7C,QAAQ,CAAC,sBAAsB,IAAI,MAAM;CAC1C"}
1
+ {"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoClient.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ const referralStateManager_1 = require("./referralStateManager");
16
16
  class SolautoClient extends referralStateManager_1.ReferralStateManager {
17
17
  constructor() {
18
18
  super(...arguments);
19
- this.livePositionUpdates = new generalUtils_2.LivePositionUpdates();
19
+ this.contextUpdates = new generalUtils_2.ContextUpdates();
20
20
  }
21
21
  async initialize(args) {
22
22
  await super.initialize(args);
@@ -75,18 +75,18 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
75
75
  this.solautoPositionData = await (0, generated_1.safeFetchSolautoPosition)(this.umi, (0, umi_1.publicKey)(this.solautoPosition), { commitment: "confirmed" });
76
76
  }
77
77
  else {
78
- if (this.livePositionUpdates.activeDca) {
78
+ if (this.contextUpdates.activeDca) {
79
79
  this.solautoPositionData.position.dca =
80
- this.livePositionUpdates.activeDca;
80
+ this.contextUpdates.activeDca;
81
81
  }
82
- if (this.livePositionUpdates.settings) {
82
+ if (this.contextUpdates.settings) {
83
83
  this.solautoPositionData.position.settingParams =
84
- this.livePositionUpdates.settings;
84
+ this.contextUpdates.settings;
85
85
  }
86
- // All other live position updates can be derived by getting a fresh position state, so we don't need to do anything else form livePositionUpdates
86
+ // 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
87
87
  }
88
88
  }
89
- this.livePositionUpdates.reset();
89
+ this.contextUpdates.reset();
90
90
  }
91
91
  defaultLookupTables() {
92
92
  return [
@@ -185,11 +185,11 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
185
185
  };
186
186
  }
187
187
  solautoPositionSettings() {
188
- return (this.livePositionUpdates.settings ??
188
+ return (this.contextUpdates.settings ??
189
189
  this.solautoPositionData?.position.settingParams);
190
190
  }
191
191
  solautoPositionActiveDca() {
192
- return (this.livePositionUpdates.activeDca ??
192
+ return (this.contextUpdates.activeDca ??
193
193
  this.solautoPositionData?.position.dca);
194
194
  }
195
195
  async maxLtvAndLiqThresholdBps() {
@@ -200,7 +200,7 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
200
200
  }
201
201
  openPosition(settingParams, dca) {
202
202
  if (dca && dca.dcaInBaseUnit > 0) {
203
- this.livePositionUpdates.new({
203
+ this.contextUpdates.new({
204
204
  type: "dcaInBalance",
205
205
  value: {
206
206
  amount: BigInt(dca.dcaInBaseUnit),
@@ -209,13 +209,13 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
209
209
  });
210
210
  }
211
211
  if (settingParams) {
212
- this.livePositionUpdates.new({
212
+ this.contextUpdates.new({
213
213
  type: "settings",
214
214
  value: settingParams,
215
215
  });
216
216
  }
217
217
  if (dca) {
218
- this.livePositionUpdates.new({
218
+ this.contextUpdates.new({
219
219
  type: "dca",
220
220
  value: dca,
221
221
  });
@@ -240,7 +240,7 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
240
240
  if ((0, umi_1.isOption)(args.dca) &&
241
241
  (0, umi_1.isSome)(args.dca) &&
242
242
  args.dca.value.dcaInBaseUnit > 0) {
243
- this.livePositionUpdates.new({
243
+ this.contextUpdates.new({
244
244
  type: "dcaInBalance",
245
245
  value: {
246
246
  amount: BigInt(args.dca.value.dcaInBaseUnit),
@@ -250,13 +250,13 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
250
250
  }
251
251
  }
252
252
  if ((0, umi_1.isOption)(args.settingParams) && (0, umi_1.isSome)(args.settingParams)) {
253
- this.livePositionUpdates.new({
253
+ this.contextUpdates.new({
254
254
  type: "settings",
255
255
  value: args.settingParams.value,
256
256
  });
257
257
  }
258
258
  if ((0, umi_1.isOption)(args.dca) && (0, umi_1.isSome)(args.dca)) {
259
- this.livePositionUpdates.new({
259
+ this.contextUpdates.new({
260
260
  type: "dca",
261
261
  value: args.dca.value,
262
262
  });
@@ -297,7 +297,7 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
297
297
  positionDcaTa = (0, umi_1.publicKey)(this.positionDebtTa);
298
298
  signerDcaTa = (0, umi_1.publicKey)(this.signerDebtTa);
299
299
  }
300
- this.livePositionUpdates.new({
300
+ this.contextUpdates.new({
301
301
  type: "cancellingDca",
302
302
  value: this.solautoPositionData.position.dca.tokenType,
303
303
  });
@@ -327,20 +327,20 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
327
327
  }
328
328
  }
329
329
  if (args.__kind === "Deposit") {
330
- this.livePositionUpdates.new({
330
+ this.contextUpdates.new({
331
331
  type: "supply",
332
332
  value: BigInt(args.fields[0]),
333
333
  });
334
334
  }
335
335
  else if (args.__kind === "Withdraw") {
336
336
  if (args.fields[0].__kind === "Some") {
337
- this.livePositionUpdates.new({
337
+ this.contextUpdates.new({
338
338
  type: "supply",
339
339
  value: BigInt(args.fields[0].fields[0]) * BigInt(-1),
340
340
  });
341
341
  }
342
342
  else {
343
- this.livePositionUpdates.new({
343
+ this.contextUpdates.new({
344
344
  type: "supply",
345
345
  value: (this.solautoPositionState?.supply.amountUsed.baseUnit ??
346
346
  BigInt(0)) * BigInt(-1),
@@ -348,20 +348,20 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
348
348
  }
349
349
  }
350
350
  else if (args.__kind === "Borrow") {
351
- this.livePositionUpdates.new({
351
+ this.contextUpdates.new({
352
352
  type: "debt",
353
353
  value: BigInt(args.fields[0]),
354
354
  });
355
355
  }
356
356
  else {
357
357
  if (args.fields[0].__kind === "Some") {
358
- this.livePositionUpdates.new({
358
+ this.contextUpdates.new({
359
359
  type: "debt",
360
360
  value: BigInt(args.fields[0].fields[0]) * BigInt(-1),
361
361
  });
362
362
  }
363
363
  else {
364
- this.livePositionUpdates.new({
364
+ this.contextUpdates.new({
365
365
  type: "debt",
366
366
  value: (this.solautoPositionState?.debt.amountUsed.baseUnit ?? BigInt(0)) *
367
367
  BigInt(-1),
@@ -375,7 +375,7 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
375
375
  Boolean(this.solautoPositionState) &&
376
376
  Number(this.solautoPositionState.lastUpdated) >
377
377
  (0, generalUtils_1.currentUnixSeconds)() - solautoConstants_1.MIN_POSITION_STATE_FRESHNESS_SECS &&
378
- !this.livePositionUpdates.hasUpdates()) {
378
+ !this.contextUpdates.positionUpdates()) {
379
379
  return this.solautoPositionState;
380
380
  }
381
381
  return undefined;
@@ -467,7 +467,7 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
467
467
  const useDesignatedMint = !this.selfManaged &&
468
468
  (this.solautoPositionData === null ||
469
469
  !(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey).equals(this.authority));
470
- const resp = await (0, marginfiUtils_1.getMarginfiAccountPositionState)(this.umi, { pk: this.marginfiAccountPk }, this.marginfiGroup, useDesignatedMint ? { mint: this.supplyMint } : undefined, useDesignatedMint ? { mint: this.debtMint } : undefined, this.livePositionUpdates);
470
+ const resp = await (0, marginfiUtils_1.getMarginfiAccountPositionState)(this.umi, { pk: this.marginfiAccountPk }, this.marginfiGroup, useDesignatedMint ? { mint: this.supplyMint } : undefined, useDesignatedMint ? { mint: this.debtMint } : undefined, this.contextUpdates);
471
471
  if (resp) {
472
472
  this.supplyBank = resp?.supplyBank;
473
473
  this.debtBank = resp?.debtBank;
@@ -323,10 +323,10 @@ async function getTransactionChores(client, tx) {
323
323
  const accountsGettingCreated = [];
324
324
  const solautoActions = getSolautoActions(client.umi, tx);
325
325
  choresBefore = choresBefore.add([
326
- await transactionChoresBefore(client, accountsGettingCreated, solautoActions, client.livePositionUpdates.dcaInBalance),
326
+ await transactionChoresBefore(client, accountsGettingCreated, solautoActions, client.contextUpdates.dcaInBalance),
327
327
  await rebalanceChoresBefore(client, tx, accountsGettingCreated),
328
328
  ]);
329
- choresAfter = choresAfter.add(transactionChoresAfter(client, solautoActions, client.livePositionUpdates.cancellingDca));
329
+ choresAfter = choresAfter.add(transactionChoresAfter(client, solautoActions, client.contextUpdates.cancellingDca));
330
330
  return [choresBefore, choresAfter];
331
331
  }
332
332
  async function requiresRefreshBeforeRebalance(client) {
@@ -341,16 +341,16 @@ async function requiresRefreshBeforeRebalance(client) {
341
341
  return true;
342
342
  }
343
343
  else if (client.solautoPositionData && !client.selfManaged) {
344
- if (client.livePositionUpdates.supplyAdjustment > BigInt(0) ||
345
- client.livePositionUpdates.debtAdjustment > BigInt(0)) {
344
+ if (client.contextUpdates.supplyAdjustment > BigInt(0) ||
345
+ client.contextUpdates.debtAdjustment > BigInt(0)) {
346
346
  return false;
347
347
  }
348
348
  const oldStateWithLatestPrices = await (0, generalUtils_2.positionStateWithLatestPrices)(client.solautoPositionData.state, constants_1.PRICES[client.supplyMint.toString()].price, constants_1.PRICES[client.debtMint.toString()].price);
349
349
  const utilizationRateDiff = Math.abs((client.solautoPositionState?.liqUtilizationRateBps ?? 0) -
350
350
  oldStateWithLatestPrices.liqUtilizationRateBps);
351
351
  client.log("Liq utilization rate diff:", utilizationRateDiff);
352
- if (client.livePositionUpdates.supplyAdjustment === BigInt(0) &&
353
- client.livePositionUpdates.debtAdjustment === BigInt(0) &&
352
+ if (client.contextUpdates.supplyAdjustment === BigInt(0) &&
353
+ client.contextUpdates.debtAdjustment === BigInt(0) &&
354
354
  utilizationRateDiff >= 10) {
355
355
  client.log("Choosing to refresh before rebalance. Utilization rate diff:", utilizationRateDiff);
356
356
  return true;
@@ -365,7 +365,7 @@ async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRate
365
365
  const supplyPrice = (0, utils_1.safeGetPrice)(client.supplyMint) ?? 0;
366
366
  const debtPrice = (0, utils_1.safeGetPrice)(client.debtMint) ?? 0;
367
367
  if ((client.solautoPositionState?.supply.amountUsed.baseUnit === BigInt(0) &&
368
- client.livePositionUpdates.supplyAdjustment === BigInt(0)) ||
368
+ client.contextUpdates.supplyAdjustment === BigInt(0)) ||
369
369
  (targetLiqUtilizationRateBps === undefined &&
370
370
  !(0, generalUtils_2.eligibleForRebalance)(client.solautoPositionState, client.solautoPositionSettings(), client.solautoPositionActiveDca(), (0, generalUtils_1.currentUnixSeconds)(), supplyPrice, debtPrice))) {
371
371
  client.log("Not eligible for a rebalance");
@@ -3,7 +3,7 @@ import { Umi } from "@metaplex-foundation/umi";
3
3
  import { Bank, MarginfiAccount } from "../marginfi-sdk";
4
4
  import { MarginfiAssetAccounts } from "../types/accounts";
5
5
  import { PositionState } from "../generated";
6
- import { LivePositionUpdates } from "./solauto/generalUtils";
6
+ import { ContextUpdates } from "./solauto/generalUtils";
7
7
  interface AllMarginfiAssetAccounts extends MarginfiAssetAccounts {
8
8
  mint: PublicKey;
9
9
  }
@@ -34,7 +34,7 @@ type BanksCache = {
34
34
  export declare function getMarginfiAccountPositionState(umi: Umi, protocolAccount: {
35
35
  pk: PublicKey;
36
36
  data?: MarginfiAccount;
37
- }, marginfiGroup?: PublicKey, supply?: BankSelection, debt?: BankSelection, livePositionUpdates?: LivePositionUpdates): Promise<{
37
+ }, marginfiGroup?: PublicKey, supply?: BankSelection, debt?: BankSelection, contextUpdates?: ContextUpdates): Promise<{
38
38
  supplyBank: Bank | null;
39
39
  debtBank: Bank | null;
40
40
  state: PositionState;
@@ -1 +1 @@
1
- {"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,EAGJ,eAAe,EAIhB,MAAM,iBAAiB,CAAC;AAczB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,UAAU,wBAAyB,SAAQ,qBAAqB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,GACd,wBAAwB,CAY1B;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,WAAW,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BlB;AAED,wBAAsB,gCAAgC,CACpD,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,CA4C3B;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;AAmDD,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;AAEhE,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,GAAG,EACR,eAAe,EAAE;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,CAAA;CAAE,EAC1D,aAAa,CAAC,EAAE,SAAS,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,aAAa,EACpB,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,OAAO,CACN;IAAE,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GACxE,SAAS,CACZ,CAiMA;AA+DD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,oBAU7C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBnE;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,eAAe,WASpE"}
1
+ {"version":3,"file":"marginfiUtils.d.ts","sourceRoot":"","sources":["../../src/utils/marginfiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAa,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,IAAI,EAGJ,eAAe,EAIhB,MAAM,iBAAiB,CAAC;AAczB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIxD,UAAU,wBAAyB,SAAQ,qBAAqB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,GACd,wBAAwB,CAY1B;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,WAAW,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BlB;AAED,wBAAsB,gCAAgC,CACpD,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,CA4C3B;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;AAmDD,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;AAEhE,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,GAAG,EACR,eAAe,EAAE;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,eAAe,CAAA;CAAE,EAC1D,aAAa,CAAC,EAAE,SAAS,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,aAAa,EACpB,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CACN;IAAE,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GACxE,SAAS,CACZ,CAiMA;AA+DD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,oBAU7C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBnE;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,eAAe,WASpE"}
@@ -165,7 +165,7 @@ async function getTokenUsage(bank, isAsset, shares, amountUsedAdjustment) {
165
165
  padding: new Uint8Array([]),
166
166
  };
167
167
  }
168
- async function getMarginfiAccountPositionState(umi, protocolAccount, marginfiGroup, supply, debt, livePositionUpdates) {
168
+ async function getMarginfiAccountPositionState(umi, protocolAccount, marginfiGroup, supply, debt, contextUpdates) {
169
169
  let marginfiAccount = protocolAccount.data ??
170
170
  (await (0, marginfi_sdk_1.safeFetchMarginfiAccount)(umi, (0, umi_1.publicKey)(protocolAccount.pk), {
171
171
  commitment: "confirmed",
@@ -208,7 +208,7 @@ async function getMarginfiAccountPositionState(umi, protocolAccount, marginfiGro
208
208
  if (!supply.mint) {
209
209
  supply.mint = (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(supplyBank.mint);
210
210
  }
211
- supplyUsage = await getTokenUsage(supplyBank, true, (0, numberUtils_1.bytesToI80F48)(supplyBalances[0].assetShares.value), livePositionUpdates?.supplyAdjustment);
211
+ supplyUsage = await getTokenUsage(supplyBank, true, (0, numberUtils_1.bytesToI80F48)(supplyBalances[0].assetShares.value), contextUpdates?.supplyAdjustment);
212
212
  }
213
213
  if (debtBalances.length > 0) {
214
214
  if (debtBank === null) {
@@ -219,14 +219,14 @@ async function getMarginfiAccountPositionState(umi, protocolAccount, marginfiGro
219
219
  if (!debt.mint) {
220
220
  debt.mint = (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(debtBank.mint);
221
221
  }
222
- debtUsage = await getTokenUsage(debtBank, false, (0, numberUtils_1.bytesToI80F48)(debtBalances[0].liabilityShares.value), livePositionUpdates?.debtAdjustment);
222
+ debtUsage = await getTokenUsage(debtBank, false, (0, numberUtils_1.bytesToI80F48)(debtBalances[0].liabilityShares.value), contextUpdates?.debtAdjustment);
223
223
  }
224
224
  }
225
225
  if (supplyBank === null) {
226
226
  return undefined;
227
227
  }
228
228
  if (!supplyUsage) {
229
- supplyUsage = await getTokenUsage(supplyBank, true, 0, livePositionUpdates?.supplyAdjustment);
229
+ supplyUsage = await getTokenUsage(supplyBank, true, 0, contextUpdates?.supplyAdjustment);
230
230
  }
231
231
  if (debtBank === null) {
232
232
  return undefined;
@@ -243,7 +243,7 @@ async function getMarginfiAccountPositionState(umi, protocolAccount, marginfiGro
243
243
  return undefined;
244
244
  }
245
245
  if (!debtUsage) {
246
- debtUsage = await getTokenUsage(debtBank, false, 0, livePositionUpdates?.debtAdjustment);
246
+ debtUsage = await getTokenUsage(debtBank, false, 0, contextUpdates?.debtAdjustment);
247
247
  }
248
248
  const supplyPrice = (0, priceUtils_1.safeGetPrice)(supply.mint);
249
249
  let [maxLtv, liqThreshold] = await getMarginfiMaxLtvAndLiqThreshold(umi, marginfiGroup ?? new web3_js_1.PublicKey(marginfiAccounts_1.DEFAULT_MARGINFI_GROUP), {
@@ -24,7 +24,7 @@ interface AssetProps {
24
24
  }
25
25
  export declare function createFakePositionState(supply: AssetProps, debt: AssetProps, maxLtvBps: number, liqThresholdBps: number): PositionState;
26
26
  export declare function createSolautoSettings(settings: SolautoSettingsParametersInpArgs): SolautoSettingsParameters;
27
- type PositionAdjustment = {
27
+ type ContextAdjustment = {
28
28
  type: "supply";
29
29
  value: bigint;
30
30
  } | {
@@ -49,7 +49,7 @@ type PositionAdjustment = {
49
49
  type: "jupSwap";
50
50
  value: QuoteResponse;
51
51
  };
52
- export declare class LivePositionUpdates {
52
+ export declare class ContextUpdates {
53
53
  supplyAdjustment: bigint;
54
54
  debtAdjustment: bigint;
55
55
  settings: SolautoSettingsParameters | undefined;
@@ -60,9 +60,9 @@ export declare class LivePositionUpdates {
60
60
  };
61
61
  cancellingDca: TokenType | undefined;
62
62
  jupSwap: QuoteResponse | undefined;
63
- new(update: PositionAdjustment): void;
63
+ new(update: ContextAdjustment): void;
64
64
  reset(): void;
65
- hasUpdates(): boolean;
65
+ positionUpdates(): boolean;
66
66
  }
67
67
  export {};
68
68
  //# sourceMappingURL=generalUtils.d.ts.map
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LivePositionUpdates = void 0;
3
+ exports.ContextUpdates = void 0;
4
4
  exports.createDynamicSolautoProgram = createDynamicSolautoProgram;
5
5
  exports.nextAutomationPeriodTimestamp = nextAutomationPeriodTimestamp;
6
6
  exports.eligibleForNextAutomationPeriod = eligibleForNextAutomationPeriod;
@@ -401,7 +401,7 @@ function createSolautoSettings(settings) {
401
401
  padding1: [],
402
402
  };
403
403
  }
404
- class LivePositionUpdates {
404
+ class ContextUpdates {
405
405
  constructor() {
406
406
  this.supplyAdjustment = BigInt(0);
407
407
  this.debtAdjustment = BigInt(0);
@@ -456,7 +456,7 @@ class LivePositionUpdates {
456
456
  this.cancellingDca = undefined;
457
457
  this.jupSwap = undefined;
458
458
  }
459
- hasUpdates() {
459
+ positionUpdates() {
460
460
  return (this.supplyAdjustment !== BigInt(0) ||
461
461
  this.debtAdjustment !== BigInt(0) ||
462
462
  this.dcaInBalance !== undefined ||
@@ -464,4 +464,4 @@ class LivePositionUpdates {
464
464
  this.cancellingDca !== undefined);
465
465
  }
466
466
  }
467
- exports.LivePositionUpdates = LivePositionUpdates;
467
+ exports.ContextUpdates = ContextUpdates;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.554",
3
+ "version": "1.0.555",
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",
@@ -46,7 +46,7 @@ import {
46
46
  SOLAUTO_LUT,
47
47
  } from "../constants/solautoConstants";
48
48
  import { currentUnixSeconds } from "../utils/generalUtils";
49
- import { LivePositionUpdates } from "../utils/solauto/generalUtils";
49
+ import { ContextUpdates } from "../utils/solauto/generalUtils";
50
50
  import {
51
51
  ReferralStateManager,
52
52
  ReferralStateManagerArgs,
@@ -87,7 +87,7 @@ export abstract class SolautoClient extends ReferralStateManager {
87
87
 
88
88
  public authorityLutAddress?: PublicKey;
89
89
 
90
- public livePositionUpdates: LivePositionUpdates = new LivePositionUpdates();
90
+ public contextUpdates: ContextUpdates = new ContextUpdates();
91
91
 
92
92
  private signerSupplyBalance: bigint | undefined;
93
93
  private signerDebtBalance: bigint | undefined;
@@ -193,18 +193,18 @@ export abstract class SolautoClient extends ReferralStateManager {
193
193
  { commitment: "confirmed" }
194
194
  );
195
195
  } else {
196
- if (this.livePositionUpdates.activeDca) {
196
+ if (this.contextUpdates.activeDca) {
197
197
  this.solautoPositionData.position.dca =
198
- this.livePositionUpdates.activeDca;
198
+ this.contextUpdates.activeDca;
199
199
  }
200
- if (this.livePositionUpdates.settings) {
200
+ if (this.contextUpdates.settings) {
201
201
  this.solautoPositionData.position.settingParams =
202
- this.livePositionUpdates.settings;
202
+ this.contextUpdates.settings;
203
203
  }
204
- // All other live position updates can be derived by getting a fresh position state, so we don't need to do anything else form livePositionUpdates
204
+ // 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
205
205
  }
206
206
  }
207
- this.livePositionUpdates.reset();
207
+ this.contextUpdates.reset();
208
208
  }
209
209
 
210
210
  abstract protocolAccount(): PublicKey;
@@ -357,14 +357,14 @@ export abstract class SolautoClient extends ReferralStateManager {
357
357
 
358
358
  solautoPositionSettings(): SolautoSettingsParameters | undefined {
359
359
  return (
360
- this.livePositionUpdates.settings ??
360
+ this.contextUpdates.settings ??
361
361
  this.solautoPositionData?.position.settingParams
362
362
  );
363
363
  }
364
364
 
365
365
  solautoPositionActiveDca(): DCASettings | undefined {
366
366
  return (
367
- this.livePositionUpdates.activeDca ??
367
+ this.contextUpdates.activeDca ??
368
368
  this.solautoPositionData?.position.dca
369
369
  );
370
370
  }
@@ -381,7 +381,7 @@ export abstract class SolautoClient extends ReferralStateManager {
381
381
  dca?: DCASettingsInpArgs
382
382
  ): TransactionBuilder {
383
383
  if (dca && dca.dcaInBaseUnit > 0) {
384
- this.livePositionUpdates.new({
384
+ this.contextUpdates.new({
385
385
  type: "dcaInBalance",
386
386
  value: {
387
387
  amount: BigInt(dca.dcaInBaseUnit),
@@ -390,13 +390,13 @@ export abstract class SolautoClient extends ReferralStateManager {
390
390
  });
391
391
  }
392
392
  if (settingParams) {
393
- this.livePositionUpdates.new({
393
+ this.contextUpdates.new({
394
394
  type: "settings",
395
395
  value: settingParams,
396
396
  });
397
397
  }
398
398
  if (dca) {
399
- this.livePositionUpdates.new({
399
+ this.contextUpdates.new({
400
400
  type: "dca",
401
401
  value: dca,
402
402
  });
@@ -425,7 +425,7 @@ export abstract class SolautoClient extends ReferralStateManager {
425
425
  isSome(args.dca) &&
426
426
  args.dca.value.dcaInBaseUnit > 0
427
427
  ) {
428
- this.livePositionUpdates.new({
428
+ this.contextUpdates.new({
429
429
  type: "dcaInBalance",
430
430
  value: {
431
431
  amount: BigInt(args.dca.value.dcaInBaseUnit),
@@ -436,14 +436,14 @@ export abstract class SolautoClient extends ReferralStateManager {
436
436
  }
437
437
 
438
438
  if (isOption(args.settingParams) && isSome(args.settingParams)) {
439
- this.livePositionUpdates.new({
439
+ this.contextUpdates.new({
440
440
  type: "settings",
441
441
  value: args.settingParams.value,
442
442
  });
443
443
  }
444
444
 
445
445
  if (isOption(args.dca) && isSome(args.dca)) {
446
- this.livePositionUpdates.new({
446
+ this.contextUpdates.new({
447
447
  type: "dca",
448
448
  value: args.dca.value,
449
449
  });
@@ -488,7 +488,7 @@ export abstract class SolautoClient extends ReferralStateManager {
488
488
  signerDcaTa = publicKey(this.signerDebtTa);
489
489
  }
490
490
 
491
- this.livePositionUpdates.new({
491
+ this.contextUpdates.new({
492
492
  type: "cancellingDca",
493
493
  value: this.solautoPositionData!.position.dca.tokenType,
494
494
  });
@@ -550,18 +550,18 @@ export abstract class SolautoClient extends ReferralStateManager {
550
550
  }
551
551
 
552
552
  if (args.__kind === "Deposit") {
553
- this.livePositionUpdates.new({
553
+ this.contextUpdates.new({
554
554
  type: "supply",
555
555
  value: BigInt(args.fields[0]),
556
556
  });
557
557
  } else if (args.__kind === "Withdraw") {
558
558
  if (args.fields[0].__kind === "Some") {
559
- this.livePositionUpdates.new({
559
+ this.contextUpdates.new({
560
560
  type: "supply",
561
561
  value: BigInt(args.fields[0].fields[0]) * BigInt(-1),
562
562
  });
563
563
  } else {
564
- this.livePositionUpdates.new({
564
+ this.contextUpdates.new({
565
565
  type: "supply",
566
566
  value:
567
567
  (this.solautoPositionState?.supply.amountUsed.baseUnit ??
@@ -569,18 +569,18 @@ export abstract class SolautoClient extends ReferralStateManager {
569
569
  });
570
570
  }
571
571
  } else if (args.__kind === "Borrow") {
572
- this.livePositionUpdates.new({
572
+ this.contextUpdates.new({
573
573
  type: "debt",
574
574
  value: BigInt(args.fields[0]),
575
575
  });
576
576
  } else {
577
577
  if (args.fields[0].__kind === "Some") {
578
- this.livePositionUpdates.new({
578
+ this.contextUpdates.new({
579
579
  type: "debt",
580
580
  value: BigInt(args.fields[0].fields[0]) * BigInt(-1),
581
581
  });
582
582
  } else {
583
- this.livePositionUpdates.new({
583
+ this.contextUpdates.new({
584
584
  type: "debt",
585
585
  value:
586
586
  (this.solautoPositionState?.debt.amountUsed.baseUnit ?? BigInt(0)) *
@@ -615,7 +615,7 @@ export abstract class SolautoClient extends ReferralStateManager {
615
615
  Boolean(this.solautoPositionState) &&
616
616
  Number(this.solautoPositionState!.lastUpdated) >
617
617
  currentUnixSeconds() - MIN_POSITION_STATE_FRESHNESS_SECS &&
618
- !this.livePositionUpdates.hasUpdates()
618
+ !this.contextUpdates.positionUpdates()
619
619
  ) {
620
620
  return this.solautoPositionState;
621
621
  }
@@ -726,7 +726,7 @@ export class SolautoMarginfiClient extends SolautoClient {
726
726
  this.marginfiGroup,
727
727
  useDesignatedMint ? { mint: this.supplyMint } : undefined,
728
728
  useDesignatedMint ? { mint: this.debtMint } : undefined,
729
- this.livePositionUpdates
729
+ this.contextUpdates
730
730
  );
731
731
 
732
732
  if (resp) {
@@ -583,7 +583,7 @@ export async function getTransactionChores(
583
583
  client,
584
584
  accountsGettingCreated,
585
585
  solautoActions,
586
- client.livePositionUpdates.dcaInBalance
586
+ client.contextUpdates.dcaInBalance
587
587
  ),
588
588
  await rebalanceChoresBefore(client, tx, accountsGettingCreated),
589
589
  ]);
@@ -592,7 +592,7 @@ export async function getTransactionChores(
592
592
  transactionChoresAfter(
593
593
  client,
594
594
  solautoActions,
595
- client.livePositionUpdates.cancellingDca
595
+ client.contextUpdates.cancellingDca
596
596
  )
597
597
  );
598
598
 
@@ -620,8 +620,8 @@ export async function requiresRefreshBeforeRebalance(
620
620
  return true;
621
621
  } else if (client.solautoPositionData && !client.selfManaged) {
622
622
  if (
623
- client.livePositionUpdates.supplyAdjustment > BigInt(0) ||
624
- client.livePositionUpdates.debtAdjustment > BigInt(0)
623
+ client.contextUpdates.supplyAdjustment > BigInt(0) ||
624
+ client.contextUpdates.debtAdjustment > BigInt(0)
625
625
  ) {
626
626
  return false;
627
627
  }
@@ -638,8 +638,8 @@ export async function requiresRefreshBeforeRebalance(
638
638
 
639
639
  client.log("Liq utilization rate diff:", utilizationRateDiff);
640
640
  if (
641
- client.livePositionUpdates.supplyAdjustment === BigInt(0) &&
642
- client.livePositionUpdates.debtAdjustment === BigInt(0) &&
641
+ client.contextUpdates.supplyAdjustment === BigInt(0) &&
642
+ client.contextUpdates.debtAdjustment === BigInt(0) &&
643
643
  utilizationRateDiff >= 10
644
644
  ) {
645
645
  client.log(
@@ -667,7 +667,7 @@ export async function buildSolautoRebalanceTransaction(
667
667
 
668
668
  if (
669
669
  (client.solautoPositionState?.supply.amountUsed.baseUnit === BigInt(0) &&
670
- client.livePositionUpdates.supplyAdjustment === BigInt(0)) ||
670
+ client.contextUpdates.supplyAdjustment === BigInt(0)) ||
671
671
  (targetLiqUtilizationRateBps === undefined &&
672
672
  !eligibleForRebalance(
673
673
  client.solautoPositionState!,
@@ -26,7 +26,7 @@ import {
26
26
  import { MarginfiAssetAccounts } from "../types/accounts";
27
27
  import { PositionState, PositionTokenUsage } from "../generated";
28
28
  import { USD_DECIMALS } from "../constants/generalAccounts";
29
- import { LivePositionUpdates } from "./solauto/generalUtils";
29
+ import { ContextUpdates } from "./solauto/generalUtils";
30
30
  import { ALL_SUPPORTED_TOKENS, TOKEN_INFO } from "../constants";
31
31
  import { fetchTokenPrices, safeGetPrice } from "./priceUtils";
32
32
 
@@ -296,7 +296,7 @@ export async function getMarginfiAccountPositionState(
296
296
  marginfiGroup?: PublicKey,
297
297
  supply?: BankSelection,
298
298
  debt?: BankSelection,
299
- livePositionUpdates?: LivePositionUpdates
299
+ contextUpdates?: ContextUpdates
300
300
  ): Promise<
301
301
  | { supplyBank: Bank | null; debtBank: Bank | null; state: PositionState }
302
302
  | undefined
@@ -381,7 +381,7 @@ export async function getMarginfiAccountPositionState(
381
381
  supplyBank!,
382
382
  true,
383
383
  bytesToI80F48(supplyBalances[0].assetShares.value),
384
- livePositionUpdates?.supplyAdjustment
384
+ contextUpdates?.supplyAdjustment
385
385
  );
386
386
  }
387
387
 
@@ -398,7 +398,7 @@ export async function getMarginfiAccountPositionState(
398
398
  debtBank!,
399
399
  false,
400
400
  bytesToI80F48(debtBalances[0].liabilityShares.value),
401
- livePositionUpdates?.debtAdjustment
401
+ contextUpdates?.debtAdjustment
402
402
  );
403
403
  }
404
404
  }
@@ -412,7 +412,7 @@ export async function getMarginfiAccountPositionState(
412
412
  supplyBank,
413
413
  true,
414
414
  0,
415
- livePositionUpdates?.supplyAdjustment
415
+ contextUpdates?.supplyAdjustment
416
416
  );
417
417
  }
418
418
 
@@ -440,7 +440,7 @@ export async function getMarginfiAccountPositionState(
440
440
  debtBank,
441
441
  false,
442
442
  0,
443
- livePositionUpdates?.debtAdjustment
443
+ contextUpdates?.debtAdjustment
444
444
  );
445
445
  }
446
446
 
@@ -625,7 +625,7 @@ export function createSolautoSettings(
625
625
  };
626
626
  }
627
627
 
628
- type PositionAdjustment =
628
+ type ContextAdjustment =
629
629
  | { type: "supply"; value: bigint }
630
630
  | { type: "debt"; value: bigint }
631
631
  | { type: "settings"; value: SolautoSettingsParametersInpArgs }
@@ -634,7 +634,7 @@ type PositionAdjustment =
634
634
  | { type: "cancellingDca"; value: TokenType }
635
635
  | { type: "jupSwap", value: QuoteResponse };
636
636
 
637
- export class LivePositionUpdates {
637
+ export class ContextUpdates {
638
638
  public supplyAdjustment = BigInt(0);
639
639
  public debtAdjustment = BigInt(0);
640
640
  public settings: SolautoSettingsParameters | undefined = undefined;
@@ -643,7 +643,7 @@ export class LivePositionUpdates {
643
643
  public cancellingDca: TokenType | undefined = undefined;
644
644
  public jupSwap: QuoteResponse | undefined = undefined;
645
645
 
646
- new(update: PositionAdjustment) {
646
+ new(update: ContextAdjustment) {
647
647
  if (update.type === "supply") {
648
648
  this.supplyAdjustment += update.value;
649
649
  } else if (update.type === "debt") {
@@ -684,7 +684,7 @@ export class LivePositionUpdates {
684
684
  this.jupSwap = undefined;
685
685
  }
686
686
 
687
- hasUpdates(): boolean {
687
+ positionUpdates(): boolean {
688
688
  return (
689
689
  this.supplyAdjustment !== BigInt(0) ||
690
690
  this.debtAdjustment !== BigInt(0) ||