diff --git a/sdk/src/driftClient.ts b/sdk/src/driftClient.ts index 0d47af7d37..f2b33b7c8e 100644 --- a/sdk/src/driftClient.ts +++ b/sdk/src/driftClient.ts @@ -5091,6 +5091,7 @@ export class DriftClient { v6, quote, onlyDirectRoutes = false, + feeAccount, }: { jupiterClient: JupiterClient; outMarketIndex: number; @@ -5107,6 +5108,7 @@ export class DriftClient { quote?: QuoteResponse; }; quote?: QuoteResponse; + feeAccount?: string; }): Promise { const quoteToUse = quote ?? v6?.quote; @@ -5122,6 +5124,7 @@ export class DriftClient { quote: quoteToUse, reduceOnly, onlyDirectRoutes, + feeAccount, }); const ixs = res.ixs; const lookupTables = res.lookupTables; @@ -5153,6 +5156,7 @@ export class DriftClient { quote, reduceOnly, userAccountPublicKey, + feeAccount, }: { jupiterClient: JupiterClient; outMarketIndex: number; @@ -5166,6 +5170,7 @@ export class DriftClient { quote?: QuoteResponse; reduceOnly?: SwapReduceOnly; userAccountPublicKey?: PublicKey; + feeAccount?: string; }): Promise<{ ixs: TransactionInstruction[]; lookupTables: AddressLookupTableAccount[]; @@ -5198,6 +5203,7 @@ export class DriftClient { quote, userPublicKey: this.provider.wallet.publicKey, slippageBps, + feeAccount, }); const { transactionMessage, lookupTables } = diff --git a/sdk/src/jupiter/jupiterClient.ts b/sdk/src/jupiter/jupiterClient.ts index e943db5851..c0b7c342b9 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,18 @@ 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, + feeAccount, }: { quote: QuoteResponse; userPublicKey: PublicKey; slippageBps?: number; + feeAccount?: string; }): Promise { if (!quote) { throw new Error('Jupiter swap quote not provided. Please try again.'); @@ -332,6 +338,7 @@ export class JupiterClient { quoteResponse: quote, userPublicKey, slippageBps, + feeAccount, }), }) ).json();