@haven-fi/solauto-sdk 1.0.141 → 1.0.143

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":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EAEvB,kBAAkB,EAClB,GAAG,EACJ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EACL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG7D,cAAM,YAAY;IAIP,WAAW,EAAE,MAAM,EAAE;IAC5B,OAAO,CAAC,GAAG;IAJb,KAAK,EAAE,uBAAuB,EAAE,CAAM;gBAG7B,WAAW,EAAE,MAAM,EAAE,EACpB,GAAG,EAAE,GAAG;IAGZ,YAAY,CAChB,mBAAmB,EAAE,MAAM,EAAE,GAC5B,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAkBrC,KAAK;CAKN;AAED,qBAAa,eAAe;IAKjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CACV;QAAE,EAAE,EAAE,kBAAkB,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CACxE;IACM,IAAI,CAAC,EAAE,MAAM;IATtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;gBAGf,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CACV;QAAE,EAAE,EAAE,kBAAkB,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CACxE,EACM,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAIV,OAAO,CAAC,UAAU,EAAE,MAAM;IAMhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAED,cAAM,cAAc;IAEhB,OAAO,CAAC,SAAS;IACV,YAAY,EAAE,YAAY;IAC1B,KAAK,EAAE,eAAe,EAAE;gBAFvB,SAAS,EAAE,SAAS,EACrB,YAAY,EAAE,YAAY,EAC1B,KAAK,GAAE,eAAe,EAAO;IAGhC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BvD,GAAG,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE;IAMzB,UAAU,CAAC,UAAU,EAAE,MAAM;IAO7B,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAYzD,YAAY,IAAI,MAAM,EAAE;IAMxB,IAAI,IAAI,MAAM;CAYf;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,EAAE,CAAC;AAEJ,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,aAAa,CAAC;IARxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;gBAGzB,SAAS,EAAE,aAAa,GAAG,oBAAoB,EAC/C,cAAc,CAAC,GAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,aAAA,EAC/D,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAC3B,YAAY,CAAC,EAAE,OAAO,YAAA,EACtB,aAAa,CAAC,EAAE,aAAa,YAAA;YAQzB,uBAAuB;IAwCrC,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM;IAoBV,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,kBAAkB;IAoB7D,UAAU,CACd,YAAY,EAAE,eAAe,EAAE,EAC/B,eAAe,CAAC,EAAE,kBAAkB,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAgGhC,IAAI,CACR,KAAK,EAAE,eAAe,EAAE,EACxB,eAAe,CAAC,EAAE,kBAAkB,EACpC,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,0BAA0B,CAAC;CAiIvC"}
@@ -27,7 +27,7 @@ class LookupTables {
27
27
  return this.cache;
28
28
  }
29
29
  reset() {
30
- this.cache = this.cache.filter(x => this.defaultLuts.includes(x.publicKey.toString()));
30
+ this.cache = this.cache.filter((x) => this.defaultLuts.includes(x.publicKey.toString()));
31
31
  }
32
32
  }
33
33
  class TransactionItem {
@@ -286,7 +286,7 @@ class TransactionsManager {
286
286
  this.statuses.splice(statusesStartIdx + i, itemSets.length - i, ...newItemSets.map((x) => ({
287
287
  name: x.name(),
288
288
  status: TransactionStatus.Queued,
289
- attemptNum: 0.
289
+ attemptNum: 0,
290
290
  })));
291
291
  this.txHandler.log(this.statuses);
292
292
  itemSets.splice(i + 1, itemSets.length - i - 1, ...newItemSets.slice(1));
@@ -311,8 +311,14 @@ class TransactionsManager {
311
311
  if (this.txHandler.localTest) {
312
312
  await this.debugAccounts(itemSet, tx);
313
313
  }
314
- const txSig = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, tx, this.txType, attemptNum, prioritySetting);
315
- this.updateStatus(itemSet.name(), TransactionStatus.Successful, attemptNum, txSig ? bs58_1.default.encode(txSig) : undefined);
314
+ try {
315
+ const txSig = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, tx, this.txType, attemptNum, prioritySetting);
316
+ this.updateStatus(itemSet.name(), TransactionStatus.Successful, attemptNum, txSig ? bs58_1.default.encode(txSig) : undefined);
317
+ }
318
+ catch (e) {
319
+ this.updateStatus(itemSet.name(), TransactionStatus.Failed, attemptNum);
320
+ throw e;
321
+ }
316
322
  }
317
323
  }, 4, 150, this.errorsToThrow);
318
324
  }
@@ -81,10 +81,10 @@ function eligibleForRebalance(positionState, positionSettings, positionDca, curr
81
81
  : positionSettings.boostToBps;
82
82
  const repayFrom = positionSettings.repayToBps + positionSettings.repayGap;
83
83
  const boostFrom = boostToBps - positionSettings.boostGap;
84
- if (Math.max(0, positionState.liqUtilizationRateBps - boostFrom) / boostFrom >= bpsDistanceThreshold) {
84
+ if (Math.max(0, positionState.liqUtilizationRateBps - boostFrom) <= bpsDistanceThreshold) {
85
85
  return "boost";
86
86
  }
87
- else if (Math.max(0, repayFrom - positionState.liqUtilizationRateBps) >= bpsDistanceThreshold) {
87
+ else if (Math.max(0, repayFrom - positionState.liqUtilizationRateBps) <= bpsDistanceThreshold) {
88
88
  return "repay";
89
89
  }
90
90
  return undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.141",
3
+ "version": "1.0.143",
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",
@@ -48,7 +48,9 @@ class LookupTables {
48
48
  }
49
49
 
50
50
  reset() {
51
- this.cache = this.cache.filter(x => this.defaultLuts.includes(x.publicKey.toString()));
51
+ this.cache = this.cache.filter((x) =>
52
+ this.defaultLuts.includes(x.publicKey.toString())
53
+ );
52
54
  }
53
55
  }
54
56
 
@@ -239,11 +241,18 @@ export class TransactionsManager {
239
241
  return transactionSets;
240
242
  }
241
243
 
242
- updateStatus(name: string, status: TransactionStatus, attemptNum: number, txSig?: string) {
244
+ updateStatus(
245
+ name: string,
246
+ status: TransactionStatus,
247
+ attemptNum: number,
248
+ txSig?: string
249
+ ) {
243
250
  if (!this.statuses.filter((x) => x.name === name)) {
244
251
  this.statuses.push({ name, status, txSig, attemptNum });
245
252
  } else {
246
- const idx = this.statuses.findIndex((x) => x.name === name && x.attemptNum === attemptNum);
253
+ const idx = this.statuses.findIndex(
254
+ (x) => x.name === name && x.attemptNum === attemptNum
255
+ );
247
256
  if (idx !== -1) {
248
257
  this.statuses[idx].status = status;
249
258
  this.statuses[idx].txSig = txSig;
@@ -292,7 +301,11 @@ export class TransactionsManager {
292
301
  ) {
293
302
  await retryWithExponentialBackoff(
294
303
  async (attemptNum) => {
295
- this.updateStatus(updateLutTxName, TransactionStatus.Processing, attemptNum);
304
+ this.updateStatus(
305
+ updateLutTxName,
306
+ TransactionStatus.Processing,
307
+ attemptNum
308
+ );
296
309
  try {
297
310
  const txSig = await sendSingleOptimizedTransaction(
298
311
  this.txHandler.umi,
@@ -302,9 +315,18 @@ export class TransactionsManager {
302
315
  attemptNum,
303
316
  prioritySetting
304
317
  );
305
- this.updateStatus(updateLutTxName, TransactionStatus.Successful, attemptNum, txSig ? bs58.encode(txSig) : undefined);
318
+ this.updateStatus(
319
+ updateLutTxName,
320
+ TransactionStatus.Successful,
321
+ attemptNum,
322
+ txSig ? bs58.encode(txSig) : undefined
323
+ );
306
324
  } catch (e) {
307
- this.updateStatus(updateLutTxName, TransactionStatus.Failed, attemptNum);
325
+ this.updateStatus(
326
+ updateLutTxName,
327
+ TransactionStatus.Failed,
328
+ attemptNum
329
+ );
308
330
  throw e;
309
331
  }
310
332
  },
@@ -367,7 +389,7 @@ export class TransactionsManager {
367
389
  prioritySetting?: PriorityFeeSetting,
368
390
  initialized?: boolean
369
391
  ): Promise<TransactionManagerStatuses> {
370
- this.statuses = []
392
+ this.statuses = [];
371
393
  this.lookupTables.reset();
372
394
 
373
395
  if (!initialized) {
@@ -419,7 +441,7 @@ export class TransactionsManager {
419
441
  ...newItemSets.map((x) => ({
420
442
  name: x.name(),
421
443
  status: TransactionStatus.Queued,
422
- attemptNum: 0.
444
+ attemptNum: 0,
423
445
  }))
424
446
  );
425
447
  this.txHandler.log(this.statuses);
@@ -445,28 +467,45 @@ export class TransactionsManager {
445
467
  const tx = await itemSet.getSingleTransaction();
446
468
 
447
469
  if (tx.getInstructions().length === 0) {
448
- this.updateStatus(itemSet.name(), TransactionStatus.Skipped, attemptNum);
470
+ this.updateStatus(
471
+ itemSet.name(),
472
+ TransactionStatus.Skipped,
473
+ attemptNum
474
+ );
449
475
  } else {
450
- this.updateStatus(itemSet.name(), TransactionStatus.Processing, attemptNum);
476
+ this.updateStatus(
477
+ itemSet.name(),
478
+ TransactionStatus.Processing,
479
+ attemptNum
480
+ );
451
481
 
452
482
  if (this.txHandler.localTest) {
453
483
  await this.debugAccounts(itemSet, tx);
454
484
  }
455
485
 
456
- const txSig = await sendSingleOptimizedTransaction(
457
- this.txHandler.umi,
458
- this.txHandler.connection,
459
- tx,
460
- this.txType,
461
- attemptNum,
462
- prioritySetting
463
- );
464
- this.updateStatus(
465
- itemSet.name(),
466
- TransactionStatus.Successful,
467
- attemptNum,
468
- txSig ? bs58.encode(txSig) : undefined,
469
- );
486
+ try {
487
+ const txSig = await sendSingleOptimizedTransaction(
488
+ this.txHandler.umi,
489
+ this.txHandler.connection,
490
+ tx,
491
+ this.txType,
492
+ attemptNum,
493
+ prioritySetting
494
+ );
495
+ this.updateStatus(
496
+ itemSet.name(),
497
+ TransactionStatus.Successful,
498
+ attemptNum,
499
+ txSig ? bs58.encode(txSig) : undefined
500
+ );
501
+ } catch (e) {
502
+ this.updateStatus(
503
+ itemSet.name(),
504
+ TransactionStatus.Failed,
505
+ attemptNum
506
+ );
507
+ throw e;
508
+ }
470
509
  }
471
510
  },
472
511
  4,
@@ -145,9 +145,9 @@ export function eligibleForRebalance(
145
145
  const repayFrom = positionSettings.repayToBps + positionSettings.repayGap;
146
146
  const boostFrom = boostToBps - positionSettings.boostGap;
147
147
 
148
- if (Math.max(0, positionState.liqUtilizationRateBps - boostFrom) / boostFrom >= bpsDistanceThreshold) {
148
+ if (Math.max(0, positionState.liqUtilizationRateBps - boostFrom) <= bpsDistanceThreshold) {
149
149
  return "boost";
150
- } else if (Math.max(0, repayFrom - positionState.liqUtilizationRateBps) >= bpsDistanceThreshold) {
150
+ } else if (Math.max(0, repayFrom - positionState.liqUtilizationRateBps) <= bpsDistanceThreshold) {
151
151
  return "repay";
152
152
  }
153
153