@haven-fi/solauto-sdk 1.0.657 → 1.0.659
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/rebalance/rebalanceTxBuilder.d.ts.map +1 -1
- package/dist/services/rebalance/rebalanceTxBuilder.js +0 -5
- package/dist/services/rebalance/rebalanceValues.d.ts.map +1 -1
- package/dist/services/rebalance/rebalanceValues.js +0 -1
- package/dist/services/solauto/solautoClient.d.ts.map +1 -1
- package/dist/services/solauto/solautoClient.js +3 -0
- package/dist/services/transactions/transactionsManager.d.ts.map +1 -1
- package/dist/services/transactions/transactionsManager.js +6 -7
- package/dist/solautoPosition/solautoPositionEx.d.ts +2 -0
- package/dist/solautoPosition/solautoPositionEx.d.ts.map +1 -1
- package/dist/solautoPosition/solautoPositionEx.js +6 -0
- package/dist/utils/instructionUtils.d.ts.map +1 -1
- package/dist/utils/instructionUtils.js +1 -3
- 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/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/rebalance/rebalanceTxBuilder.ts +0 -7
- package/src/services/rebalance/rebalanceValues.ts +0 -2
- package/src/services/solauto/solautoClient.ts +3 -0
- package/src/services/transactions/transactionsManager.ts +7 -9
- package/src/solautoPosition/solautoPositionEx.ts +8 -0
- package/src/utils/instructionUtils.ts +1 -3
- package/src/utils/jitoUtils.ts +23 -22
- package/src/utils/solanaUtils.ts +25 -22
- package/tests/transactions/shared.ts +1 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rebalanceTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceTxBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAGL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AA0BrB,qBAAa,kBAAkB;IAQ3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,2BAA2B,CAAC;IARtC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAwB;IAC/C,OAAO,CAAC,SAAS,CAAiC;gBAGxC,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,YAAA;IAG9C,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;YAyCd,qBAAqB;IAwCnC,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,yBAAyB;YA4BnB,mBAAmB;
|
1
|
+
{"version":3,"file":"rebalanceTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceTxBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAGL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AA0BrB,qBAAa,kBAAkB;IAQ3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,2BAA2B,CAAC;IARtC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAwB;IAC/C,OAAO,CAAC,SAAS,CAAiC;gBAGxC,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,YAAA;IAG9C,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;YAyCd,qBAAqB;IAwCnC,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,yBAAyB;YA4BnB,mBAAmB;YAwBnB,sBAAsB;YAyBtB,mBAAmB;IAmEpB,gBAAgB,CAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;CAe9C"}
|
@@ -134,9 +134,6 @@ class RebalanceTxBuilder {
|
|
134
134
|
return rebalanceValues;
|
135
135
|
}
|
136
136
|
async setRebalanceDetails(attemptNum) {
|
137
|
-
(0, utils_1.consoleLog)(this.client.pos.supplyUsd());
|
138
|
-
(0, utils_1.consoleLog)(this.client.pos.totalSupply);
|
139
|
-
(0, utils_1.consoleLog)(this.client.contextUpdates.supplyAdjustment);
|
140
137
|
const rebalanceValues = this.getInitialRebalanceValues();
|
141
138
|
if (!rebalanceValues) {
|
142
139
|
return false;
|
@@ -146,8 +143,6 @@ class RebalanceTxBuilder {
|
|
146
143
|
if (this.flRequirements?.flFeeBps) {
|
147
144
|
this.values = this.getRebalanceValues(this.flRequirements.flFeeBps);
|
148
145
|
}
|
149
|
-
(0, utils_1.consoleLog)(this.values);
|
150
|
-
(0, utils_1.consoleLog)(this.flRequirements);
|
151
146
|
this.swapManager = new rebalanceSwapManager_1.RebalanceSwapManager(this.client, this.values, this.flRequirements, this.targetLiqUtilizationRateBps);
|
152
147
|
await this.swapManager.setSwapParams(attemptNum);
|
153
148
|
this.setRebalanceType();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rebalanceValues.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;
|
1
|
+
{"version":3,"file":"rebalanceValues.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,yBAAyB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,MAAM,EACzB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,gBAAgB,GACtB,yBAAyB,CA8B3B;AAED,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,cAAc,EACnB,2BAA2B,EAAE,MAAM,EACnC,IAAI,CAAC,EAAE,gBAAgB,GACtB,cAAc,CAgChB;AA2ED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,iBAAiB,EAClC,SAAS,EAAE,SAAS,EACpB,2BAA2B,CAAC,EAAE,MAAM,EACpC,aAAa,CAAC,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe,GAAG,SAAS,CA8C7B"}
|
@@ -112,7 +112,6 @@ function getRebalanceValues(solautoPosition, priceType, targetLiqUtilizationRate
|
|
112
112
|
lpBorrow: solautoPosition.state.debt.borrowFeeBps,
|
113
113
|
flashLoan: flFeeBps ?? 0,
|
114
114
|
};
|
115
|
-
(0, utils_1.consoleLog)(solautoPosition.state.liqThresholdBps, position, targetRate, fees);
|
116
115
|
const debtAdjustment = getDebtAdjustment(solautoPosition.state.liqThresholdBps, position, targetRate, fees);
|
117
116
|
const repayingCloseToMaxLtv = rebalanceDirection === generated_1.RebalanceDirection.Repay &&
|
118
117
|
targetRate >= solautoPosition.maxRepayToBps;
|
@@ -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;
|
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"}
|
@@ -33,6 +33,9 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
33
33
|
lendingPlatform: this.lendingPlatform,
|
34
34
|
lpEnv: this.lpEnv,
|
35
35
|
}, this.contextUpdates);
|
36
|
+
if (this.pos.selfManaged && (!args.supplyMint || !args.debtMint)) {
|
37
|
+
await this.pos.refreshPositionState();
|
38
|
+
}
|
36
39
|
this.positionSupplyTa = (0, utils_1.getTokenAccount)(this.pos.publicKey, this.pos.supplyMint);
|
37
40
|
this.signerSupplyTa = (0, utils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), this.pos.supplyMint);
|
38
41
|
this.positionDebtTa = (0, utils_1.getTokenAccount)(this.pos.publicKey, this.pos.debtMint);
|
@@ -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(),
|
@@ -269,10 +269,9 @@ class TransactionsManager {
|
|
269
269
|
async clientSend(transactions) {
|
270
270
|
const items = [...transactions];
|
271
271
|
const client = this.txHandler;
|
272
|
-
const
|
273
|
-
if (
|
274
|
-
|
275
|
-
await this.updateLut(updateLookupTable.tx, updateLookupTable.new);
|
272
|
+
const updateLut = await client.updateLookupTable();
|
273
|
+
if (updateLut && (updateLut?.new || updateLut.accountsToAdd.length > 4)) {
|
274
|
+
await this.updateLut(updateLut.tx, updateLut.new);
|
276
275
|
}
|
277
276
|
this.lookupTables.defaultLuts = client.defaultLookupTables();
|
278
277
|
for (const item of items) {
|
@@ -306,8 +305,8 @@ class TransactionsManager {
|
|
306
305
|
let [choresBefore, choresAfter] = await (0, transactionUtils_1.getTransactionChores)(client, (0, umi_1.transactionBuilder)().add(items
|
307
306
|
.filter((x) => x.tx && x.tx.getInstructions().length > 0)
|
308
307
|
.map((x) => x.tx)));
|
309
|
-
if (
|
310
|
-
choresBefore = choresBefore.prepend(
|
308
|
+
if (updateLut && !updateLut?.new) {
|
309
|
+
choresBefore = choresBefore.prepend(updateLut.tx);
|
311
310
|
}
|
312
311
|
if (choresBefore.getInstructions().length > 0) {
|
313
312
|
const chore = new TransactionItem(async () => ({ tx: choresBefore }), CHORES_TX_NAME);
|
@@ -39,6 +39,7 @@ export declare abstract class SolautoPositionEx {
|
|
39
39
|
get exists(): boolean;
|
40
40
|
get authority(): PublicKey;
|
41
41
|
get positionId(): number | undefined;
|
42
|
+
get selfManaged(): boolean;
|
42
43
|
get positionType(): import("../generated").PositionType | undefined;
|
43
44
|
get strategyName(): string;
|
44
45
|
liqUtilizationRateBps(priceType?: PriceType): number;
|
@@ -75,6 +76,7 @@ export declare abstract class SolautoPositionEx {
|
|
75
76
|
abstract get supplyLiquidityAvailable(): number;
|
76
77
|
abstract maxLtvAndLiqThresholdBps(): Promise<[number, number]>;
|
77
78
|
abstract priceOracles(): Promise<PublicKey[]>;
|
79
|
+
get memecoinPosition(): boolean | undefined;
|
78
80
|
private sufficientLiquidityToBoost;
|
79
81
|
eligibleForRebalance(bpsDistanceThreshold?: number): RebalanceAction | undefined;
|
80
82
|
eligibleForRefresh(): boolean;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"solautoPositionEx.d.ts","sourceRoot":"","sources":["../../src/solautoPosition/solautoPositionEx.ts"],"names":[],"mappings":"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"}
|
@@ -35,6 +35,9 @@ class SolautoPositionEx {
|
|
35
35
|
get positionId() {
|
36
36
|
return this._data.positionId ? this._data.positionId[0] : undefined;
|
37
37
|
}
|
38
|
+
get selfManaged() {
|
39
|
+
return this.positionId === 0;
|
40
|
+
}
|
38
41
|
get positionType() {
|
39
42
|
return this._data.positionType;
|
40
43
|
}
|
@@ -140,6 +143,9 @@ class SolautoPositionEx {
|
|
140
143
|
get debtLiquidityUsdAvailable() {
|
141
144
|
return (0, utils_1.debtLiquidityUsdAvailable)(this.state);
|
142
145
|
}
|
146
|
+
get memecoinPosition() {
|
147
|
+
return (0, utils_1.tokenInfo)(this.supplyMint).isMeme || (0, utils_1.tokenInfo)(this.debtMint).isMeme;
|
148
|
+
}
|
143
149
|
sufficientLiquidityToBoost() {
|
144
150
|
const limitsUpToDate = this.debtLiquidityUsdAvailable !== 0 ||
|
145
151
|
this.supplyLiquidityUsdDepositable !== 0;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"instructionUtils.d.ts","sourceRoot":"","sources":["../../src/utils/instructionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,0BAA0B,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,gCAAgC,EACjC,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,aAAa,EAEb,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,gCAAgC,EAC/C,GAAG,CAAC,EAAE,kBAAkB,mBAQzB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,mBAOzD;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,gBAAgB,CAAC,gCAAgC,CAAC,EAC5D,GAAG,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,mBAY1C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,mBAOrD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAUpE;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAUnE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,mBAcrE;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,mBAclE;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,mBAUrC;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,SAAS,EACtB,qBAAqB,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"instructionUtils.d.ts","sourceRoot":"","sources":["../../src/utils/instructionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,0BAA0B,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,gCAAgC,EACjC,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,aAAa,EAEb,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,gCAAgC,EAC/C,GAAG,CAAC,EAAE,kBAAkB,mBAQzB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,mBAOzD;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,gBAAgB,CAAC,gCAAgC,CAAC,EAC5D,GAAG,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,mBAY1C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,mBAOrD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAUpE;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAUnE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,mBAcrE;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,mBAclE;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,mBAUrC;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,SAAS,EACtB,qBAAqB,EAAE,MAAM,qBAyC9B"}
|
@@ -107,12 +107,10 @@ function swapThenDeposit(client, depositMint, depositAmountBaseUnit) {
|
|
107
107
|
}, "swap"),
|
108
108
|
new services_1.TransactionItem(async () => {
|
109
109
|
const quoteOutAmount = client.contextUpdates.jupSwap?.outAmount;
|
110
|
-
const depositAmount = BigInt(Math.round(parseInt(quoteOutAmount) * 0.995));
|
111
|
-
console.log(depositAmount);
|
112
110
|
return {
|
113
111
|
tx: (0, umi_1.transactionBuilder)().add(client.protocolInteractionIx({
|
114
112
|
__kind: "Deposit",
|
115
|
-
fields: [
|
113
|
+
fields: [BigInt(Math.round(parseInt(quoteOutAmount) * 0.995))],
|
116
114
|
})),
|
117
115
|
};
|
118
116
|
}, "deposit"),
|
@@ -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);
|
@@ -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
@@ -238,10 +238,6 @@ export class RebalanceTxBuilder {
|
|
238
238
|
}
|
239
239
|
|
240
240
|
private async setRebalanceDetails(attemptNum: number): Promise<boolean> {
|
241
|
-
consoleLog(this.client.pos.supplyUsd());
|
242
|
-
consoleLog(this.client.pos.totalSupply);
|
243
|
-
consoleLog(this.client.contextUpdates.supplyAdjustment);
|
244
|
-
|
245
241
|
const rebalanceValues = this.getInitialRebalanceValues();
|
246
242
|
if (!rebalanceValues) {
|
247
243
|
return false;
|
@@ -253,9 +249,6 @@ export class RebalanceTxBuilder {
|
|
253
249
|
this.values = this.getRebalanceValues(this.flRequirements.flFeeBps)!;
|
254
250
|
}
|
255
251
|
|
256
|
-
consoleLog(this.values);
|
257
|
-
consoleLog(this.flRequirements);
|
258
|
-
|
259
252
|
this.swapManager = new RebalanceSwapManager(
|
260
253
|
this.client,
|
261
254
|
this.values,
|
@@ -7,7 +7,6 @@ import {
|
|
7
7
|
TokenBalanceChangeType,
|
8
8
|
} from "../../generated";
|
9
9
|
import {
|
10
|
-
consoleLog,
|
11
10
|
fromBps,
|
12
11
|
getLiqUtilzationRateBps,
|
13
12
|
maxRepayToBps,
|
@@ -228,7 +227,6 @@ export function getRebalanceValues(
|
|
228
227
|
flashLoan: flFeeBps ?? 0,
|
229
228
|
};
|
230
229
|
|
231
|
-
consoleLog(solautoPosition.state.liqThresholdBps, position, targetRate, fees);
|
232
230
|
const debtAdjustment = getDebtAdjustment(
|
233
231
|
solautoPosition.state.liqThresholdBps,
|
234
232
|
position,
|
@@ -106,6 +106,9 @@ export abstract class SolautoClient extends ReferralStateManager {
|
|
106
106
|
},
|
107
107
|
this.contextUpdates
|
108
108
|
);
|
109
|
+
if (this.pos.selfManaged && (!args.supplyMint || !args.debtMint)) {
|
110
|
+
await this.pos.refreshPositionState();
|
111
|
+
}
|
109
112
|
|
110
113
|
this.positionSupplyTa = getTokenAccount(
|
111
114
|
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([
|
@@ -441,13 +442,10 @@ export class TransactionsManager {
|
|
441
442
|
const items = [...transactions];
|
442
443
|
const client = this.txHandler as SolautoClient;
|
443
444
|
|
444
|
-
const
|
445
|
+
const updateLut = await client.updateLookupTable();
|
445
446
|
|
446
|
-
if (
|
447
|
-
|
448
|
-
(updateLookupTable?.new || updateLookupTable.accountsToAdd.length > 4)
|
449
|
-
) {
|
450
|
-
await this.updateLut(updateLookupTable.tx, updateLookupTable.new);
|
447
|
+
if (updateLut && (updateLut?.new || updateLut.accountsToAdd.length > 4)) {
|
448
|
+
await this.updateLut(updateLut.tx, updateLut.new);
|
451
449
|
}
|
452
450
|
this.lookupTables.defaultLuts = client.defaultLookupTables();
|
453
451
|
|
@@ -505,8 +503,8 @@ export class TransactionsManager {
|
|
505
503
|
.map((x) => x.tx!)
|
506
504
|
)
|
507
505
|
);
|
508
|
-
if (
|
509
|
-
choresBefore = choresBefore.prepend(
|
506
|
+
if (updateLut && !updateLut?.new) {
|
507
|
+
choresBefore = choresBefore.prepend(updateLut.tx);
|
510
508
|
}
|
511
509
|
if (choresBefore.getInstructions().length > 0) {
|
512
510
|
const chore = new TransactionItem(
|
@@ -114,6 +114,10 @@ export abstract class SolautoPositionEx {
|
|
114
114
|
return this._data.positionId ? this._data.positionId[0] : undefined;
|
115
115
|
}
|
116
116
|
|
117
|
+
get selfManaged() {
|
118
|
+
return this.positionId === 0;
|
119
|
+
}
|
120
|
+
|
117
121
|
get positionType() {
|
118
122
|
return this._data.positionType;
|
119
123
|
}
|
@@ -264,6 +268,10 @@ export abstract class SolautoPositionEx {
|
|
264
268
|
abstract maxLtvAndLiqThresholdBps(): Promise<[number, number]>;
|
265
269
|
abstract priceOracles(): Promise<PublicKey[]>;
|
266
270
|
|
271
|
+
get memecoinPosition() {
|
272
|
+
return tokenInfo(this.supplyMint).isMeme || tokenInfo(this.debtMint).isMeme;
|
273
|
+
}
|
274
|
+
|
267
275
|
private sufficientLiquidityToBoost() {
|
268
276
|
const limitsUpToDate =
|
269
277
|
this.debtLiquidityUsdAvailable !== 0 ||
|
@@ -166,13 +166,11 @@ export function swapThenDeposit(
|
|
166
166
|
}, "swap"),
|
167
167
|
new TransactionItem(async () => {
|
168
168
|
const quoteOutAmount = client.contextUpdates.jupSwap?.outAmount;
|
169
|
-
const depositAmount = BigInt(Math.round(parseInt(quoteOutAmount!) * 0.995));
|
170
|
-
console.log(depositAmount);
|
171
169
|
return {
|
172
170
|
tx: transactionBuilder().add(
|
173
171
|
client.protocolInteractionIx({
|
174
172
|
__kind: "Deposit",
|
175
|
-
fields: [
|
173
|
+
fields: [BigInt(Math.round(parseInt(quoteOutAmount!) * 0.995))],
|
176
174
|
})
|
177
175
|
),
|
178
176
|
};
|
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/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,
|