@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.
- package/dist/services/solauto/solautoClient.d.ts.map +1 -1
- package/dist/services/solauto/solautoClient.js +0 -1
- package/dist/services/transactions/transactionsManager.d.ts.map +1 -1
- package/dist/services/transactions/transactionsManager.js +2 -5
- package/dist/types/solauto.d.ts +1 -0
- package/dist/types/solauto.d.ts.map +1 -1
- package/dist/utils/jitoUtils.d.ts +1 -1
- package/dist/utils/jitoUtils.d.ts.map +1 -1
- package/dist/utils/jitoUtils.js +18 -18
- package/dist/utils/numberUtils.d.ts +2 -3
- package/dist/utils/numberUtils.d.ts.map +1 -1
- package/dist/utils/numberUtils.js +8 -5
- package/dist/utils/solanaUtils.d.ts +2 -2
- package/dist/utils/solanaUtils.d.ts.map +1 -1
- package/dist/utils/solanaUtils.js +22 -12
- package/package.json +1 -1
- package/src/services/solauto/solautoClient.ts +0 -1
- package/src/services/transactions/transactionsManager.ts +3 -7
- package/src/types/solauto.ts +3 -1
- package/src/utils/jitoUtils.ts +23 -22
- package/src/utils/numberUtils.ts +25 -8
- package/src/utils/solanaUtils.ts +25 -22
- package/tests/transactions/shared.ts +1 -2
@@ -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;
|
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":"
|
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
|
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();
|
package/dist/types/solauto.d.ts
CHANGED
@@ -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
|
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;
|
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"}
|
package/dist/utils/jitoUtils.js
CHANGED
@@ -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.
|
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)(
|
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 =
|
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":"
|
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(
|
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(
|
90
|
+
? Math.round(number)
|
88
91
|
: roundAction === "Floor"
|
89
|
-
? Math.floor(
|
90
|
-
: Math.ceil(
|
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(
|
15
|
-
export declare function assembleFinalTransaction(
|
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,
|
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(
|
103
|
-
|
104
|
-
.
|
105
|
-
|
106
|
-
|
107
|
-
.
|
108
|
-
|
109
|
-
|
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(
|
112
|
-
const tx = addTxOptimizations(
|
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
|
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
|
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
@@ -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
|
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();
|
package/src/types/solauto.ts
CHANGED
package/src/utils/jitoUtils.ts
CHANGED
@@ -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
|
-
|
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 =
|
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,
|
package/src/utils/numberUtils.ts
CHANGED
@@ -1,5 +1,11 @@
|
|
1
|
-
import {
|
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(
|
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(
|
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(
|
125
|
+
? Math.round(number)
|
113
126
|
: roundAction === "Floor"
|
114
|
-
? Math.floor(
|
115
|
-
: Math.ceil(
|
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(
|
185
|
+
getMaxLiqUtilizationRateBps(
|
186
|
+
maxLtvBps,
|
187
|
+
liqThresholdBps - 1000,
|
188
|
+
OFFSET_FROM_MAX_LTV
|
189
|
+
)
|
173
190
|
);
|
174
191
|
}
|
175
192
|
|
package/src/utils/solanaUtils.ts
CHANGED
@@ -199,32 +199,38 @@ export async function getAddressLookupInputs(
|
|
199
199
|
}
|
200
200
|
|
201
201
|
export function addTxOptimizations(
|
202
|
-
|
203
|
-
|
202
|
+
umi: Umi,
|
203
|
+
tx: TransactionBuilder,
|
204
204
|
computeUnitPrice?: number,
|
205
205
|
computeUnitLimit?: number
|
206
206
|
) {
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
)
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
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
|
-
|
227
|
+
umi: Umi,
|
222
228
|
transaction: TransactionBuilder,
|
223
229
|
computeUnitPrice?: number,
|
224
230
|
computeUnitLimit?: number
|
225
231
|
) {
|
226
232
|
const tx = addTxOptimizations(
|
227
|
-
|
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
|
-
|
444
|
-
|
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
|
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 :
|
57
|
+
const debtUsd = withFlashLoan ? 60 : 3;
|
59
58
|
const [supplyPrice, debtPrice] = await fetchTokenPrices([
|
60
59
|
supplyMint,
|
61
60
|
debtMint,
|