@haven-fi/solauto-sdk 1.0.602 → 1.0.604
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/rebalanceSwapManager.d.ts.map +1 -1
- package/dist/services/rebalance/rebalanceSwapManager.js +6 -3
- package/dist/services/solauto/solautoMarginfiClient.d.ts +1 -5
- package/dist/services/solauto/solautoMarginfiClient.d.ts.map +1 -1
- package/dist/services/solauto/solautoMarginfiClient.js +1 -1
- package/dist/services/transactions/transactionsManager.d.ts.map +1 -1
- package/dist/services/transactions/transactionsManager.js +5 -3
- package/local/updateMarginfiLUT.ts +1 -0
- package/package.json +1 -1
- package/src/services/rebalance/rebalanceSwapManager.ts +8 -3
- package/src/services/solauto/solautoMarginfiClient.ts +2 -7
- package/src/services/transactions/transactionsManager.ts +6 -7
- package/tests/transactions/shared.ts +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rebalanceSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAkB,UAAU,EAAa,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAapD,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,2BAA2B,CAAC;IAV/B,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,cAAc,CAAkB;gBAG9B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,YAAA,EACtC,2BAA2B,CAAC,EAAE,MAAM,YAAA;IAK9C,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kCAAkC;YA6B5B,mBAAmB;IAoCjC,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,mBAAmB;IAIrB,aAAa,CAAC,UAAU,EAAE,MAAM;
|
1
|
+
{"version":3,"file":"rebalanceSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAkB,UAAU,EAAa,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAapD,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,2BAA2B,CAAC;IAV/B,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,cAAc,CAAkB;gBAG9B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,YAAA,EACtC,2BAA2B,CAAC,EAAE,MAAM,YAAA;IAK9C,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kCAAkC;YA6B5B,mBAAmB;IAoCjC,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,mBAAmB;IAIrB,aAAa,CAAC,UAAU,EAAE,MAAM;IAkFhC,aAAa;;;;;;CAWpB"}
|
@@ -100,13 +100,16 @@ class RebalanceSwapManager {
|
|
100
100
|
? this.bigIntWithIncrement(outputAmount, this.flRequirements.flFeeBps ?? 0)
|
101
101
|
: outputAmount
|
102
102
|
: inputAmount;
|
103
|
+
const inputMint = (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(input.mint);
|
104
|
+
const outputMint = (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(output.mint);
|
105
|
+
const swappingMeme = (0, utils_1.tokenInfo)(inputMint).isMeme || (0, utils_1.tokenInfo)(outputMint).isMeme;
|
103
106
|
const swapInput = {
|
104
|
-
inputMint
|
105
|
-
outputMint
|
107
|
+
inputMint,
|
108
|
+
outputMint,
|
106
109
|
exactIn,
|
107
110
|
exactOut,
|
108
111
|
amount: swapAmount,
|
109
|
-
slippageBps:
|
112
|
+
slippageBps: swappingMeme ? 300 : 50,
|
110
113
|
};
|
111
114
|
(0, utils_1.consoleLog)("Swap input:", swapInput);
|
112
115
|
if (exactIn && (rebalanceToZero || this.values.repayingCloseToMaxLtv)) {
|
@@ -4,10 +4,6 @@ import { SolautoClient, SolautoClientArgs } from "./solautoClient";
|
|
4
4
|
import { MarginfiAssetAccounts } from "../../types/accounts";
|
5
5
|
import { DCASettingsInpArgs, LendingPlatform, RebalanceStep, SolautoActionArgs, SolautoSettingsParametersInpArgs } from "../../generated";
|
6
6
|
import { RebalanceDetails } from "../../types";
|
7
|
-
export interface SolautoMarginfiClientArgs extends SolautoClientArgs {
|
8
|
-
marginfiAccount?: PublicKey | Signer;
|
9
|
-
marginfiAccountSeedIdx?: bigint;
|
10
|
-
}
|
11
7
|
export declare class SolautoMarginfiClient extends SolautoClient {
|
12
8
|
lendingPlatform: LendingPlatform;
|
13
9
|
marginfiProgram: PublicKey;
|
@@ -18,7 +14,7 @@ export declare class SolautoMarginfiClient extends SolautoClient {
|
|
18
14
|
marginfiDebtAccounts: MarginfiAssetAccounts;
|
19
15
|
supplyPriceOracle: PublicKey;
|
20
16
|
debtPriceOracle: PublicKey;
|
21
|
-
initialize(args:
|
17
|
+
initialize(args: SolautoClientArgs): Promise<void>;
|
22
18
|
defaultLookupTables(): string[];
|
23
19
|
lutAccountsToAdd(): PublicKey[];
|
24
20
|
marginfiAccountInitialize(marginfiAccount: Signer): TransactionBuilder;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoMarginfiClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EACN,kBAAkB,EAInB,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,sBAAsB,CAAC;AAK7D,OAAO,EACL,kBAAkB,EAClB,eAAe,EAGf,aAAa,EACb,iBAAiB,EAEjB,gCAAgC,EAOjC,MAAM,iBAAiB,CAAC;AAgBzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,
|
1
|
+
{"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoMarginfiClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EACN,kBAAkB,EAInB,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,sBAAsB,CAAC;AAK7D,OAAO,EACL,kBAAkB,EAClB,eAAe,EAGf,aAAa,EACb,iBAAiB,EAEjB,gCAAgC,EAOjC,MAAM,iBAAiB,CAAC;AAgBzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,qBAAsB,SAAQ,aAAa;IAC/C,eAAe,kBAA4B;IAE3C,eAAe,EAAG,SAAS,CAAC;IAE5B,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;IAE7B,UAAU,CAAC,IAAI,EAAE,iBAAiB;IAsExC,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAI/B,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,kBAAkB;IAStE,cAAc,CACZ,QAAQ,CAAC,EAAE,gCAAgC,EAC3C,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA0C9B,eAAe,IAAI,kBAAkB;IAYrC,SAAS,IAAI,kBAAkB;IAc/B,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUlE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,WAAW,CACT,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,gBAAgB,GACrB,kBAAkB;CAqGtB"}
|
@@ -21,7 +21,7 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
|
|
21
21
|
this.marginfiGroup = await this.pos.lendingPool();
|
22
22
|
if (this.selfManaged) {
|
23
23
|
this.marginfiAccount =
|
24
|
-
args.
|
24
|
+
args.lpUserAccount ??
|
25
25
|
(0, umi_1.createSignerFromKeypair)(this.umi, this.umi.eddsa.generateKeypair());
|
26
26
|
}
|
27
27
|
else {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../src/services/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,OAAO,EAEL,aAAa,EAEd,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAa,MAAM,IAAI,CAAC;AAarD,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,OAAe,EAC3B,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;
|
1
|
+
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../src/services/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,OAAO,EAEL,aAAa,EAEd,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAa,MAAM,IAAI,CAAC;AAarD,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,OAAe,EAC3B,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;IA4GzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;YA8BxB,6BAA6B;YA4I7B,qBAAqB;YAgDrB,eAAe;YA0Df,eAAe;CA4D9B"}
|
@@ -32,7 +32,7 @@ class LookupTables {
|
|
32
32
|
this.cache = [];
|
33
33
|
}
|
34
34
|
async getLutInputs(additionalAddresses) {
|
35
|
-
const addresses = [...this.defaultLuts, ...additionalAddresses];
|
35
|
+
const addresses = [...this.defaultLuts, ...(additionalAddresses ?? [])];
|
36
36
|
const currentCacheAddresses = this.cache.map((x) => x.publicKey.toString());
|
37
37
|
const missingAddresses = addresses.filter((x) => !currentCacheAddresses.includes(x));
|
38
38
|
if (missingAddresses) {
|
@@ -265,7 +265,7 @@ class TransactionsManager {
|
|
265
265
|
});
|
266
266
|
}
|
267
267
|
async updateLut(tx, newLut) {
|
268
|
-
const lutInputs = await
|
268
|
+
const lutInputs = await this.lookupTables.getLutInputs();
|
269
269
|
const updateLutTxName = `${newLut ? "create" : "update"} lookup table`;
|
270
270
|
await (0, generalUtils_1.retryWithExponentialBackoff)(async (attemptNum, prevError) => await this.sendTransaction(tx.setAddressLookupTables(lutInputs), updateLutTxName, attemptNum, this.getUpdatedPriorityFeeSetting(prevError, attemptNum), "skip-simulation"), this.signableRetries, 150, this.errorsToThrow);
|
271
271
|
await this.txHandler.refetchReferralState();
|
@@ -293,7 +293,9 @@ class TransactionsManager {
|
|
293
293
|
return ix.keys.map((key) => key.pubkey.toString());
|
294
294
|
}) ?? []);
|
295
295
|
});
|
296
|
-
const swbOracle = allAccounts.find((x) => Object.values(switchboardConstants_1.SWITCHBOARD_PRICE_FEED_IDS)
|
296
|
+
const swbOracle = allAccounts.find((x) => Object.values(switchboardConstants_1.SWITCHBOARD_PRICE_FEED_IDS)
|
297
|
+
.map((x) => x.feedId)
|
298
|
+
.includes(x ?? ""));
|
297
299
|
if (swbOracle) {
|
298
300
|
const mint = new web3_js_1.PublicKey(Object.keys(switchboardConstants_1.SWITCHBOARD_PRICE_FEED_IDS).find((x) => switchboardConstants_1.SWITCHBOARD_PRICE_FEED_IDS[x].feedId === swbOracle));
|
299
301
|
const stale = (await (0, utils_1.getSwitchboardFeedData)(client.connection, [mint]))[0]
|
@@ -106,6 +106,7 @@ addBanks().then((x) => x);
|
|
106
106
|
|
107
107
|
addImfiAccounts().then((x) => x);
|
108
108
|
|
109
|
+
// TODO: get rid of these lookup tables
|
109
110
|
// EoEVYjz3MnsX6fKyxrwJkRhzMCHKjj6dvnjTCHoZLMc7
|
110
111
|
// AuoepJfrCrkQF2PeUAgpnnJybRoiff82cNdwXTqyjjvm
|
111
112
|
// Bno3JybASPc1jNBZ9rnrdKVvbhk6UNMvSsYvgtitq3zb
|
package/package.json
CHANGED
@@ -166,13 +166,18 @@ export class RebalanceSwapManager {
|
|
166
166
|
)
|
167
167
|
: outputAmount
|
168
168
|
: inputAmount;
|
169
|
+
|
170
|
+
const inputMint = toWeb3JsPublicKey(input.mint);
|
171
|
+
const outputMint = toWeb3JsPublicKey(output.mint);
|
172
|
+
const swappingMeme =
|
173
|
+
tokenInfo(inputMint).isMeme || tokenInfo(outputMint).isMeme;
|
169
174
|
const swapInput: SwapInput = {
|
170
|
-
inputMint
|
171
|
-
outputMint
|
175
|
+
inputMint,
|
176
|
+
outputMint,
|
172
177
|
exactIn,
|
173
178
|
exactOut,
|
174
179
|
amount: swapAmount,
|
175
|
-
slippageBps:
|
180
|
+
slippageBps: swappingMeme ? 300 : 50,
|
176
181
|
};
|
177
182
|
consoleLog("Swap input:", swapInput);
|
178
183
|
|
@@ -46,11 +46,6 @@ import {
|
|
46
46
|
import { hasFirstRebalance } from "../../utils/solautoUtils";
|
47
47
|
import { RebalanceDetails } from "../../types";
|
48
48
|
|
49
|
-
export interface SolautoMarginfiClientArgs extends SolautoClientArgs {
|
50
|
-
marginfiAccount?: PublicKey | Signer;
|
51
|
-
marginfiAccountSeedIdx?: bigint;
|
52
|
-
}
|
53
|
-
|
54
49
|
export class SolautoMarginfiClient extends SolautoClient {
|
55
50
|
public lendingPlatform = LendingPlatform.Marginfi;
|
56
51
|
|
@@ -66,14 +61,14 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
66
61
|
public supplyPriceOracle!: PublicKey;
|
67
62
|
public debtPriceOracle!: PublicKey;
|
68
63
|
|
69
|
-
async initialize(args:
|
64
|
+
async initialize(args: SolautoClientArgs) {
|
70
65
|
await super.initialize(args);
|
71
66
|
|
72
67
|
this.marginfiGroup = await this.pos.lendingPool();
|
73
68
|
|
74
69
|
if (this.selfManaged) {
|
75
70
|
this.marginfiAccount =
|
76
|
-
args.
|
71
|
+
args.lpUserAccount ??
|
77
72
|
createSignerFromKeypair(this.umi, this.umi.eddsa.generateKeypair());
|
78
73
|
} else {
|
79
74
|
if (this.pos.exists()) {
|
@@ -53,9 +53,9 @@ class LookupTables {
|
|
53
53
|
) {}
|
54
54
|
|
55
55
|
async getLutInputs(
|
56
|
-
additionalAddresses
|
56
|
+
additionalAddresses?: string[]
|
57
57
|
): Promise<AddressLookupTableInput[]> {
|
58
|
-
const addresses = [...this.defaultLuts, ...additionalAddresses];
|
58
|
+
const addresses = [...this.defaultLuts, ...(additionalAddresses ?? [])];
|
59
59
|
const currentCacheAddresses = this.cache.map((x) => x.publicKey.toString());
|
60
60
|
|
61
61
|
const missingAddresses = addresses.filter(
|
@@ -416,10 +416,7 @@ export class TransactionsManager {
|
|
416
416
|
}
|
417
417
|
|
418
418
|
private async updateLut(tx: TransactionBuilder, newLut: boolean) {
|
419
|
-
const lutInputs = await
|
420
|
-
this.txHandler.umi,
|
421
|
-
this.txHandler.defaultLookupTables()
|
422
|
-
);
|
419
|
+
const lutInputs = await this.lookupTables.getLutInputs();
|
423
420
|
const updateLutTxName = `${newLut ? "create" : "update"} lookup table`;
|
424
421
|
await retryWithExponentialBackoff(
|
425
422
|
async (attemptNum, prevError) =>
|
@@ -474,7 +471,9 @@ export class TransactionsManager {
|
|
474
471
|
});
|
475
472
|
|
476
473
|
const swbOracle = allAccounts.find((x) =>
|
477
|
-
Object.values(SWITCHBOARD_PRICE_FEED_IDS)
|
474
|
+
Object.values(SWITCHBOARD_PRICE_FEED_IDS)
|
475
|
+
.map((x) => x.feedId)
|
476
|
+
.includes(x ?? "")
|
478
477
|
);
|
479
478
|
if (swbOracle) {
|
480
479
|
const mint = new PublicKey(
|