From f04b69d5029c32ea64e4e5ed712beff67d3a4f61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=81=B4=EB=A0=88=EC=98=A8?= Date: Wed, 21 May 2025 14:15:58 +0200 Subject: [PATCH 1/2] Integrate feeAccount + platformFeeBps for Swaps % fees. --- sdk/src/driftClient.ts | 12 ++++++++++++ sdk/src/jupiter/jupiterClient.ts | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/sdk/src/driftClient.ts b/sdk/src/driftClient.ts index 0d47af7d37..102840b005 100644 --- a/sdk/src/driftClient.ts +++ b/sdk/src/driftClient.ts @@ -5091,6 +5091,8 @@ export class DriftClient { v6, quote, onlyDirectRoutes = false, + wrapAndUnwrapSOL, + feeAccount, }: { jupiterClient: JupiterClient; outMarketIndex: number; @@ -5107,6 +5109,8 @@ export class DriftClient { quote?: QuoteResponse; }; quote?: QuoteResponse; + wrapAndUnwrapSOL?: boolean; + feeAccount?: string; }): Promise { const quoteToUse = quote ?? v6?.quote; @@ -5122,6 +5126,8 @@ export class DriftClient { quote: quoteToUse, reduceOnly, onlyDirectRoutes, + wrapAndUnwrapSOL, + feeAccount, }); const ixs = res.ixs; const lookupTables = res.lookupTables; @@ -5153,6 +5159,8 @@ export class DriftClient { quote, reduceOnly, userAccountPublicKey, + wrapAndUnwrapSOL, + feeAccount, }: { jupiterClient: JupiterClient; outMarketIndex: number; @@ -5166,6 +5174,8 @@ export class DriftClient { quote?: QuoteResponse; reduceOnly?: SwapReduceOnly; userAccountPublicKey?: PublicKey; + wrapAndUnwrapSOL?: boolean; + feeAccount?: string; }): Promise<{ ixs: TransactionInstruction[]; lookupTables: AddressLookupTableAccount[]; @@ -5198,6 +5208,8 @@ export class DriftClient { quote, userPublicKey: this.provider.wallet.publicKey, slippageBps, + wrapAndUnwrapSOL, + feeAccount, }); const { transactionMessage, lookupTables } = diff --git a/sdk/src/jupiter/jupiterClient.ts b/sdk/src/jupiter/jupiterClient.ts index e943db5851..43ce8d0b16 100644 --- a/sdk/src/jupiter/jupiterClient.ts +++ b/sdk/src/jupiter/jupiterClient.ts @@ -258,6 +258,7 @@ export class JupiterClient { autoSlippage = false, maxAutoSlippageBps, usdEstimate, + platformFeeBps, }: { inputMint: PublicKey; outputMint: PublicKey; @@ -270,6 +271,7 @@ export class JupiterClient { autoSlippage?: boolean; maxAutoSlippageBps?: number; usdEstimate?: number; + platformFeeBps?: number; }): Promise { const params = new URLSearchParams({ inputMint: inputMint.toString(), @@ -285,6 +287,7 @@ export class JupiterClient { ? usdEstimate.toString() : '0', ...(excludeDexes && { excludeDexes: excludeDexes.join(',') }), + ...(platformFeeBps && { platformFeeBps: platformFeeBps.toString() }), }); if (swapMode === 'ExactOut') { params.delete('maxAccounts'); @@ -304,15 +307,20 @@ export class JupiterClient { * @param quoteResponse quote to perform swap * @param userPublicKey the signer's wallet public key * @param slippageBps the slippage tolerance in basis points + * @param feeAccount the fee account to use for the swap */ public async getSwap({ quote, userPublicKey, slippageBps = 50, + wrapAndUnwrapSOL = undefined, + feeAccount, }: { quote: QuoteResponse; userPublicKey: PublicKey; slippageBps?: number; + wrapAndUnwrapSOL?: boolean; + feeAccount?: string; }): Promise { if (!quote) { throw new Error('Jupiter swap quote not provided. Please try again.'); @@ -332,6 +340,8 @@ export class JupiterClient { quoteResponse: quote, userPublicKey, slippageBps, + wrapAndUnwrapSOL, + feeAccount, }), }) ).json(); From 206cbb6299f762cbfb18288357b4690659a58a61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=81=B4=EB=A0=88=EC=98=A8?= Date: Wed, 21 May 2025 16:39:49 +0200 Subject: [PATCH 2/2] wrapAndUnwrapSOL was unnecessary --- sdk/src/driftClient.ts | 6 ------ sdk/src/jupiter/jupiterClient.ts | 3 --- 2 files changed, 9 deletions(-) diff --git a/sdk/src/driftClient.ts b/sdk/src/driftClient.ts index 102840b005..f2b33b7c8e 100644 --- a/sdk/src/driftClient.ts +++ b/sdk/src/driftClient.ts @@ -5091,7 +5091,6 @@ export class DriftClient { v6, quote, onlyDirectRoutes = false, - wrapAndUnwrapSOL, feeAccount, }: { jupiterClient: JupiterClient; @@ -5109,7 +5108,6 @@ export class DriftClient { quote?: QuoteResponse; }; quote?: QuoteResponse; - wrapAndUnwrapSOL?: boolean; feeAccount?: string; }): Promise { const quoteToUse = quote ?? v6?.quote; @@ -5126,7 +5124,6 @@ export class DriftClient { quote: quoteToUse, reduceOnly, onlyDirectRoutes, - wrapAndUnwrapSOL, feeAccount, }); const ixs = res.ixs; @@ -5159,7 +5156,6 @@ export class DriftClient { quote, reduceOnly, userAccountPublicKey, - wrapAndUnwrapSOL, feeAccount, }: { jupiterClient: JupiterClient; @@ -5174,7 +5170,6 @@ export class DriftClient { quote?: QuoteResponse; reduceOnly?: SwapReduceOnly; userAccountPublicKey?: PublicKey; - wrapAndUnwrapSOL?: boolean; feeAccount?: string; }): Promise<{ ixs: TransactionInstruction[]; @@ -5208,7 +5203,6 @@ export class DriftClient { quote, userPublicKey: this.provider.wallet.publicKey, slippageBps, - wrapAndUnwrapSOL, feeAccount, }); diff --git a/sdk/src/jupiter/jupiterClient.ts b/sdk/src/jupiter/jupiterClient.ts index 43ce8d0b16..c0b7c342b9 100644 --- a/sdk/src/jupiter/jupiterClient.ts +++ b/sdk/src/jupiter/jupiterClient.ts @@ -313,13 +313,11 @@ export class JupiterClient { quote, userPublicKey, slippageBps = 50, - wrapAndUnwrapSOL = undefined, feeAccount, }: { quote: QuoteResponse; userPublicKey: PublicKey; slippageBps?: number; - wrapAndUnwrapSOL?: boolean; feeAccount?: string; }): Promise { if (!quote) { @@ -340,7 +338,6 @@ export class JupiterClient { quoteResponse: quote, userPublicKey, slippageBps, - wrapAndUnwrapSOL, feeAccount, }), })