@haven-fi/solauto-sdk 1.0.115 → 1.0.117

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAKxE,OAAO,EAEL,aAAa,EASd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAuMzD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA8G7B;AAkLD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA4BnD;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IACT,EAAE,EAAE,kBAAkB,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC,GACG,SAAS,CACZ,CAwHA;AAED,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,SAAS,GACtB,OAAO,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAmCrD"}
1
+ {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAKxE,OAAO,EAEL,aAAa,EASd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAuMzD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA+G7B;AAkLD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA4BnD;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IACT,EAAE,EAAE,kBAAkB,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC,GACG,SAAS,CACZ,CAwHA;AAED,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,SAAS,GACtB,OAAO,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAmCrD"}
@@ -149,6 +149,7 @@ async function rebalanceChoresBefore(client, tx, accountsGettingCreated) {
149
149
  }
150
150
  if (checkIntermediaryMfiAccount &&
151
151
  !(0, generalUtils_1.rpcAccountCreated)(intermediaryMarginfiAccount)) {
152
+ client.log("Creating intermediary marginfi account");
152
153
  chores = chores.add(client.createIntermediaryMarginfiAccount());
153
154
  }
154
155
  if (checkSignerSupplyTa &&
@@ -1,7 +1,7 @@
1
1
  import { AddressLookupTableInput, TransactionBuilder, Umi } from "@metaplex-foundation/umi";
2
2
  import { SolautoClient } from "../clients/solautoClient";
3
3
  import { ErrorsToThrow } from "../utils/generalUtils";
4
- import { PriorityFeeSetting } from "../types";
4
+ import { PriorityFeeSetting, TransactionRunType } from "../types";
5
5
  import { ReferralStateManager, TxHandler } from "../clients";
6
6
  declare class LookupTables {
7
7
  defaultLuts: string[];
@@ -39,11 +39,11 @@ declare class TransactionSet {
39
39
  name(): string;
40
40
  }
41
41
  export declare enum TransactionStatus {
42
- Skipped = 0,
43
- Processing = 1,
44
- AwaitingSignature = 2,
45
- Queued = 3,
46
- Successful = 4
42
+ Skipped = "Skipped",
43
+ Processing = "Processing",
44
+ AwaitingSignature = "Awaiting Signature",
45
+ Queued = "Queued",
46
+ Successful = "Successful"
47
47
  }
48
48
  export type TransactionManagerStatuses = {
49
49
  name: string;
@@ -53,16 +53,16 @@ export type TransactionManagerStatuses = {
53
53
  export declare class TransactionsManager {
54
54
  private txHandler;
55
55
  private statusCallback?;
56
- private simulateOnly?;
56
+ private txType?;
57
57
  private mustBeAtomic?;
58
58
  private errorsToThrow?;
59
59
  private statuses;
60
60
  private lookupTables;
61
- constructor(txHandler: SolautoClient | ReferralStateManager, statusCallback?: ((statuses: TransactionManagerStatuses) => void) | undefined, simulateOnly?: boolean | undefined, mustBeAtomic?: boolean | undefined, errorsToThrow?: ErrorsToThrow | undefined);
61
+ constructor(txHandler: SolautoClient | ReferralStateManager, statusCallback?: ((statuses: TransactionManagerStatuses) => void) | undefined, txType?: TransactionRunType | undefined, mustBeAtomic?: boolean | undefined, errorsToThrow?: ErrorsToThrow | undefined);
62
62
  private assembleTransactionSets;
63
63
  updateStatus(name: string, status: TransactionStatus, txSig?: string): void;
64
64
  debugAccounts(itemSet: TransactionSet, tx: TransactionBuilder): Promise<void>;
65
- clientSend(items: TransactionItem[], prioritySetting?: PriorityFeeSetting): Promise<void>;
65
+ clientSend(transactions: TransactionItem[], prioritySetting?: PriorityFeeSetting): Promise<void>;
66
66
  send(items: TransactionItem[], prioritySetting?: PriorityFeeSetting, initialized?: boolean): Promise<void>;
67
67
  }
68
68
  export {};
@@ -1 +1 @@
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,MAAM,UAAU,CAAC;AAC9C,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;CAiBtC;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,IAAA;IACP,UAAU,IAAA;IACV,iBAAiB,IAAA;IACjB,MAAM,IAAA;IACN,UAAU,IAAA;CACX;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EAAE,CAAC;AAEJ,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,YAAY,CAAC;IACrB,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,YAAY,CAAC,EAAE,OAAO,YAAA,EACtB,YAAY,CAAC,EAAE,OAAO,YAAA,EACtB,aAAa,CAAC,EAAE,aAAa,YAAA;YAQzB,uBAAuB;IAwCrC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM;IAiB9D,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,kBAAkB;IAoB7D,UAAU,CACd,KAAK,EAAE,eAAe,EAAE,EACxB,eAAe,CAAC,EAAE,kBAAkB;IAmFhC,IAAI,CACR,KAAK,EAAE,eAAe,EAAE,EACxB,eAAe,CAAC,EAAE,kBAAkB,EACpC,WAAW,CAAC,EAAE,OAAO;CA+GxB"}
1
+ {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"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"}
@@ -109,17 +109,17 @@ class TransactionSet {
109
109
  }
110
110
  var TransactionStatus;
111
111
  (function (TransactionStatus) {
112
- TransactionStatus[TransactionStatus["Skipped"] = 0] = "Skipped";
113
- TransactionStatus[TransactionStatus["Processing"] = 1] = "Processing";
114
- TransactionStatus[TransactionStatus["AwaitingSignature"] = 2] = "AwaitingSignature";
115
- TransactionStatus[TransactionStatus["Queued"] = 3] = "Queued";
116
- TransactionStatus[TransactionStatus["Successful"] = 4] = "Successful";
112
+ TransactionStatus["Skipped"] = "Skipped";
113
+ TransactionStatus["Processing"] = "Processing";
114
+ TransactionStatus["AwaitingSignature"] = "Awaiting Signature";
115
+ TransactionStatus["Queued"] = "Queued";
116
+ TransactionStatus["Successful"] = "Successful";
117
117
  })(TransactionStatus || (exports.TransactionStatus = TransactionStatus = {}));
118
118
  class TransactionsManager {
119
- constructor(txHandler, statusCallback, simulateOnly, mustBeAtomic, errorsToThrow) {
119
+ constructor(txHandler, statusCallback, txType, mustBeAtomic, errorsToThrow) {
120
120
  this.txHandler = txHandler;
121
121
  this.statusCallback = statusCallback;
122
- this.simulateOnly = simulateOnly;
122
+ this.txType = txType;
123
123
  this.mustBeAtomic = mustBeAtomic;
124
124
  this.errorsToThrow = errorsToThrow;
125
125
  this.statuses = [];
@@ -189,7 +189,8 @@ class TransactionsManager {
189
189
  }
190
190
  }
191
191
  }
192
- async clientSend(items, prioritySetting) {
192
+ async clientSend(transactions, prioritySetting) {
193
+ const items = [...transactions];
193
194
  const client = this.txHandler;
194
195
  const updateLookupTable = await client.updateLookupTable();
195
196
  const updateLutTxName = "update lookup table";
@@ -197,7 +198,7 @@ class TransactionsManager {
197
198
  updateLookupTable.updateLutTx.getInstructions().length > 0 &&
198
199
  updateLookupTable?.needsToBeIsolated) {
199
200
  this.updateStatus(updateLutTxName, TransactionStatus.Processing);
200
- await (0, generalUtils_1.retryWithExponentialBackoff)(async (attemptNum) => await (0, solanaUtils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, updateLookupTable.updateLutTx, this.simulateOnly, attemptNum, prioritySetting, () => this.updateStatus(updateLutTxName, TransactionStatus.AwaitingSignature)), 3, 150, this.errorsToThrow);
201
+ await (0, generalUtils_1.retryWithExponentialBackoff)(async (attemptNum) => await (0, solanaUtils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, updateLookupTable.updateLutTx, this.txType, attemptNum, prioritySetting, () => this.updateStatus(updateLutTxName, TransactionStatus.AwaitingSignature)), 3, 150, this.errorsToThrow);
201
202
  this.updateStatus(updateLutTxName, TransactionStatus.Successful);
202
203
  }
203
204
  this.lookupTables.defaultLuts = client.defaultLookupTables();
@@ -226,7 +227,7 @@ class TransactionsManager {
226
227
  client.resetLiveTxUpdates(false);
227
228
  throw e;
228
229
  });
229
- if (!this.simulateOnly) {
230
+ if (this.txType !== "only-simulate") {
230
231
  await client.resetLiveTxUpdates();
231
232
  }
232
233
  }
@@ -256,7 +257,7 @@ class TransactionsManager {
256
257
  // this.updateStatus(set.name(), TransactionStatus.Successful);
257
258
  // });
258
259
  }
259
- else if (!this.simulateOnly || itemSets.length === 1) {
260
+ else if (this.txType !== "only-simulate" || itemSets.length === 1) {
260
261
  for (let i = 0; i < itemSets.length; i++) {
261
262
  const getFreshItemSet = async (itemSet, attemptNum) => {
262
263
  await itemSet.refetchAll(attemptNum);
@@ -295,7 +296,7 @@ class TransactionsManager {
295
296
  if (this.txHandler.localTest) {
296
297
  await this.debugAccounts(itemSet, tx);
297
298
  }
298
- const txSig = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, tx, this.simulateOnly, attemptNum, prioritySetting, () => this.updateStatus(itemSet.name(), TransactionStatus.AwaitingSignature));
299
+ const txSig = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, tx, this.txType, attemptNum, prioritySetting, () => this.updateStatus(itemSet.name(), TransactionStatus.AwaitingSignature));
299
300
  this.updateStatus(itemSet.name(), TransactionStatus.Successful, txSig ? bs58_1.default.encode(txSig) : undefined);
300
301
  }
301
302
  }, 4, 150, this.errorsToThrow);
@@ -14,4 +14,5 @@ export declare enum PriorityFeeSetting {
14
14
  High = "High"
15
15
  }
16
16
  export type RebalanceAction = "boost" | "repay" | "dca";
17
+ export type TransactionRunType = "skip-simulation" | "only-simulate" | "normal";
17
18
  //# sourceMappingURL=solauto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solauto.d.ts","sourceRoot":"","sources":["../../src/types/solauto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,oBAAY,kBAAkB;IAC5B,OAAO,WAAW;IAClB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"solauto.d.ts","sourceRoot":"","sources":["../../src/types/solauto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,oBAAY,kBAAkB;IAC5B,OAAO,WAAW;IAClB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,GAAG,QAAQ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { AddressLookupTableInput, Signer, TransactionBuilder, Umi, WrappedInstruction } from "@metaplex-foundation/umi";
2
2
  import { Connection, PublicKey, TransactionInstruction } from "@solana/web3.js";
3
- import { PriorityFeeSetting } from "../types";
3
+ import { PriorityFeeSetting, TransactionRunType } from "../types";
4
4
  export declare function getSolanaRpcConnection(heliusApiKey: string): [Connection, Umi];
5
5
  export declare function currentUnixSecondsSolana(umi: Umi): Promise<number>;
6
6
  export declare function getWrappedInstruction(signer: Signer, ix: TransactionInstruction): WrappedInstruction;
@@ -13,5 +13,5 @@ export declare function splTokenTransferUmiIx(signer: Signer, fromTa: PublicKey,
13
13
  export declare function getAdressLookupInputs(umi: Umi, lookupTableAddresses: string[]): Promise<AddressLookupTableInput[]>;
14
14
  export declare function assembleFinalTransaction(signer: Signer, tx: TransactionBuilder, computeUnitPrice: number, computeUnitLimit?: number): TransactionBuilder;
15
15
  export declare function getComputeUnitPriceEstimate(umi: Umi, tx: TransactionBuilder, prioritySetting: PriorityFeeSetting): Promise<number>;
16
- export declare function sendSingleOptimizedTransaction(umi: Umi, connection: Connection, tx: TransactionBuilder, simulateOnly?: boolean, attemptNum?: number, prioritySetting?: PriorityFeeSetting, onAwaitingSign?: () => void): Promise<Uint8Array | undefined>;
16
+ export declare function sendSingleOptimizedTransaction(umi: Umi, connection: Connection, tx: TransactionBuilder, txType?: TransactionRunType, attemptNum?: number, prioritySetting?: PriorityFeeSetting, onAwaitingSign?: () => void): Promise<Uint8Array | undefined>;
17
17
  //# sourceMappingURL=solanaUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAGL,UAAU,EACV,SAAS,EAIT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAYzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,GACnB,CAAC,UAAU,EAAE,GAAG,CAAC,CAOnB;AAED,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,sBAAsB,GACzB,kBAAkB,CAMpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,kBAAkB,CAOpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,kBAAkB,CAOpB;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,GACd,kBAAkB,CAUpB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,EACtB,QAAQ,EAAE,MAAM,GACf,kBAAkB,CASpB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,SAAS,EACvB,SAAS,EAAE,SAAS,GACnB,kBAAkB,CAKpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,kBAAkB,CAKpB;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAkBpC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,kBAAkB,EACtB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,CAAC,EAAE,MAAM,sBA4D1B;AAmBD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,eAAe,EAAE,kBAAkB,GAClC,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,YAAY,CAAC,EAAE,OAAO,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,GAAE,kBAA+C,EAChE,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CA0DjC"}
1
+ {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAGL,UAAU,EACV,SAAS,EAIT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAYzB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAElE,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,GACnB,CAAC,UAAU,EAAE,GAAG,CAAC,CAOnB;AAED,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,sBAAsB,GACzB,kBAAkB,CAMpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,kBAAkB,CAOpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,kBAAkB,CAOpB;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,GACd,kBAAkB,CAUpB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,EACtB,QAAQ,EAAE,MAAM,GACf,kBAAkB,CASpB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,SAAS,EACvB,SAAS,EAAE,SAAS,GACnB,kBAAkB,CAKpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,kBAAkB,CAKpB;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAkBpC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,kBAAkB,EACtB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,CAAC,EAAE,MAAM,sBA4D1B;AAmBD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,eAAe,EAAE,kBAAkB,GAClC,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,GAAE,kBAA+C,EAChE,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CA4DjC"}
@@ -154,17 +154,19 @@ async function getComputeUnitPriceEstimate(umi, tx, prioritySetting) {
154
154
  const feeEstimate = Math.round(resp.priorityFeeEstimate);
155
155
  return feeEstimate;
156
156
  }
157
- async function sendSingleOptimizedTransaction(umi, connection, tx, simulateOnly, attemptNum, prioritySetting = types_1.PriorityFeeSetting.Default, onAwaitingSign) {
157
+ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, attemptNum, prioritySetting = types_1.PriorityFeeSetting.Default, onAwaitingSign) {
158
158
  console.log("Sending single optimized transaction...");
159
159
  console.log("Instructions: ", tx.getInstructions().length);
160
160
  console.log("Serialized transaction size: ", tx.getTransactionSize(umi));
161
161
  const feeEstimate = await getComputeUnitPriceEstimate(umi, tx, prioritySetting);
162
162
  console.log("Compute unit price: ", feeEstimate);
163
- // TODO: we should only retry simulation if it's not a solauto error
164
- const simulationResult = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await simulateTransaction(connection, (0, umi_web3js_adapters_1.toWeb3JsTransaction)(await (await assembleFinalTransaction(umi.identity, tx, feeEstimate, 1400000).setLatestBlockhash(umi)).build(umi))), 3);
165
- const computeUnitLimit = Math.round(simulationResult.value.unitsConsumed * 1.1);
166
- console.log("Compute unit limit: ", computeUnitLimit);
167
- if (!simulateOnly) {
163
+ if (txType !== "skip-simulation") {
164
+ // TODO: we should only retry simulation if it's not a solauto error
165
+ const simulationResult = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await simulateTransaction(connection, (0, umi_web3js_adapters_1.toWeb3JsTransaction)(await (await assembleFinalTransaction(umi.identity, tx, feeEstimate, 1400000).setLatestBlockhash(umi)).build(umi))), 3);
166
+ const computeUnitLimit = Math.round(simulationResult.value.unitsConsumed * 1.1);
167
+ console.log("Compute unit limit: ", computeUnitLimit);
168
+ }
169
+ if (txType !== "only-simulate") {
168
170
  onAwaitingSign?.();
169
171
  const result = await assembleFinalTransaction(umi.identity, tx, feeEstimate, 800000).sendAndConfirm(umi, {
170
172
  send: {
@@ -1,18 +1,20 @@
1
1
  import { PublicKey } from "@solana/web3.js";
2
2
  import { getTokenAccounts } from "../src/utils/accountUtils";
3
- import { SOLAUTO_MANAGER } from "../src/constants/generalAccounts";
3
+ import { SOLAUTO_FEES_WALLET, SOLAUTO_MANAGER } from "../src/constants/generalAccounts";
4
4
  import { ALL_SUPPORTED_TOKENS } from "../src/constants/tokenConstants";
5
5
  import { updateLookupTable } from "./shared";
6
6
  import { SOLAUTO_LUT, STANDARD_LUT_ACCOUNTS } from "../src/constants/solautoConstants";
7
7
 
8
8
  const LOOKUP_TABLE_ADDRESS = new PublicKey(SOLAUTO_LUT);
9
9
  const solautoManagerTokenAccounts = getTokenAccounts(SOLAUTO_MANAGER, ALL_SUPPORTED_TOKENS.map((x) => new PublicKey(x)));
10
+ const solautoFeeWalletTokenAccounts = getTokenAccounts(SOLAUTO_FEES_WALLET, ALL_SUPPORTED_TOKENS.map((x) => new PublicKey(x)));
10
11
 
11
12
  export async function updateSolautoLut(additionalAccounts?: string[]) {
12
13
  return updateLookupTable(
13
14
  [
14
15
  ...STANDARD_LUT_ACCOUNTS,
15
16
  ...solautoManagerTokenAccounts.map((x) => x.toString()),
17
+ ...solautoFeeWalletTokenAccounts.map(x => x.toString()),
16
18
  ...(additionalAccounts ?? [])
17
19
  ],
18
20
  LOOKUP_TABLE_ADDRESS
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.115",
3
+ "version": "1.0.117",
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",
@@ -298,6 +298,7 @@ export async function rebalanceChoresBefore(
298
298
  checkIntermediaryMfiAccount &&
299
299
  !rpcAccountCreated(intermediaryMarginfiAccount)
300
300
  ) {
301
+ client.log("Creating intermediary marginfi account");
301
302
  chores = chores.add(
302
303
  (client as SolautoMarginfiClient).createIntermediaryMarginfiAccount()
303
304
  );
@@ -15,7 +15,7 @@ import {
15
15
  retryWithExponentialBackoff,
16
16
  } from "../utils/generalUtils";
17
17
  import { getTransactionChores } from "./transactionUtils";
18
- import { PriorityFeeSetting } from "../types";
18
+ import { PriorityFeeSetting, TransactionRunType } from "../types";
19
19
  import { ReferralStateManager, TxHandler } from "../clients";
20
20
  // import { sendJitoBundledTransactions } from "../utils/jitoUtils";
21
21
 
@@ -164,11 +164,11 @@ class TransactionSet {
164
164
  }
165
165
 
166
166
  export enum TransactionStatus {
167
- Skipped,
168
- Processing,
169
- AwaitingSignature,
170
- Queued,
171
- Successful,
167
+ Skipped = "Skipped",
168
+ Processing = "Processing",
169
+ AwaitingSignature = "Awaiting Signature",
170
+ Queued = "Queued",
171
+ Successful = "Successful",
172
172
  }
173
173
 
174
174
  export type TransactionManagerStatuses = {
@@ -184,7 +184,7 @@ export class TransactionsManager {
184
184
  constructor(
185
185
  private txHandler: SolautoClient | ReferralStateManager,
186
186
  private statusCallback?: (statuses: TransactionManagerStatuses) => void,
187
- private simulateOnly?: boolean,
187
+ private txType?: TransactionRunType,
188
188
  private mustBeAtomic?: boolean,
189
189
  private errorsToThrow?: ErrorsToThrow
190
190
  ) {
@@ -272,9 +272,10 @@ export class TransactionsManager {
272
272
  }
273
273
 
274
274
  async clientSend(
275
- items: TransactionItem[],
275
+ transactions: TransactionItem[],
276
276
  prioritySetting?: PriorityFeeSetting
277
277
  ) {
278
+ const items = [...transactions];
278
279
  const client = this.txHandler as SolautoClient;
279
280
 
280
281
  const updateLookupTable = await client.updateLookupTable();
@@ -291,7 +292,7 @@ export class TransactionsManager {
291
292
  this.txHandler.umi,
292
293
  this.txHandler.connection,
293
294
  updateLookupTable.updateLutTx,
294
- this.simulateOnly,
295
+ this.txType,
295
296
  attemptNum,
296
297
  prioritySetting,
297
298
  () =>
@@ -351,7 +352,7 @@ export class TransactionsManager {
351
352
  throw e;
352
353
  });
353
354
 
354
- if (!this.simulateOnly) {
355
+ if (this.txType !== "only-simulate") {
355
356
  await client.resetLiveTxUpdates();
356
357
  }
357
358
  }
@@ -389,7 +390,7 @@ export class TransactionsManager {
389
390
  // itemSets.forEach((set) => {
390
391
  // this.updateStatus(set.name(), TransactionStatus.Successful);
391
392
  // });
392
- } else if (!this.simulateOnly || itemSets.length === 1) {
393
+ } else if (this.txType !== "only-simulate" || itemSets.length === 1) {
393
394
  for (let i = 0; i < itemSets.length; i++) {
394
395
  const getFreshItemSet = async (
395
396
  itemSet: TransactionSet,
@@ -447,7 +448,7 @@ export class TransactionsManager {
447
448
  this.txHandler.umi,
448
449
  this.txHandler.connection,
449
450
  tx,
450
- this.simulateOnly,
451
+ this.txType,
451
452
  attemptNum,
452
453
  prioritySetting,
453
454
  () =>
@@ -16,4 +16,6 @@ export enum PriorityFeeSetting {
16
16
  High = "High"
17
17
  }
18
18
 
19
- export type RebalanceAction = "boost" | "repay" | "dca";
19
+ export type RebalanceAction = "boost" | "repay" | "dca";
20
+
21
+ export type TransactionRunType = "skip-simulation" | "only-simulate" | "normal";
@@ -36,7 +36,7 @@ import {
36
36
  getLendingAccountEndFlashloanInstructionDataSerializer,
37
37
  getLendingAccountStartFlashloanInstructionDataSerializer,
38
38
  } from "../marginfi-sdk";
39
- import { PriorityFeeSetting } from "../types";
39
+ import { PriorityFeeSetting, TransactionRunType } from "../types";
40
40
 
41
41
  export function getSolanaRpcConnection(
42
42
  heliusApiKey: string
@@ -281,7 +281,7 @@ export async function sendSingleOptimizedTransaction(
281
281
  umi: Umi,
282
282
  connection: Connection,
283
283
  tx: TransactionBuilder,
284
- simulateOnly?: boolean,
284
+ txType?: TransactionRunType,
285
285
  attemptNum?: number,
286
286
  prioritySetting: PriorityFeeSetting = PriorityFeeSetting.Default,
287
287
  onAwaitingSign?: () => void
@@ -297,31 +297,33 @@ export async function sendSingleOptimizedTransaction(
297
297
  );
298
298
  console.log("Compute unit price: ", feeEstimate);
299
299
 
300
- // TODO: we should only retry simulation if it's not a solauto error
301
- const simulationResult = await retryWithExponentialBackoff(
302
- async () =>
303
- await simulateTransaction(
304
- connection,
305
- toWeb3JsTransaction(
306
- await (
307
- await assembleFinalTransaction(
308
- umi.identity,
309
- tx,
310
- feeEstimate,
311
- 1_400_000
312
- ).setLatestBlockhash(umi)
313
- ).build(umi)
314
- )
315
- ),
316
- 3
317
- );
318
-
319
- const computeUnitLimit = Math.round(
320
- simulationResult.value.unitsConsumed! * 1.1
321
- );
322
- console.log("Compute unit limit: ", computeUnitLimit);
300
+ if (txType !== "skip-simulation") {
301
+ // TODO: we should only retry simulation if it's not a solauto error
302
+ const simulationResult = await retryWithExponentialBackoff(
303
+ async () =>
304
+ await simulateTransaction(
305
+ connection,
306
+ toWeb3JsTransaction(
307
+ await (
308
+ await assembleFinalTransaction(
309
+ umi.identity,
310
+ tx,
311
+ feeEstimate,
312
+ 1_400_000
313
+ ).setLatestBlockhash(umi)
314
+ ).build(umi)
315
+ )
316
+ ),
317
+ 3
318
+ );
319
+
320
+ const computeUnitLimit = Math.round(
321
+ simulationResult.value.unitsConsumed! * 1.1
322
+ );
323
+ console.log("Compute unit limit: ", computeUnitLimit);
324
+ }
323
325
 
324
- if (!simulateOnly) {
326
+ if (txType !== "only-simulate") {
325
327
  onAwaitingSign?.();
326
328
  const result = await assembleFinalTransaction(
327
329
  umi.identity,
@@ -1,18 +1,15 @@
1
1
  import { describe, it } from "mocha";
2
2
  import { none, publicKey, some } from "@metaplex-foundation/umi";
3
3
  import { setupTest } from "../shared";
4
- import { SolautoMarginfiClient } from "../../src/clients/solautoMarginfiClient";
4
+ import {
5
+ SolautoMarginfiClient,
6
+ } from "../../src/clients/solautoMarginfiClient";
5
7
  import {
6
8
  solautoAction,
7
9
  SolautoSettingsParametersInpArgs,
8
10
  } from "../../src/generated";
9
11
  import { buildSolautoRebalanceTransaction } from "../../src/transactions/transactionUtils";
10
- import {
11
- maxBoostToBps,
12
- maxRepayFromBps,
13
- maxRepayToBps,
14
- toBaseUnit,
15
- } from "../../src/utils/numberUtils";
12
+ import { maxBoostToBps, maxRepayFromBps, maxRepayToBps, toBaseUnit } from "../../src/utils/numberUtils";
16
13
  import { NATIVE_MINT } from "@solana/spl-token";
17
14
  import { getTokenPrices } from "../../src/utils/generalUtils";
18
15
  import {
@@ -21,6 +18,9 @@ import {
21
18
  } from "../../src/transactions/transactionsManager";
22
19
  import { PublicKey } from "@solana/web3.js";
23
20
  import { USDC_MINT } from "../../src/constants";
21
+ import {
22
+ ACCOUNT_SIZE as TOKEN_ACCOUNT_SIZE,
23
+ } from "@solana/spl-token";
24
24
 
25
25
  describe("Solauto Marginfi tests", async () => {
26
26
  const signer = setupTest();
@@ -31,22 +31,25 @@ describe("Solauto Marginfi tests", async () => {
31
31
  const positionId = 1;
32
32
 
33
33
  it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
34
+
34
35
  const client = new SolautoMarginfiClient(process.env.HELIUS_API_KEY!, true);
35
36
 
36
37
  const supply = NATIVE_MINT;
37
38
  const supplyDecimals = 9;
38
39
  const debtDecimals = 6;
39
40
 
40
- await client.initialize({
41
- signer,
42
- positionId,
43
- // authority: new PublicKey("92xmP49BQycn3t2HkGxLAweN3jjrExxSNpywA3xF7mYY")
44
- // marginfiAccount: new PublicKey(
45
- // "4nNvUXF5YqHFcH2nGweSiuvy1ct7V5FXfoCLKFYUN36z"
46
- // ),
47
- // supplyMint: NATIVE_MINT,
48
- // debtMint: new PublicKey(USDC_MINT),
49
- });
41
+ await client.initialize(
42
+ {
43
+ signer,
44
+ positionId,
45
+ // authority: new PublicKey("92xmP49BQycn3t2HkGxLAweN3jjrExxSNpywA3xF7mYY")
46
+ // marginfiAccount: new PublicKey(
47
+ // "4nNvUXF5YqHFcH2nGweSiuvy1ct7V5FXfoCLKFYUN36z"
48
+ // ),
49
+ // supplyMint: NATIVE_MINT,
50
+ // debtMint: new PublicKey(USDC_MINT),
51
+ }
52
+ );
50
53
 
51
54
  const transactionItems: TransactionItem[] = [];
52
55
  const settingParams: SolautoSettingsParametersInpArgs = {
@@ -67,19 +70,19 @@ describe("Solauto Marginfi tests", async () => {
67
70
  // }, "open position")
68
71
  // );
69
72
 
70
- const initialSupplyUsd = 150;
71
- transactionItems.push(
72
- new TransactionItem(async () => {
73
- const [supplyPrice] = await getTokenPrices([supply]);
74
- return {
75
- tx: client.protocolInteraction(
76
- solautoAction("Deposit", [
77
- toBaseUnit(initialSupplyUsd / supplyPrice, supplyDecimals),
78
- ])
79
- ),
80
- };
81
- }, "deposit")
82
- );
73
+ // const initialSupplyUsd = 150;
74
+ // transactionItems.push(
75
+ // new TransactionItem(async () => {
76
+ // const [supplyPrice] = await getTokenPrices([supply]);
77
+ // return {
78
+ // tx: client.protocolInteraction(
79
+ // solautoAction("Deposit", [
80
+ // toBaseUnit(initialSupplyUsd / supplyPrice, supplyDecimals),
81
+ // ])
82
+ // ),
83
+ // };
84
+ // }, "deposit")
85
+ // );
83
86
  // }
84
87
 
85
88
  // const maxLtvBps = client.solautoPositionState!.maxLtvBps;
@@ -120,13 +123,13 @@ describe("Solauto Marginfi tests", async () => {
120
123
  // }, "deposit")
121
124
  // );
122
125
 
123
- // transactionItems.push(
124
- // new TransactionItem(
125
- // async (attemptNum) =>
126
- // await buildSolautoRebalanceTransaction(client, 1500, attemptNum),
127
- // "rebalance"
128
- // )
129
- // );
126
+ transactionItems.push(
127
+ new TransactionItem(
128
+ async (attemptNum) =>
129
+ await buildSolautoRebalanceTransaction(client, 1500, attemptNum),
130
+ "rebalance"
131
+ )
132
+ );
130
133
 
131
134
  // transactionItems.push(
132
135
  // new TransactionItem(
@@ -155,11 +158,13 @@ describe("Solauto Marginfi tests", async () => {
155
158
  // )
156
159
  // );
157
160
 
158
- await new TransactionsManager(
159
- client,
160
- undefined,
161
- !payForTransactions,
162
- useJitoBundle
163
- ).clientSend(transactionItems);
161
+ // await new TransactionsManager(
162
+ // client,
163
+ // undefined,
164
+ // !payForTransactions ? "only-simulate" : "normal",
165
+ // useJitoBundle
166
+ // ).clientSend(transactionItems);
167
+
168
+ console.log((await client.umi.rpc.getRent(TOKEN_ACCOUNT_SIZE)).basisPoints);
164
169
  });
165
170
  });