@haven-fi/solauto-sdk 1.0.658 → 1.0.660

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":"solautoClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoClient.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAA6B,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EACL,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,gCAAgC,EAEhC,sBAAsB,EAGvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAML,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,8BAAsB,aAAc,SAAQ,oBAAoB;IACvD,eAAe,EAAG,eAAe,CAAC;IAClC,KAAK,EAAG,UAAU,CAAC;IAEnB,SAAS,EAAG,SAAS,CAAC;IAEtB,UAAU,EAAG,MAAM,CAAC;IACpB,WAAW,EAAG,OAAO,CAAC;IACtB,GAAG,EAAG,iBAAiB,CAAC;IAExB,gBAAgB,EAAG,SAAS,CAAC;IAC7B,cAAc,EAAG,SAAS,CAAC;IAE3B,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,UAAU,EAAG,oBAAoB,CAAC;IAClC,cAAc,EAAE,cAAc,CAAwB;IAE7D,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAqB;IAExC,UAAU,CAAC,IAAI,EAAE,iBAAiB;IAuFxC,kBAAkB,IAAI,SAAS,GAAG,SAAS;IAO3C,gBAAgB,IAAI,SAAS,GAAG,SAAS;IAOnC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO;IAkB1C,mBAAmB,IAAI,MAAM,EAAE;IAS/B,gBAAgB,IAAI,SAAS,EAAE;IAgBzB,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;IAgEK,cAAc,IAAI,OAAO,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAgBF,cAAc,CACZ,QAAQ,CAAC,EAAE,gCAAgC,EAC3C,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IA0BrB,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB;IAsDlE,QAAQ,CAAC,eAAe,IAAI,kBAAkB;IAE9C,WAAW,IAAI,kBAAkB;IAgCjC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;IAE5D,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAqFlE,QAAQ,CAAC,WAAW,CAClB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,gBAAgB,GACrB,kBAAkB;CACtB"}
1
+ {"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoClient.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAA6B,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EACL,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,gCAAgC,EAEhC,sBAAsB,EAGvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAML,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,8BAAsB,aAAc,SAAQ,oBAAoB;IACvD,eAAe,EAAG,eAAe,CAAC;IAClC,KAAK,EAAG,UAAU,CAAC;IAEnB,SAAS,EAAG,SAAS,CAAC;IAEtB,UAAU,EAAG,MAAM,CAAC;IACpB,WAAW,EAAG,OAAO,CAAC;IACtB,GAAG,EAAG,iBAAiB,CAAC;IAExB,gBAAgB,EAAG,SAAS,CAAC;IAC7B,cAAc,EAAG,SAAS,CAAC;IAE3B,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,UAAU,EAAG,oBAAoB,CAAC;IAClC,cAAc,EAAE,cAAc,CAAwB;IAE7D,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAqB;IAExC,UAAU,CAAC,IAAI,EAAE,iBAAiB;IAuFxC,kBAAkB,IAAI,SAAS,GAAG,SAAS;IAO3C,gBAAgB,IAAI,SAAS,GAAG,SAAS;IAOnC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO;IAkB1C,mBAAmB,IAAI,MAAM,EAAE;IAS/B,gBAAgB,IAAI,SAAS,EAAE;IAezB,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;IAgEK,cAAc,IAAI,OAAO,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAgBF,cAAc,CACZ,QAAQ,CAAC,EAAE,gCAAgC,EAC3C,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IA0BrB,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB;IAsDlE,QAAQ,CAAC,eAAe,IAAI,kBAAkB;IAE9C,WAAW,IAAI,kBAAkB;IAgCjC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;IAE5D,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAqFlE,QAAQ,CAAC,WAAW,CAClB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,gBAAgB,GACrB,kBAAkB;CACtB"}
@@ -97,7 +97,6 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
97
97
  lutAccountsToAdd() {
98
98
  return [
99
99
  this.authority,
100
- ...(this.authorityLutAddress ? [this.authorityLutAddress] : []),
101
100
  this.signerSupplyTa,
102
101
  this.signerDebtTa,
103
102
  this.pos.publicKey,
@@ -1 +1 @@
1
- {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../src/services/transactions/transactionsManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAEL,aAAa,EAQd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAM5E,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAqCD,qBAAa,eAAe;IAOjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM;IATtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,WAAW,EAAE,OAAO,CAAS;IAC7B,SAAS,EAAE,MAAM,CAAK;gBAGb,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAKV,OAAO,CAAC,UAAU,EAAE,MAAM;IAOhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAwGD,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,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EAAE,CAAC;AAEJ,UAAU,WAAW;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa,CAAC;IAdxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B,kBAAkB,SAAmB;gBAG3B,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,kBAAkB,GAAE,kBAA2C,EAC/D,UAAU,GAAE,OAAc,EAC1B,aAAa,CAAC,EAAE,aAAa,YAAA,EACrC,WAAW,CAAC,EAAE,WAAW;YAab,uBAAuB;IA0CrC,OAAO,CAAC,YAAY;YA6CN,aAAa;IAoB3B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,mBAAmB;YAoBb,SAAS;IAmBV,UAAU,CACrB,YAAY,EAAE,eAAe,EAAE,GAC9B,OAAO,CAAC,0BAA0B,CAAC;IA8GzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;YA8BxB,6BAA6B;YA4I7B,qBAAqB;YAgDrB,eAAe;YA0Df,eAAe;CA4D9B"}
1
+ {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../src/services/transactions/transactionsManager.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAEL,aAAa,EAQd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAM5E,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAqCD,qBAAa,eAAe;IAOjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM;IATtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,WAAW,EAAE,OAAO,CAAS;IAC7B,SAAS,EAAE,MAAM,CAAK;gBAGb,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAKV,OAAO,CAAC,UAAU,EAAE,MAAM;IAOhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAwGD,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,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EAAE,CAAC;AAEJ,UAAU,WAAW;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa,CAAC;IAdxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B,kBAAkB,SAAmB;gBAG3B,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,kBAAkB,GAAE,kBAA2C,EAC/D,UAAU,GAAE,OAAc,EAC1B,aAAa,CAAC,EAAE,aAAa,YAAA,EACrC,WAAW,CAAC,EAAE,WAAW;YAab,uBAAuB;IA0CrC,OAAO,CAAC,YAAY;YA6CN,aAAa;IAoB3B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,mBAAmB;YAoBb,SAAS;IAmBV,UAAU,CACrB,YAAY,EAAE,eAAe,EAAE,GAC9B,OAAO,CAAC,0BAA0B,CAAC;IAyGzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;YA8BxB,6BAA6B;YA4I7B,qBAAqB;YAgDrB,eAAe;YA0Df,eAAe;CA4D9B"}
@@ -91,7 +91,7 @@ class TransactionSet {
91
91
  return false;
92
92
  }
93
93
  const singleTx = await this.getSingleTransaction();
94
- const tx = (0, utils_1.addTxOptimizations)(this.txHandler.umi.identity, singleTx, 1, 1)
94
+ const tx = (0, utils_1.addTxOptimizations)(this.txHandler.umi, singleTx, 1, 1)
95
95
  .add(item.tx)
96
96
  .setAddressLookupTables(await this.lookupTables.getLutInputs([
97
97
  ...this.lutAddresses(),
@@ -270,10 +270,7 @@ class TransactionsManager {
270
270
  const items = [...transactions];
271
271
  const client = this.txHandler;
272
272
  const updateLut = await client.updateLookupTable();
273
- if (updateLut &&
274
- (updateLut?.new ||
275
- updateLut.accountsToAdd.length > 4 ||
276
- (client.pos.memecoinPosition && updateLut.accountsToAdd.length >= 2))) {
273
+ if (updateLut && (updateLut?.new || updateLut.accountsToAdd.length > 4)) {
277
274
  await this.updateLut(updateLut.tx, updateLut.new);
278
275
  }
279
276
  this.lookupTables.defaultLuts = client.defaultLookupTables();
@@ -47,4 +47,5 @@ export interface RebalanceDetails {
47
47
  priceType: PriceType;
48
48
  }
49
49
  export type ProgramEnv = "Prod" | "Staging";
50
+ export type RoundAction = "Floor" | "Round" | "Ceil";
50
51
  //# 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,EACL,eAAe,EACf,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,OAAO,WAAW;IAClB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,wBAAwB,EAEhC,kBAAkB,EAAE,CAAC;AAE1B,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,GAAG,QAAQ,CAAC;AAEhF,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,kBAAkB,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,EAAE,oBAAoB,CAAC;IACpC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,aAAa,CAAC;IACzB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,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,EACL,eAAe,EACf,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,OAAO,WAAW;IAClB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,wBAAwB,EAEhC,kBAAkB,EAAE,CAAC;AAE1B,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,GAAG,QAAQ,CAAC;AAEhF,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,kBAAkB,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,EAAE,oBAAoB,CAAC;IACpC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,aAAa,CAAC;IACzB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC"}
@@ -2,7 +2,7 @@ import { Connection, PublicKey } from "@solana/web3.js";
2
2
  import { Signer, TransactionBuilder, Umi, TransactionMessage } from "@metaplex-foundation/umi";
3
3
  import { PriorityFeeSetting, TransactionRunType } from "../types";
4
4
  export declare function getRandomTipAccount(): PublicKey;
5
- export declare function getRequiredSigners(message: TransactionMessage): {
5
+ export declare function getAdditionalSigners(message: TransactionMessage): {
6
6
  index: number;
7
7
  publicKey: string;
8
8
  isWritable: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"jitoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jitoUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAIV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,GAAG,EAEH,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAelE,wBAAgB,mBAAmB,IAAI,SAAS,CAG/C;AAuND,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB;;;;IAkB7D;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,kBAAkB,EAAE,EACzB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA+F/B"}
1
+ {"version":3,"file":"jitoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jitoUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAIV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,GAAG,EAEH,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAelE,wBAAgB,mBAAmB,IAAI,SAAS,CAG/C;AAkGD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB;;;;IAkB/D;AAwHD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,kBAAkB,EAAE,EACzB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA+F/B"}
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getRandomTipAccount = getRandomTipAccount;
7
- exports.getRequiredSigners = getRequiredSigners;
7
+ exports.getAdditionalSigners = getAdditionalSigners;
8
8
  exports.sendJitoBundledTransactions = sendJitoBundledTransactions;
9
9
  const web3_js_1 = require("@solana/web3.js");
10
10
  const umi_web3js_adapters_1 = require("@metaplex-foundation/umi-web3js-adapters");
@@ -86,9 +86,24 @@ async function simulateJitoBundle(umi, txs) {
86
86
  const transactionResults = simulationResult.transactionResults;
87
87
  return transactionResults;
88
88
  }
89
+ function getAdditionalSigners(message) {
90
+ const { numRequiredSignatures, numReadonlySignedAccounts } = message.header;
91
+ const numWritableSigners = numRequiredSignatures - numReadonlySignedAccounts;
92
+ const signersInfo = [];
93
+ for (let i = 0; i < numRequiredSignatures; i++) {
94
+ const publicKey = message.accounts[i].toString();
95
+ const isWritable = i < numWritableSigners;
96
+ signersInfo.push({
97
+ index: i,
98
+ publicKey,
99
+ isWritable,
100
+ });
101
+ }
102
+ return signersInfo;
103
+ }
89
104
  async function umiToVersionedTransactions(umi, blockhash, userSigner, otherSigners, txs, sign, feeEstimates, computeUnitLimits) {
90
105
  let builtTxs = await Promise.all(txs.map(async (tx, i) => {
91
- return (0, solanaUtils_1.assembleFinalTransaction)(userSigner, tx, feeEstimates ? feeEstimates[i] : undefined, computeUnitLimits ? computeUnitLimits[i] : undefined)
106
+ return (0, solanaUtils_1.assembleFinalTransaction)(umi, tx, feeEstimates ? feeEstimates[i] : undefined, computeUnitLimits ? computeUnitLimits[i] : undefined)
92
107
  .setBlockhash(blockhash)
93
108
  .build(umi);
94
109
  }));
@@ -96,7 +111,7 @@ async function umiToVersionedTransactions(umi, blockhash, userSigner, otherSigne
96
111
  builtTxs = await userSigner.signAllTransactions(builtTxs);
97
112
  for (const signer of otherSigners) {
98
113
  for (let i = 0; i < builtTxs.length; i++) {
99
- const requiredSigners = getRequiredSigners(builtTxs[i].message);
114
+ const requiredSigners = getAdditionalSigners(builtTxs[i].message);
100
115
  if (requiredSigners
101
116
  .map((x) => x.publicKey)
102
117
  .includes(signer.publicKey.toString())) {
@@ -165,21 +180,6 @@ async function sendJitoBundle(umi, transactions) {
165
180
  (0, generalUtils_1.consoleLog)("Bundle ID:", bundleId);
166
181
  return bundleId ? await pollBundleStatus(umi, bundleId) : [];
167
182
  }
168
- function getRequiredSigners(message) {
169
- const { numRequiredSignatures, numReadonlySignedAccounts } = message.header;
170
- const numWritableSigners = numRequiredSignatures - numReadonlySignedAccounts;
171
- const signersInfo = [];
172
- for (let i = 0; i < numRequiredSignatures; i++) {
173
- const publicKey = message.accounts[i].toString();
174
- const isWritable = i < numWritableSigners;
175
- signersInfo.push({
176
- index: i,
177
- publicKey,
178
- isWritable,
179
- });
180
- }
181
- return signersInfo;
182
- }
183
183
  async function sendJitoBundledTransactions(umi, connection, userSigner, otherSigners, txs, txType, priorityFeeSetting = types_1.PriorityFeeSetting.Min, onAwaitingSign) {
184
184
  if (txs.length === 1) {
185
185
  const resp = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(umi, connection, txs[0], txType, priorityFeeSetting, onAwaitingSign);
@@ -1,4 +1,5 @@
1
1
  import { PositionState } from "../generated";
2
+ import { RoundAction } from "../types";
2
3
  export declare function calcNetWorthUsd(state?: PositionState): number;
3
4
  export declare function calcSupplyUsd(state?: PositionState): number;
4
5
  export declare function calcDebtUsd(state?: PositionState): number;
@@ -12,10 +13,9 @@ export declare function supplyLiquidityUsdDepositable(state?: PositionState): nu
12
13
  export declare function fromRoundedUsdValue(number: bigint): number;
13
14
  export declare function toRoundedUsdValue(number: number): bigint;
14
15
  export declare function getLiqUtilzationRateBps(supplyUsd: number, debtUsd: number, liqThresholdBps: number): number;
15
- export declare function toBaseUnit(value: number, decimals: number): bigint;
16
+ export declare function toBaseUnit(value: number, decimals: number, roundAction?: RoundAction): bigint;
16
17
  export declare function fromBaseUnit(value: bigint, decimals: number): number;
17
18
  export declare function fromBps(value: number): number;
18
- type RoundAction = "Floor" | "Round" | "Ceil";
19
19
  export declare function toBps(value: number, roundAction?: RoundAction): number;
20
20
  export declare function bytesToI80F48(bytes: number[]): number;
21
21
  export declare function uint8ArrayToBigInt(uint8Array: Uint8Array): bigint;
@@ -23,5 +23,4 @@ export declare function getMaxLiqUtilizationRateBps(maxLtvBps: number, liqThresh
23
23
  export declare function maxRepayFromBps(maxLtvBps: number, liqThresholdBps: number): number;
24
24
  export declare function maxRepayToBps(maxLtvBps: number, liqThresholdBps: number): number;
25
25
  export declare function maxBoostToBps(maxLtvBps: number, liqThresholdBps: number): number;
26
- export {};
27
26
  //# sourceMappingURL=numberUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"numberUtils.d.ts","sourceRoot":"","sources":["../../src/utils/numberUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,aAAa,UAEpD;AAED,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,UAIlD;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,aAAa,UAIhD;AAED,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,aAAa,UAKjD;AAED,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,aAAa,UAKpD;AAED,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,UAKlD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,aAAa,UAK3D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,aAAa,UAI9D;AAED,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,EAAE,aAAa,UAK/D;AAED,wBAAgB,6BAA6B,CAAC,KAAK,CAAC,EAAE,aAAa,UAIlE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,UAEjD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,UAE/C;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,GACtB,MAAM,CAMR;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKlE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,KAAK,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAC9C,wBAAgB,KAAK,CACnB,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,WAAqB,GACjC,MAAM,CAOR;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBrD;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAejE;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAKR;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAKzE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAKvE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAKvE"}
1
+ {"version":3,"file":"numberUtils.d.ts","sourceRoot":"","sources":["../../src/utils/numberUtils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,aAAa,UAEpD;AAED,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,UAIlD;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,aAAa,UAIhD;AAED,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,aAAa,UAKjD;AAED,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,aAAa,UAKpD;AAED,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,UAKlD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,aAAa,UAK3D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,aAAa,UAI9D;AAED,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,EAAE,aAAa,UAK/D;AAED,wBAAgB,6BAA6B,CAAC,KAAK,CAAC,EAAE,aAAa,UAIlE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,UAEjD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,UAE/C;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,GACtB,MAAM,CAMR;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,WAAqB,GACjC,MAAM,CAKR;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,KAAK,CACnB,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,WAAqB,GACjC,MAAM,CAGR;AAUD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBrD;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAejE;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAKR;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UASzE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAKvE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAKvE"}
@@ -66,11 +66,11 @@ function getLiqUtilzationRateBps(supplyUsd, debtUsd, liqThresholdBps) {
66
66
  }
67
67
  return toBps(debtUsd / (supplyUsd * fromBps(liqThresholdBps)));
68
68
  }
69
- function toBaseUnit(value, decimals) {
69
+ function toBaseUnit(value, decimals, roundAction = "Round") {
70
70
  if (!decimals) {
71
71
  return BigInt(Math.floor(value));
72
72
  }
73
- return BigInt(Math.round(value * Math.pow(10, decimals)));
73
+ return BigInt(roundNumber(value * Math.pow(10, decimals), roundAction));
74
74
  }
75
75
  function fromBaseUnit(value, decimals) {
76
76
  if (!decimals) {
@@ -83,11 +83,14 @@ function fromBps(value) {
83
83
  }
84
84
  function toBps(value, roundAction = "Round") {
85
85
  const bps = value * constants_1.BASIS_POINTS;
86
+ return roundNumber(bps, roundAction);
87
+ }
88
+ function roundNumber(number, roundAction = "Round") {
86
89
  return roundAction === "Round"
87
- ? Math.round(bps)
90
+ ? Math.round(number)
88
91
  : roundAction === "Floor"
89
- ? Math.floor(bps)
90
- : Math.ceil(bps);
92
+ ? Math.floor(number)
93
+ : Math.ceil(number);
91
94
  }
92
95
  function bytesToI80F48(bytes) {
93
96
  if (bytes.length !== 16) {
@@ -11,8 +11,8 @@ export declare function closeTokenAccountUmiIx(signer: Signer, tokenAccount: Pub
11
11
  export declare function splTokenTransferUmiIx(signer: Signer, fromTa: PublicKey, toTa: PublicKey, authority: PublicKey, amount: bigint): WrappedInstruction;
12
12
  export declare function getWalletSplBalances(conn: Connection, wallet: PublicKey, tokenMints: PublicKey[]): Promise<bigint[]>;
13
13
  export declare function getAddressLookupInputs(umi: Umi, lookupTableAddresses: string[]): Promise<AddressLookupTableInput[]>;
14
- export declare function addTxOptimizations(signer: Signer, transaction: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
15
- export declare function assembleFinalTransaction(signer: Signer, transaction: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
14
+ export declare function addTxOptimizations(umi: Umi, tx: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
15
+ export declare function assembleFinalTransaction(umi: Umi, transaction: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
16
16
  export declare function getQnComputeUnitPriceEstimate(umi: Umi, programId: PublicKey, blockheight?: number): Promise<any>;
17
17
  export declare function getComputeUnitPriceEstimate(umi: Umi, tx: TransactionBuilder, prioritySetting: PriorityFeeSetting, useAccounts?: boolean): Promise<number | undefined>;
18
18
  export declare function sendSingleOptimizedTransaction(umi: Umi, connection: Connection, tx: TransactionBuilder, txType?: TransactionRunType, prioritySetting?: PriorityFeeSetting, onAwaitingSign?: () => void): Promise<Uint8Array | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,UAAU,EACV,SAAS,EAKT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAe9E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,SAAS,EACrB,KAAK,CAAC,EAAE,UAAU,GACjB,CAAC,UAAU,EAAE,GAAG,CAAC,CAWnB;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,oBAAoB,CACxC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,EAAE,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBAa1B;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBA2D1B;AAuBD,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,GAAG,CAAC,CAKd;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,eAAe,EAAE,kBAAkB,EACnC,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwC7B;AA+CD,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,eAAe,GAAE,kBAA2C,EAC5D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAuEjC"}
1
+ {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,UAAU,EACV,SAAS,EAKT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAe9E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,SAAS,EACrB,KAAK,CAAC,EAAE,UAAU,GACjB,CAAC,UAAU,EAAE,GAAG,CAAC,CAWnB;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,oBAAoB,CACxC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,EAAE,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBAmB1B;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBA2D1B;AAuBD,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,GAAG,CAAC,CAKd;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,eAAe,EAAE,kBAAkB,EACnC,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwC7B;AA+CD,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,eAAe,GAAE,kBAA2C,EAC5D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAoEjC"}
@@ -99,17 +99,27 @@ async function getAddressLookupInputs(umi, lookupTableAddresses) {
99
99
  return acc;
100
100
  }, new Array());
101
101
  }
102
- function addTxOptimizations(signer, transaction, computeUnitPrice, computeUnitLimit) {
103
- return transaction
104
- .prepend(computeUnitPrice !== undefined
105
- ? setComputeUnitPriceUmiIx(signer, computeUnitPrice)
106
- : (0, umi_1.transactionBuilder)())
107
- .prepend(computeUnitLimit
108
- ? setComputeUnitLimitUmiIx(signer, computeUnitLimit)
109
- : (0, umi_1.transactionBuilder)());
102
+ function addTxOptimizations(umi, tx, computeUnitPrice, computeUnitLimit) {
103
+ const computePriceIx = computeUnitPrice !== undefined
104
+ ? setComputeUnitPriceUmiIx(umi.identity, computeUnitPrice)
105
+ : (0, umi_1.transactionBuilder)();
106
+ const computeLimitIx = computeUnitLimit
107
+ ? setComputeUnitLimitUmiIx(umi.identity, computeUnitLimit)
108
+ : (0, umi_1.transactionBuilder)();
109
+ const allOptimizations = tx.prepend(computePriceIx).prepend(computeLimitIx);
110
+ const oneOptimization = tx.prepend(computePriceIx);
111
+ if (allOptimizations.fitsInOneTransaction(umi)) {
112
+ return allOptimizations;
113
+ }
114
+ else if (oneOptimization.fitsInOneTransaction(umi)) {
115
+ return oneOptimization;
116
+ }
117
+ else {
118
+ return tx;
119
+ }
110
120
  }
111
- function assembleFinalTransaction(signer, transaction, computeUnitPrice, computeUnitLimit) {
112
- const tx = addTxOptimizations(signer, transaction, computeUnitPrice, computeUnitLimit);
121
+ function assembleFinalTransaction(umi, transaction, computeUnitPrice, computeUnitLimit) {
122
+ const tx = addTxOptimizations(umi, transaction, computeUnitPrice, computeUnitLimit);
113
123
  const marginfiStartFlSerializer = (0, marginfi_sdk_1.getLendingAccountStartFlashloanInstructionDataSerializer)();
114
124
  const marginfiStartFlDiscriminator = marginfiStartFlSerializer
115
125
  .serialize({
@@ -247,7 +257,7 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, prior
247
257
  const blockhash = await connection.getLatestBlockhash("confirmed");
248
258
  let computeUnitLimit = undefined;
249
259
  if (txType !== "skip-simulation") {
250
- const simulationResult = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await simulateTransaction(umi, connection, assembleFinalTransaction(umi.identity, tx, undefined, 1400000).setBlockhash(blockhash)), 3);
260
+ const simulationResult = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await simulateTransaction(umi, connection, assembleFinalTransaction(umi, tx, undefined, 1400000).setBlockhash(blockhash)), 3);
251
261
  computeUnitLimit = Math.round(simulationResult.value.unitsConsumed * 1.15);
252
262
  (0, generalUtils_1.consoleLog)("Compute unit limit: ", computeUnitLimit);
253
263
  }
@@ -262,7 +272,7 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, prior
262
272
  }
263
273
  if (txType !== "only-simulate") {
264
274
  onAwaitingSign?.();
265
- const signedTx = await assembleFinalTransaction(umi.identity, tx, cuPrice, computeUnitLimit)
275
+ const signedTx = await assembleFinalTransaction(umi, tx, cuPrice, computeUnitLimit)
266
276
  .setBlockhash(blockhash)
267
277
  .buildAndSign(umi);
268
278
  const txSig = await spamSendTransactionUntilConfirmed(connection, (0, umi_web3js_adapters_1.toWeb3JsTransaction)(signedTx), blockhash);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.658",
3
+ "version": "1.0.660",
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",
@@ -207,7 +207,6 @@ export abstract class SolautoClient extends ReferralStateManager {
207
207
  lutAccountsToAdd(): PublicKey[] {
208
208
  return [
209
209
  this.authority,
210
- ...(this.authorityLutAddress ? [this.authorityLutAddress] : []),
211
210
  this.signerSupplyTa,
212
211
  this.signerDebtTa,
213
212
  this.pos.publicKey,
@@ -2,6 +2,7 @@ import bs58 from "bs58";
2
2
  import {
3
3
  PublicKey,
4
4
  TransactionExpiredBlockheightExceededError,
5
+ VersionedTransaction,
5
6
  } from "@solana/web3.js";
6
7
  import {
7
8
  AddressLookupTableInput,
@@ -154,7 +155,7 @@ class TransactionSet {
154
155
  }
155
156
 
156
157
  const singleTx = await this.getSingleTransaction();
157
- const tx = addTxOptimizations(this.txHandler.umi.identity, singleTx, 1, 1)
158
+ const tx = addTxOptimizations(this.txHandler.umi, singleTx, 1, 1)
158
159
  .add(item.tx)
159
160
  .setAddressLookupTables(
160
161
  await this.lookupTables.getLutInputs([
@@ -443,12 +444,7 @@ export class TransactionsManager {
443
444
 
444
445
  const updateLut = await client.updateLookupTable();
445
446
 
446
- if (
447
- updateLut &&
448
- (updateLut?.new ||
449
- updateLut.accountsToAdd.length > 4 ||
450
- (client.pos.memecoinPosition && updateLut.accountsToAdd.length >= 2))
451
- ) {
447
+ if (updateLut && (updateLut?.new || updateLut.accountsToAdd.length > 4)) {
452
448
  await this.updateLut(updateLut.tx, updateLut.new);
453
449
  }
454
450
  this.lookupTables.defaultLuts = client.defaultLookupTables();
@@ -64,4 +64,6 @@ export interface RebalanceDetails {
64
64
  priceType: PriceType;
65
65
  }
66
66
 
67
- export type ProgramEnv = "Prod" | "Staging";
67
+ export type ProgramEnv = "Prod" | "Staging";
68
+
69
+ export type RoundAction = "Floor" | "Round" | "Ceil";
@@ -129,6 +129,27 @@ async function simulateJitoBundle(umi: Umi, txs: VersionedTransaction[]) {
129
129
  return transactionResults;
130
130
  }
131
131
 
132
+
133
+ export function getAdditionalSigners(message: TransactionMessage) {
134
+ const { numRequiredSignatures, numReadonlySignedAccounts } = message.header;
135
+
136
+ const numWritableSigners = numRequiredSignatures - numReadonlySignedAccounts;
137
+
138
+ const signersInfo = [];
139
+ for (let i = 0; i < numRequiredSignatures; i++) {
140
+ const publicKey = message.accounts[i].toString();
141
+ const isWritable = i < numWritableSigners;
142
+
143
+ signersInfo.push({
144
+ index: i,
145
+ publicKey,
146
+ isWritable,
147
+ });
148
+ }
149
+
150
+ return signersInfo;
151
+ }
152
+
132
153
  async function umiToVersionedTransactions(
133
154
  umi: Umi,
134
155
  blockhash: string,
@@ -142,7 +163,7 @@ async function umiToVersionedTransactions(
142
163
  let builtTxs = await Promise.all(
143
164
  txs.map(async (tx, i) => {
144
165
  return assembleFinalTransaction(
145
- userSigner,
166
+ umi,
146
167
  tx,
147
168
  feeEstimates ? feeEstimates[i] : undefined,
148
169
  computeUnitLimits ? computeUnitLimits[i] : undefined
@@ -156,7 +177,7 @@ async function umiToVersionedTransactions(
156
177
  builtTxs = await userSigner.signAllTransactions(builtTxs);
157
178
  for (const signer of otherSigners) {
158
179
  for (let i = 0; i < builtTxs.length; i++) {
159
- const requiredSigners = getRequiredSigners(builtTxs[i].message);
180
+ const requiredSigners = getAdditionalSigners(builtTxs[i].message);
160
181
  if (
161
182
  requiredSigners
162
183
  .map((x) => x.publicKey)
@@ -247,26 +268,6 @@ async function sendJitoBundle(
247
268
  return bundleId ? await pollBundleStatus(umi, bundleId) : [];
248
269
  }
249
270
 
250
- export function getRequiredSigners(message: TransactionMessage) {
251
- const { numRequiredSignatures, numReadonlySignedAccounts } = message.header;
252
-
253
- const numWritableSigners = numRequiredSignatures - numReadonlySignedAccounts;
254
-
255
- const signersInfo = [];
256
- for (let i = 0; i < numRequiredSignatures; i++) {
257
- const publicKey = message.accounts[i].toString();
258
- const isWritable = i < numWritableSigners;
259
-
260
- signersInfo.push({
261
- index: i,
262
- publicKey,
263
- isWritable,
264
- });
265
- }
266
-
267
- return signersInfo;
268
- }
269
-
270
271
  export async function sendJitoBundledTransactions(
271
272
  umi: Umi,
272
273
  connection: Connection,
@@ -1,5 +1,11 @@
1
- import { BASIS_POINTS, MIN_REPAY_GAP_BPS, OFFSET_FROM_MAX_LTV, USD_DECIMALS } from "../constants";
1
+ import {
2
+ BASIS_POINTS,
3
+ MIN_REPAY_GAP_BPS,
4
+ OFFSET_FROM_MAX_LTV,
5
+ USD_DECIMALS,
6
+ } from "../constants";
2
7
  import { PositionState } from "../generated";
8
+ import { RoundAction } from "../types";
3
9
 
4
10
  export function calcNetWorthUsd(state?: PositionState) {
5
11
  return fromRoundedUsdValue(state?.netWorth.baseAmountUsdValue ?? BigInt(0));
@@ -84,11 +90,15 @@ export function getLiqUtilzationRateBps(
84
90
  return toBps(debtUsd / (supplyUsd * fromBps(liqThresholdBps)));
85
91
  }
86
92
 
87
- export function toBaseUnit(value: number, decimals: number): bigint {
93
+ export function toBaseUnit(
94
+ value: number,
95
+ decimals: number,
96
+ roundAction: RoundAction = "Round"
97
+ ): bigint {
88
98
  if (!decimals) {
89
99
  return BigInt(Math.floor(value));
90
100
  }
91
- return BigInt(Math.round(value * Math.pow(10, decimals)));
101
+ return BigInt(roundNumber(value * Math.pow(10, decimals), roundAction));
92
102
  }
93
103
 
94
104
  export function fromBaseUnit(value: bigint, decimals: number): number {
@@ -102,17 +112,20 @@ export function fromBps(value: number): number {
102
112
  return value / BASIS_POINTS;
103
113
  }
104
114
 
105
- type RoundAction = "Floor" | "Round" | "Ceil";
106
115
  export function toBps(
107
116
  value: number,
108
117
  roundAction: RoundAction = "Round"
109
118
  ): number {
110
119
  const bps = value * BASIS_POINTS;
120
+ return roundNumber(bps, roundAction);
121
+ }
122
+
123
+ function roundNumber(number: number, roundAction: RoundAction = "Round") {
111
124
  return roundAction === "Round"
112
- ? Math.round(bps)
125
+ ? Math.round(number)
113
126
  : roundAction === "Floor"
114
- ? Math.floor(bps)
115
- : Math.ceil(bps);
127
+ ? Math.floor(number)
128
+ : Math.ceil(number);
116
129
  }
117
130
 
118
131
  export function bytesToI80F48(bytes: number[]): number {
@@ -169,7 +182,11 @@ export function getMaxLiqUtilizationRateBps(
169
182
  export function maxRepayFromBps(maxLtvBps: number, liqThresholdBps: number) {
170
183
  return Math.min(
171
184
  9000,
172
- getMaxLiqUtilizationRateBps(maxLtvBps, liqThresholdBps - 1000, OFFSET_FROM_MAX_LTV)
185
+ getMaxLiqUtilizationRateBps(
186
+ maxLtvBps,
187
+ liqThresholdBps - 1000,
188
+ OFFSET_FROM_MAX_LTV
189
+ )
173
190
  );
174
191
  }
175
192
 
@@ -199,32 +199,38 @@ export async function getAddressLookupInputs(
199
199
  }
200
200
 
201
201
  export function addTxOptimizations(
202
- signer: Signer,
203
- transaction: TransactionBuilder,
202
+ umi: Umi,
203
+ tx: TransactionBuilder,
204
204
  computeUnitPrice?: number,
205
205
  computeUnitLimit?: number
206
206
  ) {
207
- return transaction
208
- .prepend(
209
- computeUnitPrice !== undefined
210
- ? setComputeUnitPriceUmiIx(signer, computeUnitPrice)
211
- : transactionBuilder()
212
- )
213
- .prepend(
214
- computeUnitLimit
215
- ? setComputeUnitLimitUmiIx(signer, computeUnitLimit)
216
- : transactionBuilder()
217
- );
207
+ const computePriceIx =
208
+ computeUnitPrice !== undefined
209
+ ? setComputeUnitPriceUmiIx(umi.identity, computeUnitPrice)
210
+ : transactionBuilder();
211
+ const computeLimitIx = computeUnitLimit
212
+ ? setComputeUnitLimitUmiIx(umi.identity, computeUnitLimit)
213
+ : transactionBuilder();
214
+
215
+ const allOptimizations = tx.prepend(computePriceIx).prepend(computeLimitIx);
216
+ const oneOptimization = tx.prepend(computePriceIx);
217
+ if (allOptimizations.fitsInOneTransaction(umi)) {
218
+ return allOptimizations;
219
+ } else if (oneOptimization.fitsInOneTransaction(umi)) {
220
+ return oneOptimization;
221
+ } else {
222
+ return tx;
223
+ }
218
224
  }
219
225
 
220
226
  export function assembleFinalTransaction(
221
- signer: Signer,
227
+ umi: Umi,
222
228
  transaction: TransactionBuilder,
223
229
  computeUnitPrice?: number,
224
230
  computeUnitLimit?: number
225
231
  ) {
226
232
  const tx = addTxOptimizations(
227
- signer,
233
+ umi,
228
234
  transaction,
229
235
  computeUnitPrice,
230
236
  computeUnitLimit
@@ -439,12 +445,9 @@ export async function sendSingleOptimizedTransaction(
439
445
  await simulateTransaction(
440
446
  umi,
441
447
  connection,
442
- assembleFinalTransaction(
443
- umi.identity,
444
- tx,
445
- undefined,
446
- 1_400_000
447
- ).setBlockhash(blockhash)
448
+ assembleFinalTransaction(umi, tx, undefined, 1_400_000).setBlockhash(
449
+ blockhash
450
+ )
448
451
  ),
449
452
  3
450
453
  );
@@ -465,7 +468,7 @@ export async function sendSingleOptimizedTransaction(
465
468
  if (txType !== "only-simulate") {
466
469
  onAwaitingSign?.();
467
470
  const signedTx = await assembleFinalTransaction(
468
- umi.identity,
471
+ umi,
469
472
  tx,
470
473
  cuPrice,
471
474
  computeUnitLimit
@@ -40,7 +40,6 @@ export async function e2eTransactionTest(
40
40
 
41
41
  await client.initialize({
42
42
  positionId: 1,
43
- new: true,
44
43
  supplyMint,
45
44
  debtMint,
46
45
  });
@@ -55,7 +54,7 @@ export async function e2eTransactionTest(
55
54
  };
56
55
 
57
56
  const supplyUsd = 100;
58
- const debtUsd = withFlashLoan ? 60 : 10;
57
+ const debtUsd = withFlashLoan ? 60 : 3;
59
58
  const [supplyPrice, debtPrice] = await fetchTokenPrices([
60
59
  supplyMint,
61
60
  debtMint,