@haven-fi/solauto-sdk 1.0.617 → 1.0.619
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 +3 -24
- package/dist/services/swap/jupSwapManager.d.ts +1 -1
- package/dist/services/swap/jupSwapManager.d.ts.map +1 -1
- package/dist/services/swap/jupSwapManager.js +3 -1
- package/dist/utils/solanaUtils.d.ts +1 -0
- package/dist/utils/solanaUtils.d.ts.map +1 -1
- package/dist/utils/solanaUtils.js +12 -0
- package/package.json +1 -1
- package/src/services/solauto/solautoClient.ts +8 -37
- package/src/services/swap/jupSwapManager.ts +4 -2
- package/src/utils/solanaUtils.ts +20 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoClient.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAEL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,gCAAgC,EAEhC,sBAAsB,EAGvB,MAAM,iBAAiB,CAAC;
|
1
|
+
{"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoClient.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAEL,SAAS,EAGV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,gCAAgC,EAEhC,sBAAsB,EAGvB,MAAM,iBAAiB,CAAC;AAYzB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB;IACjE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,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;IAElC,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;IAkFxC,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;IAoBzB,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;IA4DK,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,IAAI,kBAAkB;IAExC,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAsFlE,QAAQ,CAAC,WAAW,CAClB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,gBAAgB,GACrB,kBAAkB;CACtB"}
|
@@ -163,31 +163,10 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
163
163
|
};
|
164
164
|
}
|
165
165
|
async signerBalances() {
|
166
|
-
if (this.signerSupplyBalance
|
167
|
-
this.signerDebtBalance
|
168
|
-
|
169
|
-
supplyBalance: this.signerSupplyBalance,
|
170
|
-
debtBalance: this.signerDebtBalance,
|
171
|
-
};
|
166
|
+
if (!this.signerSupplyBalance || !this.signerDebtBalance) {
|
167
|
+
[this.signerSupplyBalance, this.signerDebtBalance] =
|
168
|
+
await (0, solanaUtils_1.getWalletSplBalances)(this.connection, (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), [this.pos.supplyMint(), this.pos.debtMint()]);
|
172
169
|
}
|
173
|
-
[this.signerSupplyBalance, this.signerDebtBalance] = await Promise.all([
|
174
|
-
(async () => {
|
175
|
-
let data;
|
176
|
-
try {
|
177
|
-
data = await this.connection.getTokenAccountBalance((0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), this.pos.supplyMint()), "confirmed");
|
178
|
-
}
|
179
|
-
catch { }
|
180
|
-
return BigInt(parseInt(data?.value.amount ?? "0"));
|
181
|
-
})(),
|
182
|
-
(async () => {
|
183
|
-
let data;
|
184
|
-
try {
|
185
|
-
const data = await this.connection.getTokenAccountBalance((0, accountUtils_1.getTokenAccount)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), this.pos.debtMint()), "confirmed");
|
186
|
-
}
|
187
|
-
catch { }
|
188
|
-
return BigInt(parseInt(data?.value.amount ?? "0"));
|
189
|
-
})(),
|
190
|
-
]);
|
191
170
|
return {
|
192
171
|
supplyBalance: this.signerSupplyBalance,
|
193
172
|
debtBalance: this.signerDebtBalance,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"jupSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/swap/jupSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,aAAa,EAEd,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"jupSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/swap/jupSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,aAAa,EAEd,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,aAAa,CAAC;IACxB,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,qBAAa,cAAc;IAKb,OAAO,CAAC,MAAM;IAJ1B,MAAM,mCAA4B;IAE3B,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAa;gBAEnC,MAAM,EAAE,MAAM;IAErB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;YAoBhD,kBAAkB;IAsChC,cAAc;IAId,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,0BAA0B;IAc5B,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA2CnE,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAYlE"}
|
@@ -7,6 +7,7 @@ const solanaUtils_1 = require("../../utils/solanaUtils");
|
|
7
7
|
const numberUtils_1 = require("../../utils/numberUtils");
|
8
8
|
const accountUtils_1 = require("../../utils/accountUtils");
|
9
9
|
const utils_1 = require("../../utils");
|
10
|
+
const umi_web3js_adapters_1 = require("@metaplex-foundation/umi-web3js-adapters");
|
10
11
|
class JupSwapManager {
|
11
12
|
constructor(signer) {
|
12
13
|
this.signer = signer;
|
@@ -38,7 +39,8 @@ class JupSwapManager {
|
|
38
39
|
quoteResponse: this.jupQuote,
|
39
40
|
wrapAndUnwrapSol: data.wrapAndUnwrapSol ?? false,
|
40
41
|
useTokenLedger: !data.exactOut && !data.exactIn,
|
41
|
-
destinationTokenAccount: (0, accountUtils_1.getTokenAccount)(data.destinationWallet
|
42
|
+
destinationTokenAccount: (0, accountUtils_1.getTokenAccount)(data.destinationWallet ??
|
43
|
+
(0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.signer.publicKey), data.outputMint).toString(),
|
42
44
|
},
|
43
45
|
});
|
44
46
|
if (!res) {
|
@@ -11,6 +11,7 @@ export declare function createAssociatedTokenAccountUmiIx(signer: Signer, wallet
|
|
11
11
|
export declare function systemTransferUmiIx(signer: Signer, destination: PublicKey, lamports: bigint): WrappedInstruction;
|
12
12
|
export declare function closeTokenAccountUmiIx(signer: Signer, tokenAccount: PublicKey, authority: PublicKey): WrappedInstruction;
|
13
13
|
export declare function splTokenTransferUmiIx(signer: Signer, fromTa: PublicKey, toTa: PublicKey, authority: PublicKey, amount: bigint): WrappedInstruction;
|
14
|
+
export declare function getWalletSplBalances(conn: Connection, wallet: PublicKey, tokenMints: PublicKey[]): Promise<bigint[]>;
|
14
15
|
export declare function getAddressLookupInputs(umi: Umi, lookupTableAddresses: string[]): Promise<AddressLookupTableInput[]>;
|
15
16
|
export declare function addTxOptimizations(signer: Signer, transaction: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
|
16
17
|
export declare function assembleFinalTransaction(signer: Signer, transaction: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAIL,UAAU,EACV,SAAS,EAKT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAiBzB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAIlE,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,UAErD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,UAE3D;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,SAAgC,EAC3C,UAAU,CAAC,EAAE,MAAM,GAClB,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,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBAa1B;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBA2D1B;AAuBD,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,GAAG,CAAC,CAKd;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,eAAe,EAAE,kBAAkB,EACnC,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwC7B;AA+CD,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,eAAe,GAAE,kBAA2C,EAC5D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAuEjC"}
|
1
|
+
{"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"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"}
|
@@ -13,6 +13,7 @@ exports.createAssociatedTokenAccountUmiIx = createAssociatedTokenAccountUmiIx;
|
|
13
13
|
exports.systemTransferUmiIx = systemTransferUmiIx;
|
14
14
|
exports.closeTokenAccountUmiIx = closeTokenAccountUmiIx;
|
15
15
|
exports.splTokenTransferUmiIx = splTokenTransferUmiIx;
|
16
|
+
exports.getWalletSplBalances = getWalletSplBalances;
|
16
17
|
exports.getAddressLookupInputs = getAddressLookupInputs;
|
17
18
|
exports.addTxOptimizations = addTxOptimizations;
|
18
19
|
exports.assembleFinalTransaction = assembleFinalTransaction;
|
@@ -82,6 +83,17 @@ function closeTokenAccountUmiIx(signer, tokenAccount, authority) {
|
|
82
83
|
function splTokenTransferUmiIx(signer, fromTa, toTa, authority, amount) {
|
83
84
|
return getWrappedInstruction(signer, (0, spl_token_1.createTransferInstruction)(fromTa, toTa, authority, amount));
|
84
85
|
}
|
86
|
+
async function getWalletSplBalances(conn, wallet, tokenMints) {
|
87
|
+
return await Promise.all(tokenMints.map(async (mint) => {
|
88
|
+
try {
|
89
|
+
const data = await conn.getTokenAccountBalance((0, accountUtils_1.getTokenAccount)(wallet, mint), "confirmed");
|
90
|
+
return BigInt(data.value.amount);
|
91
|
+
}
|
92
|
+
catch {
|
93
|
+
return 0n;
|
94
|
+
}
|
95
|
+
}));
|
96
|
+
}
|
85
97
|
async function getAddressLookupInputs(umi, lookupTableAddresses) {
|
86
98
|
const addressLookupTableAccountInfos = await umi.rpc.getAccounts(lookupTableAddresses.map((key) => (0, umi_1.publicKey)(key)), { commitment: "confirmed" });
|
87
99
|
return addressLookupTableAccountInfos.reduce((acc, accountInfo, index) => {
|
package/package.json
CHANGED
@@ -31,6 +31,7 @@ import {
|
|
31
31
|
} from "../../utils/accountUtils";
|
32
32
|
import { SOLAUTO_FEES_WALLET } from "../../constants/generalAccounts";
|
33
33
|
import {
|
34
|
+
getWalletSplBalances,
|
34
35
|
getWrappedInstruction,
|
35
36
|
splTokenTransferUmiIx,
|
36
37
|
} from "../../utils/solanaUtils";
|
@@ -306,45 +307,15 @@ export abstract class SolautoClient extends ReferralStateManager {
|
|
306
307
|
supplyBalance: bigint;
|
307
308
|
debtBalance: bigint;
|
308
309
|
}> {
|
309
|
-
if (
|
310
|
-
this.signerSupplyBalance
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
};
|
310
|
+
if (!this.signerSupplyBalance || !this.signerDebtBalance) {
|
311
|
+
[this.signerSupplyBalance, this.signerDebtBalance] =
|
312
|
+
await getWalletSplBalances(
|
313
|
+
this.connection,
|
314
|
+
toWeb3JsPublicKey(this.signer.publicKey),
|
315
|
+
[this.pos.supplyMint(), this.pos.debtMint()]
|
316
|
+
);
|
317
317
|
}
|
318
318
|
|
319
|
-
[this.signerSupplyBalance, this.signerDebtBalance] = await Promise.all([
|
320
|
-
(async () => {
|
321
|
-
let data: RpcResponseAndContext<TokenAmount> | undefined;
|
322
|
-
try {
|
323
|
-
data = await this.connection.getTokenAccountBalance(
|
324
|
-
getTokenAccount(
|
325
|
-
toWeb3JsPublicKey(this.signer.publicKey),
|
326
|
-
this.pos.supplyMint()
|
327
|
-
),
|
328
|
-
"confirmed"
|
329
|
-
);
|
330
|
-
} catch {}
|
331
|
-
return BigInt(parseInt(data?.value.amount ?? "0"));
|
332
|
-
})(),
|
333
|
-
(async () => {
|
334
|
-
let data: RpcResponseAndContext<TokenAmount> | undefined;
|
335
|
-
try {
|
336
|
-
const data = await this.connection.getTokenAccountBalance(
|
337
|
-
getTokenAccount(
|
338
|
-
toWeb3JsPublicKey(this.signer.publicKey),
|
339
|
-
this.pos.debtMint()
|
340
|
-
),
|
341
|
-
"confirmed"
|
342
|
-
);
|
343
|
-
} catch {}
|
344
|
-
return BigInt(parseInt(data?.value.amount ?? "0"));
|
345
|
-
})(),
|
346
|
-
]);
|
347
|
-
|
348
319
|
return {
|
349
320
|
supplyBalance: this.signerSupplyBalance,
|
350
321
|
debtBalance: this.signerDebtBalance,
|
@@ -18,6 +18,7 @@ import {
|
|
18
18
|
retryWithExponentialBackoff,
|
19
19
|
} from "../../utils";
|
20
20
|
import { TransactionItemInputs } from "../../types";
|
21
|
+
import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
|
21
22
|
|
22
23
|
export interface SwapInput {
|
23
24
|
inputMint: PublicKey;
|
@@ -29,7 +30,7 @@ export interface SwapInput {
|
|
29
30
|
}
|
30
31
|
|
31
32
|
export interface SwapParams extends SwapInput {
|
32
|
-
destinationWallet
|
33
|
+
destinationWallet?: PublicKey;
|
33
34
|
slippageIncFactor?: number;
|
34
35
|
wrapAndUnwrapSol?: boolean;
|
35
36
|
}
|
@@ -87,7 +88,8 @@ export class JupSwapManager {
|
|
87
88
|
wrapAndUnwrapSol: data.wrapAndUnwrapSol ?? false,
|
88
89
|
useTokenLedger: !data.exactOut && !data.exactIn,
|
89
90
|
destinationTokenAccount: getTokenAccount(
|
90
|
-
data.destinationWallet
|
91
|
+
data.destinationWallet ??
|
92
|
+
toWeb3JsPublicKey(this.signer.publicKey),
|
91
93
|
data.outputMint
|
92
94
|
).toString(),
|
93
95
|
},
|
package/src/utils/solanaUtils.ts
CHANGED
@@ -162,6 +162,26 @@ export function splTokenTransferUmiIx(
|
|
162
162
|
);
|
163
163
|
}
|
164
164
|
|
165
|
+
export async function getWalletSplBalances(
|
166
|
+
conn: Connection,
|
167
|
+
wallet: PublicKey,
|
168
|
+
tokenMints: PublicKey[]
|
169
|
+
): Promise<bigint[]> {
|
170
|
+
return await Promise.all(
|
171
|
+
tokenMints.map(async (mint) => {
|
172
|
+
try {
|
173
|
+
const data = await conn.getTokenAccountBalance(
|
174
|
+
getTokenAccount(wallet, mint),
|
175
|
+
"confirmed"
|
176
|
+
);
|
177
|
+
return BigInt(data.value.amount);
|
178
|
+
} catch {
|
179
|
+
return 0n;
|
180
|
+
}
|
181
|
+
})
|
182
|
+
);
|
183
|
+
}
|
184
|
+
|
165
185
|
export async function getAddressLookupInputs(
|
166
186
|
umi: Umi,
|
167
187
|
lookupTableAddresses: string[]
|