@haven-fi/solauto-sdk 1.0.114 → 1.0.115
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/clients/referralStateManager.d.ts +1 -1
- package/dist/clients/referralStateManager.d.ts.map +1 -1
- package/dist/clients/referralStateManager.js +1 -1
- package/dist/clients/solautoClient.d.ts +1 -1
- package/dist/clients/solautoClient.d.ts.map +1 -1
- package/dist/clients/solautoClient.js +14 -12
- package/dist/clients/solautoMarginfiClient.d.ts.map +1 -1
- package/dist/clients/solautoMarginfiClient.js +1 -4
- package/dist/clients/txHandler.d.ts +1 -1
- package/dist/clients/txHandler.d.ts.map +1 -1
- package/dist/transactions/transactionsManager.d.ts.map +1 -1
- package/dist/transactions/transactionsManager.js +8 -6
- package/dist/utils/solauto/rebalanceUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/clients/referralStateManager.ts +1 -1
- package/src/clients/solautoClient.ts +17 -15
- package/src/clients/solautoMarginfiClient.ts +1 -4
- package/src/clients/txHandler.ts +1 -1
- package/src/transactions/transactionsManager.ts +49 -19
- package/src/utils/solauto/rebalanceUtils.ts +0 -1
- package/tests/transactions/solautoMarginfi.ts +37 -38
|
@@ -20,7 +20,7 @@ export declare class ReferralStateManager extends TxHandler {
|
|
|
20
20
|
defaultLookupTables(): string[];
|
|
21
21
|
updateReferralStatesIx(destFeesMint?: PublicKey, referredBy?: PublicKey, lookupTable?: PublicKey): TransactionBuilder;
|
|
22
22
|
claimReferralFeesIx(destFeesMint?: PublicKey): TransactionBuilder;
|
|
23
|
-
resetLiveTxUpdates(): Promise<void>;
|
|
23
|
+
resetLiveTxUpdates(success?: boolean): Promise<void>;
|
|
24
24
|
}
|
|
25
25
|
export {};
|
|
26
26
|
//# sourceMappingURL=referralStateManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referralStateManager.d.ts","sourceRoot":"","sources":["../../src/clients/referralStateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAa,MAAM,EAAkB,kBAAkB,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAEtG,OAAO,EAAE,aAAa,EAAyB,MAAM,iDAAiD,CAAC;AACvG,OAAO,EAA2C,aAAa,EAAgD,MAAM,cAAc,CAAC;AAEpI,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,UAAU,wBAAwB;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,iBAAiB,CAAC,EAAE,SAAS,CAAC;CACjC;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IAQN,SAAS,CAAC,EAAE,OAAO;IAPrD,GAAG,EAAG,GAAG,CAAC;IACV,MAAM,EAAG,MAAM,CAAC;IAEhB,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAC1B,iBAAiB,EAAG,aAAa,GAAG,IAAI,CAAC;gBAEpC,YAAY,EAAE,MAAM,EAAS,SAAS,CAAC,EAAE,OAAO,YAAA;IAStD,UAAU,CAAC,IAAI,EAAE,wBAAwB;IAe/C,mBAAmB,IAAI,MAAM,EAAE;IAI/B,sBAAsB,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,GAAG,kBAAkB;IAiBrH,mBAAmB,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,kBAAkB;IAwB3D,kBAAkB,
|
|
1
|
+
{"version":3,"file":"referralStateManager.d.ts","sourceRoot":"","sources":["../../src/clients/referralStateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAa,MAAM,EAAkB,kBAAkB,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAEtG,OAAO,EAAE,aAAa,EAAyB,MAAM,iDAAiD,CAAC;AACvG,OAAO,EAA2C,aAAa,EAAgD,MAAM,cAAc,CAAC;AAEpI,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,UAAU,wBAAwB;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,iBAAiB,CAAC,EAAE,SAAS,CAAC;CACjC;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IAQN,SAAS,CAAC,EAAE,OAAO;IAPrD,GAAG,EAAG,GAAG,CAAC;IACV,MAAM,EAAG,MAAM,CAAC;IAEhB,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAC1B,iBAAiB,EAAG,aAAa,GAAG,IAAI,CAAC;gBAEpC,YAAY,EAAE,MAAM,EAAS,SAAS,CAAC,EAAE,OAAO,YAAA;IAStD,UAAU,CAAC,IAAI,EAAE,wBAAwB;IAe/C,mBAAmB,IAAI,MAAM,EAAE;IAI/B,sBAAsB,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,GAAG,kBAAkB;IAiBrH,mBAAmB,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,kBAAkB;IAwB3D,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAC7D"}
|
|
@@ -43,7 +43,7 @@ export declare abstract class SolautoClient extends TxHandler {
|
|
|
43
43
|
livePositionUpdates: LivePositionUpdates;
|
|
44
44
|
constructor(heliusApiKey: string, localTest?: boolean | undefined);
|
|
45
45
|
initialize(args: SolautoClientArgs, lendingPlatform: LendingPlatform): Promise<void>;
|
|
46
|
-
resetLiveTxUpdates(): Promise<void>;
|
|
46
|
+
resetLiveTxUpdates(success?: boolean): Promise<void>;
|
|
47
47
|
abstract protocolAccount(): PublicKey;
|
|
48
48
|
defaultLookupTables(): string[];
|
|
49
49
|
lutAccountsToAdd(): PublicKey[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoClient.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAEL,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,MAAM,EACN,kBAAkB,EAOnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,aAAa,EAEd,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,gCAAgC,EAChC,sBAAsB,EAMvB,MAAM,cAAc,CAAC;AAStB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,mBAAmB,CAAC,EAAE,SAAS,CAAC;CACjC;AAED,8BAAsB,aAAc,SAAQ,SAAS;IAmC1C,SAAS,CAAC,EAAE,OAAO;IAlCrB,eAAe,EAAG,eAAe,CAAC;IAElC,SAAS,EAAG,SAAS,CAAC;IACtB,MAAM,EAAG,MAAM,CAAC;IAEhB,UAAU,EAAG,MAAM,CAAC;IACpB,WAAW,EAAG,OAAO,CAAC;IACtB,eAAe,EAAG,SAAS,CAAC;IAC5B,mBAAmB,EAAG,eAAe,GAAG,IAAI,CAAC;IAC7C,oBAAoB,EAAG,aAAa,GAAG,SAAS,CAAC;IAEjD,UAAU,EAAG,SAAS,CAAC;IACvB,gBAAgB,EAAG,SAAS,CAAC;IAC7B,cAAc,EAAG,SAAS,CAAC;IAE3B,QAAQ,EAAG,SAAS,CAAC;IACrB,cAAc,EAAG,SAAS,CAAC;IAC3B,YAAY,EAAG,SAAS,CAAC;IAEzB,oBAAoB,EAAG,oBAAoB,CAAC;IAE5C,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAE/B,iBAAiB,EAAG,SAAS,CAAC;IAC9B,mBAAmB,EAAG,SAAS,CAAC;IAEhC,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAEhC,mBAAmB,EAAE,mBAAmB,CAA6B;gBAG1E,YAAY,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,OAAO,YAAA;IAWtB,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe;IAsGpE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,20 +87,22 @@ class SolautoClient extends txHandler_1.TxHandler {
|
|
|
87
87
|
? this.solautoPositionData?.position?.dca
|
|
88
88
|
: undefined);
|
|
89
89
|
}
|
|
90
|
-
async resetLiveTxUpdates() {
|
|
91
|
-
if (
|
|
92
|
-
this.solautoPositionData
|
|
93
|
-
|
|
94
|
-
else {
|
|
95
|
-
if (this.livePositionUpdates.activeDca) {
|
|
96
|
-
this.solautoPositionData.position.dca =
|
|
97
|
-
this.livePositionUpdates.activeDca;
|
|
90
|
+
async resetLiveTxUpdates(success) {
|
|
91
|
+
if (success) {
|
|
92
|
+
if (!this.solautoPositionData) {
|
|
93
|
+
this.solautoPositionData = await (0, generated_1.safeFetchSolautoPosition)(this.umi, (0, umi_1.publicKey)(this.solautoPosition));
|
|
98
94
|
}
|
|
99
|
-
|
|
100
|
-
this.
|
|
101
|
-
this.
|
|
95
|
+
else {
|
|
96
|
+
if (this.livePositionUpdates.activeDca) {
|
|
97
|
+
this.solautoPositionData.position.dca =
|
|
98
|
+
this.livePositionUpdates.activeDca;
|
|
99
|
+
}
|
|
100
|
+
if (this.livePositionUpdates.settings) {
|
|
101
|
+
this.solautoPositionData.position.settingParams =
|
|
102
|
+
this.livePositionUpdates.settings;
|
|
103
|
+
}
|
|
104
|
+
// All other live position updates can be derived by getting a fresh position state, so we don't need to do anything else form livePositionUpdates
|
|
102
105
|
}
|
|
103
|
-
// All other live position updates can be derived by getting a fresh position state, so we don't need to do anything else form livePositionUpdates
|
|
104
106
|
}
|
|
105
107
|
this.livePositionUpdates.reset();
|
|
106
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAWnE,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,WAAW,CAAkB;IAE9B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAE/C,UAAU,CAAC,IAAI,EAAE,yBAAyB;IAkE1C,8BAA8B;IA0CpC,eAAe,IAAI,SAAS;IAI5B,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAU/B,yBAAyB,IAAI,kBAAkB;IAS/C,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA6C9B,OAAO,IAAI,kBAAkB;IAc7B,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUhE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,SAAS,CACP,aAAa,EAAE,GAAG,GAAG,GAAG,EACxB,WAAW,EAAE,cAAc,EAC3B,aAAa,EAAE,wBAAwB,EACvC,SAAS,CAAC,EAAE,gBAAgB,EAC5B,2BAA2B,CAAC,EAAE,MAAM,EACpC,WAAW,CAAC,EAAE,MAAM,GACnB,kBAAkB;IA2DrB,WAAW,CACT,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IA2BrB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;IAoFlE,iCAAiC,IAAI,kBAAkB;IASjD,qBAAqB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAWnE,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,WAAW,CAAkB;IAE9B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAE/C,UAAU,CAAC,IAAI,EAAE,yBAAyB;IAkE1C,8BAA8B;IA0CpC,eAAe,IAAI,SAAS;IAI5B,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAU/B,yBAAyB,IAAI,kBAAkB;IAS/C,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA6C9B,OAAO,IAAI,kBAAkB;IAc7B,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUhE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,SAAS,CACP,aAAa,EAAE,GAAG,GAAG,GAAG,EACxB,WAAW,EAAE,cAAc,EAC3B,aAAa,EAAE,wBAAwB,EACvC,SAAS,CAAC,EAAE,gBAAgB,EAC5B,2BAA2B,CAAC,EAAE,MAAM,EACpC,WAAW,CAAC,EAAE,MAAM,GACnB,kBAAkB;IA2DrB,WAAW,CACT,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IA2BrB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;IAoFlE,iCAAiC,IAAI,kBAAkB;IASjD,qBAAqB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAiBlE"}
|
|
@@ -413,11 +413,8 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
|
|
|
413
413
|
if (state) {
|
|
414
414
|
return state;
|
|
415
415
|
}
|
|
416
|
-
this.log("Live position updates:");
|
|
417
|
-
this.log(this.livePositionUpdates);
|
|
418
416
|
const freshState = await (0, marginfiUtils_1.getMarginfiAccountPositionState)(this.umi, this.marginfiAccountPk, this.supplyMint, this.debtMint, this.livePositionUpdates);
|
|
419
|
-
this.log("Fresh state:");
|
|
420
|
-
this.log(freshState);
|
|
417
|
+
this.log("Fresh state:", freshState);
|
|
421
418
|
return freshState;
|
|
422
419
|
}
|
|
423
420
|
}
|
|
@@ -8,6 +8,6 @@ export declare abstract class TxHandler {
|
|
|
8
8
|
constructor(heliusApiKey: string, localTest?: boolean | undefined);
|
|
9
9
|
log(...args: any[]): void;
|
|
10
10
|
abstract defaultLookupTables(): string[];
|
|
11
|
-
abstract resetLiveTxUpdates(): Promise<void>;
|
|
11
|
+
abstract resetLiveTxUpdates(success?: boolean): Promise<void>;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=txHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txHandler.d.ts","sourceRoot":"","sources":["../../src/clients/txHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,8BAAsB,SAAS;IAMpB,SAAS,CAAC,EAAE,OAAO;IALrB,YAAY,EAAG,MAAM,CAAC;IACtB,GAAG,EAAG,GAAG,CAAC;IACV,UAAU,EAAG,UAAU,CAAC;gBAEnB,YAAY,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,OAAO,YAAA;IAO5B,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMzB,QAAQ,CAAC,mBAAmB,IAAI,MAAM,EAAE;IAExC,QAAQ,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"txHandler.d.ts","sourceRoot":"","sources":["../../src/clients/txHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,8BAAsB,SAAS;IAMpB,SAAS,CAAC,EAAE,OAAO;IALrB,YAAY,EAAG,MAAM,CAAC;IACtB,GAAG,EAAG,GAAG,CAAC;IACV,UAAU,EAAG,UAAU,CAAC;gBAEnB,YAAY,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,OAAO,YAAA;IAO5B,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMzB,QAAQ,CAAC,mBAAmB,IAAI,MAAM,EAAE;IAExC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAC9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EAEvB,kBAAkB,EAClB,GAAG,EACJ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EACL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG7D,cAAM,YAAY;
|
|
1
|
+
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,7 @@ class LookupTables {
|
|
|
17
17
|
this.cache = [];
|
|
18
18
|
}
|
|
19
19
|
async getLutInputs(additionalAddresses) {
|
|
20
|
-
const addresses = [
|
|
21
|
-
...this.defaultLuts,
|
|
22
|
-
...additionalAddresses,
|
|
23
|
-
];
|
|
20
|
+
const addresses = [...this.defaultLuts, ...additionalAddresses];
|
|
24
21
|
const currentCacheAddresses = this.cache.map((x) => x.publicKey.toString());
|
|
25
22
|
const missingAddresses = addresses.filter((x) => !currentCacheAddresses.includes(x));
|
|
26
23
|
if (missingAddresses) {
|
|
@@ -142,7 +139,9 @@ class TransactionsManager {
|
|
|
142
139
|
throw new Error(`Transaction exceeds max transaction size (${transaction.getTransactionSize(this.txHandler.umi)})`);
|
|
143
140
|
}
|
|
144
141
|
else {
|
|
145
|
-
let newSet = new TransactionSet(this.txHandler, this.lookupTables, [
|
|
142
|
+
let newSet = new TransactionSet(this.txHandler, this.lookupTables, [
|
|
143
|
+
item,
|
|
144
|
+
]);
|
|
146
145
|
for (let j = i; j < items.length; j++) {
|
|
147
146
|
if (await newSet.fitsWith(items[j])) {
|
|
148
147
|
newSet.add(items[j]);
|
|
@@ -223,7 +222,10 @@ class TransactionsManager {
|
|
|
223
222
|
items.push(chore);
|
|
224
223
|
this.txHandler.log("Chores after: ", choresAfter.getInstructions().length);
|
|
225
224
|
}
|
|
226
|
-
await this.send(items, prioritySetting, true)
|
|
225
|
+
await this.send(items, prioritySetting, true).catch((e) => {
|
|
226
|
+
client.resetLiveTxUpdates(false);
|
|
227
|
+
throw e;
|
|
228
|
+
});
|
|
227
229
|
if (!this.simulateOnly) {
|
|
228
230
|
await client.resetLiveTxUpdates();
|
|
229
231
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebalanceUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/rebalanceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"rebalanceUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/rebalanceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,aAAa,EAEb,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAkJjD,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,yBAAyB,GAAG,SAAS,EAC/C,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,2BAA2B,CAAC,EAAE,MAAM,EACpC,WAAW,CAAC,EAAE,MAAM,GACnB,eAAe,CA0EjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,GAAG,SAAS,CAmE9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAkChB"}
|
package/package.json
CHANGED
|
@@ -218,22 +218,24 @@ export abstract class SolautoClient extends TxHandler {
|
|
|
218
218
|
);
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
-
async resetLiveTxUpdates() {
|
|
222
|
-
if (
|
|
223
|
-
this.solautoPositionData
|
|
224
|
-
this.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
this.
|
|
230
|
-
this.
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
this.
|
|
234
|
-
this.
|
|
221
|
+
async resetLiveTxUpdates(success?: boolean) {
|
|
222
|
+
if (success) {
|
|
223
|
+
if (!this.solautoPositionData) {
|
|
224
|
+
this.solautoPositionData = await safeFetchSolautoPosition(
|
|
225
|
+
this.umi,
|
|
226
|
+
publicKey(this.solautoPosition)
|
|
227
|
+
);
|
|
228
|
+
} else {
|
|
229
|
+
if (this.livePositionUpdates.activeDca) {
|
|
230
|
+
this.solautoPositionData.position.dca =
|
|
231
|
+
this.livePositionUpdates.activeDca;
|
|
232
|
+
}
|
|
233
|
+
if (this.livePositionUpdates.settings) {
|
|
234
|
+
this.solautoPositionData.position.settingParams =
|
|
235
|
+
this.livePositionUpdates.settings;
|
|
236
|
+
}
|
|
237
|
+
// All other live position updates can be derived by getting a fresh position state, so we don't need to do anything else form livePositionUpdates
|
|
235
238
|
}
|
|
236
|
-
// All other live position updates can be derived by getting a fresh position state, so we don't need to do anything else form livePositionUpdates
|
|
237
239
|
}
|
|
238
240
|
this.livePositionUpdates.reset();
|
|
239
241
|
}
|
|
@@ -618,8 +618,6 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
|
618
618
|
return state;
|
|
619
619
|
}
|
|
620
620
|
|
|
621
|
-
this.log("Live position updates:");
|
|
622
|
-
this.log(this.livePositionUpdates);
|
|
623
621
|
const freshState = await getMarginfiAccountPositionState(
|
|
624
622
|
this.umi,
|
|
625
623
|
this.marginfiAccountPk,
|
|
@@ -627,8 +625,7 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
|
627
625
|
this.debtMint,
|
|
628
626
|
this.livePositionUpdates
|
|
629
627
|
);
|
|
630
|
-
this.log("Fresh state:");
|
|
631
|
-
this.log(freshState);
|
|
628
|
+
this.log("Fresh state:", freshState);
|
|
632
629
|
|
|
633
630
|
return freshState;
|
|
634
631
|
}
|
package/src/clients/txHandler.ts
CHANGED
|
@@ -22,16 +22,15 @@ import { ReferralStateManager, TxHandler } from "../clients";
|
|
|
22
22
|
class LookupTables {
|
|
23
23
|
cache: AddressLookupTableInput[] = [];
|
|
24
24
|
|
|
25
|
-
constructor(
|
|
26
|
-
|
|
25
|
+
constructor(
|
|
26
|
+
public defaultLuts: string[],
|
|
27
|
+
private umi: Umi
|
|
28
|
+
) {}
|
|
27
29
|
|
|
28
30
|
async getLutInputs(
|
|
29
31
|
additionalAddresses: string[]
|
|
30
32
|
): Promise<AddressLookupTableInput[]> {
|
|
31
|
-
const addresses = [
|
|
32
|
-
...this.defaultLuts,
|
|
33
|
-
...additionalAddresses,
|
|
34
|
-
];
|
|
33
|
+
const addresses = [...this.defaultLuts, ...additionalAddresses];
|
|
35
34
|
const currentCacheAddresses = this.cache.map((x) => x.publicKey.toString());
|
|
36
35
|
|
|
37
36
|
const missingAddresses = addresses.filter(
|
|
@@ -60,7 +59,7 @@ export class TransactionItem {
|
|
|
60
59
|
{ tx: TransactionBuilder; lookupTableAddresses?: string[] } | undefined
|
|
61
60
|
>,
|
|
62
61
|
public name?: string
|
|
63
|
-
) {
|
|
62
|
+
) {}
|
|
64
63
|
|
|
65
64
|
async initialize() {
|
|
66
65
|
await this.refetch(0);
|
|
@@ -91,7 +90,7 @@ class TransactionSet {
|
|
|
91
90
|
private txHandler: TxHandler,
|
|
92
91
|
public lookupTables: LookupTables,
|
|
93
92
|
public items: TransactionItem[] = []
|
|
94
|
-
) {
|
|
93
|
+
) {}
|
|
95
94
|
|
|
96
95
|
async fitsWith(item: TransactionItem): Promise<boolean> {
|
|
97
96
|
if (!item.tx) {
|
|
@@ -189,7 +188,10 @@ export class TransactionsManager {
|
|
|
189
188
|
private mustBeAtomic?: boolean,
|
|
190
189
|
private errorsToThrow?: ErrorsToThrow
|
|
191
190
|
) {
|
|
192
|
-
this.lookupTables = new LookupTables(
|
|
191
|
+
this.lookupTables = new LookupTables(
|
|
192
|
+
this.txHandler.defaultLookupTables(),
|
|
193
|
+
this.txHandler.umi
|
|
194
|
+
);
|
|
193
195
|
}
|
|
194
196
|
|
|
195
197
|
private async assembleTransactionSets(
|
|
@@ -198,7 +200,7 @@ export class TransactionsManager {
|
|
|
198
200
|
let transactionSets: TransactionSet[] = [];
|
|
199
201
|
this.txHandler.log(`Reassembling ${items.length} items`);
|
|
200
202
|
|
|
201
|
-
for (let i = 0; i < items.length;) {
|
|
203
|
+
for (let i = 0; i < items.length; ) {
|
|
202
204
|
let item = items[i];
|
|
203
205
|
i++;
|
|
204
206
|
|
|
@@ -214,7 +216,9 @@ export class TransactionsManager {
|
|
|
214
216
|
`Transaction exceeds max transaction size (${transaction.getTransactionSize(this.txHandler.umi)})`
|
|
215
217
|
);
|
|
216
218
|
} else {
|
|
217
|
-
let newSet = new TransactionSet(this.txHandler, this.lookupTables, [
|
|
219
|
+
let newSet = new TransactionSet(this.txHandler, this.lookupTables, [
|
|
220
|
+
item,
|
|
221
|
+
]);
|
|
218
222
|
for (let j = i; j < items.length; j++) {
|
|
219
223
|
if (await newSet.fitsWith(items[j])) {
|
|
220
224
|
newSet.add(items[j]);
|
|
@@ -255,7 +259,9 @@ export class TransactionsManager {
|
|
|
255
259
|
const accountsNotInLut = ixAccounts.filter(
|
|
256
260
|
(x) => !lutAccounts.includes(x)
|
|
257
261
|
);
|
|
258
|
-
this.txHandler.log(
|
|
262
|
+
this.txHandler.log(
|
|
263
|
+
`Program ${ix.programId}, data len: ${ix.data.length}, LUT accounts data: ${ix.keys.filter((x) => lutAccounts.includes(x.pubkey)).length * 3}`
|
|
264
|
+
);
|
|
259
265
|
if (accountsNotInLut.length > 0) {
|
|
260
266
|
this.txHandler.log(`${accountsNotInLut.length} accounts not in LUT:`);
|
|
261
267
|
for (const key of accountsNotInLut) {
|
|
@@ -265,7 +271,10 @@ export class TransactionsManager {
|
|
|
265
271
|
}
|
|
266
272
|
}
|
|
267
273
|
|
|
268
|
-
async clientSend(
|
|
274
|
+
async clientSend(
|
|
275
|
+
items: TransactionItem[],
|
|
276
|
+
prioritySetting?: PriorityFeeSetting
|
|
277
|
+
) {
|
|
269
278
|
const client = this.txHandler as SolautoClient;
|
|
270
279
|
|
|
271
280
|
const updateLookupTable = await client.updateLookupTable();
|
|
@@ -285,7 +294,11 @@ export class TransactionsManager {
|
|
|
285
294
|
this.simulateOnly,
|
|
286
295
|
attemptNum,
|
|
287
296
|
prioritySetting,
|
|
288
|
-
() =>
|
|
297
|
+
() =>
|
|
298
|
+
this.updateStatus(
|
|
299
|
+
updateLutTxName,
|
|
300
|
+
TransactionStatus.AwaitingSignature
|
|
301
|
+
)
|
|
289
302
|
),
|
|
290
303
|
3,
|
|
291
304
|
150,
|
|
@@ -318,23 +331,36 @@ export class TransactionsManager {
|
|
|
318
331
|
);
|
|
319
332
|
await chore.initialize();
|
|
320
333
|
items.unshift(chore);
|
|
321
|
-
this.txHandler.log(
|
|
334
|
+
this.txHandler.log(
|
|
335
|
+
"Chores before: ",
|
|
336
|
+
choresBefore.getInstructions().length
|
|
337
|
+
);
|
|
322
338
|
}
|
|
323
339
|
if (choresAfter.getInstructions().length > 0) {
|
|
324
340
|
const chore = new TransactionItem(async () => ({ tx: choresAfter }));
|
|
325
341
|
await chore.initialize();
|
|
326
342
|
items.push(chore);
|
|
327
|
-
this.txHandler.log(
|
|
343
|
+
this.txHandler.log(
|
|
344
|
+
"Chores after: ",
|
|
345
|
+
choresAfter.getInstructions().length
|
|
346
|
+
);
|
|
328
347
|
}
|
|
329
348
|
|
|
330
|
-
await this.send(items, prioritySetting, true)
|
|
349
|
+
await this.send(items, prioritySetting, true).catch((e) => {
|
|
350
|
+
client.resetLiveTxUpdates(false);
|
|
351
|
+
throw e;
|
|
352
|
+
});
|
|
331
353
|
|
|
332
354
|
if (!this.simulateOnly) {
|
|
333
355
|
await client.resetLiveTxUpdates();
|
|
334
356
|
}
|
|
335
357
|
}
|
|
336
358
|
|
|
337
|
-
async send(
|
|
359
|
+
async send(
|
|
360
|
+
items: TransactionItem[],
|
|
361
|
+
prioritySetting?: PriorityFeeSetting,
|
|
362
|
+
initialized?: boolean
|
|
363
|
+
) {
|
|
338
364
|
if (!initialized) {
|
|
339
365
|
for (const item of items) {
|
|
340
366
|
await item.initialize();
|
|
@@ -424,7 +450,11 @@ export class TransactionsManager {
|
|
|
424
450
|
this.simulateOnly,
|
|
425
451
|
attemptNum,
|
|
426
452
|
prioritySetting,
|
|
427
|
-
() =>
|
|
453
|
+
() =>
|
|
454
|
+
this.updateStatus(
|
|
455
|
+
itemSet!.name(),
|
|
456
|
+
TransactionStatus.AwaitingSignature
|
|
457
|
+
)
|
|
428
458
|
);
|
|
429
459
|
this.updateStatus(
|
|
430
460
|
itemSet.name(),
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { describe, it } from "mocha";
|
|
2
2
|
import { none, publicKey, some } from "@metaplex-foundation/umi";
|
|
3
3
|
import { setupTest } from "../shared";
|
|
4
|
-
import {
|
|
5
|
-
SolautoMarginfiClient,
|
|
6
|
-
} from "../../src/clients/solautoMarginfiClient";
|
|
4
|
+
import { SolautoMarginfiClient } from "../../src/clients/solautoMarginfiClient";
|
|
7
5
|
import {
|
|
8
6
|
solautoAction,
|
|
9
7
|
SolautoSettingsParametersInpArgs,
|
|
10
8
|
} from "../../src/generated";
|
|
11
9
|
import { buildSolautoRebalanceTransaction } from "../../src/transactions/transactionUtils";
|
|
12
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
maxBoostToBps,
|
|
12
|
+
maxRepayFromBps,
|
|
13
|
+
maxRepayToBps,
|
|
14
|
+
toBaseUnit,
|
|
15
|
+
} from "../../src/utils/numberUtils";
|
|
13
16
|
import { NATIVE_MINT } from "@solana/spl-token";
|
|
14
17
|
import { getTokenPrices } from "../../src/utils/generalUtils";
|
|
15
18
|
import {
|
|
@@ -28,25 +31,22 @@ describe("Solauto Marginfi tests", async () => {
|
|
|
28
31
|
const positionId = 1;
|
|
29
32
|
|
|
30
33
|
it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
|
|
31
|
-
|
|
32
34
|
const client = new SolautoMarginfiClient(process.env.HELIUS_API_KEY!, true);
|
|
33
35
|
|
|
34
36
|
const supply = NATIVE_MINT;
|
|
35
37
|
const supplyDecimals = 9;
|
|
36
38
|
const debtDecimals = 6;
|
|
37
39
|
|
|
38
|
-
await client.initialize(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
);
|
|
40
|
+
await client.initialize({
|
|
41
|
+
signer,
|
|
42
|
+
positionId,
|
|
43
|
+
// authority: new PublicKey("92xmP49BQycn3t2HkGxLAweN3jjrExxSNpywA3xF7mYY")
|
|
44
|
+
// marginfiAccount: new PublicKey(
|
|
45
|
+
// "4nNvUXF5YqHFcH2nGweSiuvy1ct7V5FXfoCLKFYUN36z"
|
|
46
|
+
// ),
|
|
47
|
+
// supplyMint: NATIVE_MINT,
|
|
48
|
+
// debtMint: new PublicKey(USDC_MINT),
|
|
49
|
+
});
|
|
50
50
|
|
|
51
51
|
const transactionItems: TransactionItem[] = [];
|
|
52
52
|
const settingParams: SolautoSettingsParametersInpArgs = {
|
|
@@ -67,19 +67,19 @@ describe("Solauto Marginfi tests", async () => {
|
|
|
67
67
|
// }, "open position")
|
|
68
68
|
// );
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
70
|
+
const initialSupplyUsd = 150;
|
|
71
|
+
transactionItems.push(
|
|
72
|
+
new TransactionItem(async () => {
|
|
73
|
+
const [supplyPrice] = await getTokenPrices([supply]);
|
|
74
|
+
return {
|
|
75
|
+
tx: client.protocolInteraction(
|
|
76
|
+
solautoAction("Deposit", [
|
|
77
|
+
toBaseUnit(initialSupplyUsd / supplyPrice, supplyDecimals),
|
|
78
|
+
])
|
|
79
|
+
),
|
|
80
|
+
};
|
|
81
|
+
}, "deposit")
|
|
82
|
+
);
|
|
83
83
|
// }
|
|
84
84
|
|
|
85
85
|
// const maxLtvBps = client.solautoPositionState!.maxLtvBps;
|
|
@@ -120,13 +120,13 @@ describe("Solauto Marginfi tests", async () => {
|
|
|
120
120
|
// }, "deposit")
|
|
121
121
|
// );
|
|
122
122
|
|
|
123
|
-
transactionItems.push(
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
);
|
|
123
|
+
// transactionItems.push(
|
|
124
|
+
// new TransactionItem(
|
|
125
|
+
// async (attemptNum) =>
|
|
126
|
+
// await buildSolautoRebalanceTransaction(client, 1500, attemptNum),
|
|
127
|
+
// "rebalance"
|
|
128
|
+
// )
|
|
129
|
+
// );
|
|
130
130
|
|
|
131
131
|
// transactionItems.push(
|
|
132
132
|
// new TransactionItem(
|
|
@@ -161,6 +161,5 @@ describe("Solauto Marginfi tests", async () => {
|
|
|
161
161
|
!payForTransactions,
|
|
162
162
|
useJitoBundle
|
|
163
163
|
).clientSend(transactionItems);
|
|
164
|
-
|
|
165
164
|
});
|
|
166
165
|
});
|