@exodus/solana-api 3.26.2 → 3.26.3

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/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.26.3](https://github.com/ExodusMovement/assets/compare/@exodus/solana-api@3.26.2...@exodus/solana-api@3.26.3) (2025-12-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+
12
+ * fix: solana reduce fee payer sponsorship requests (#7147)
13
+
14
+
15
+
6
16
  ## [3.26.2](https://github.com/ExodusMovement/assets/compare/@exodus/solana-api@3.26.1...@exodus/solana-api@3.26.2) (2025-12-15)
7
17
 
8
18
  **Note:** Version bump only for package @exodus/solana-api
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exodus/solana-api",
3
- "version": "3.26.2",
3
+ "version": "3.26.3",
4
4
  "description": "Transaction monitors, fee monitors, RPC with the blockchain node, and other networking code for Solana",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -49,7 +49,7 @@
49
49
  "@exodus/assets-testing": "^1.0.0",
50
50
  "@exodus/solana-web3.js": "^1.63.1-exodus.9-rc3"
51
51
  },
52
- "gitHead": "937ac1707d279c2dda93b162586b5a596236ce08",
52
+ "gitHead": "ae424af3e4254f05509527496806913d56e39aca",
53
53
  "bugs": {
54
54
  "url": "https://github.com/ExodusMovement/assets/issues?q=is%3Aissue+is%3Aopen+label%3Asolana-api"
55
55
  },
@@ -1,6 +1,5 @@
1
1
  import {
2
2
  createUnsignedTx,
3
- deserializeTransaction,
4
3
  findAssociatedTokenAddress,
5
4
  parseTxBuffer,
6
5
  prepareForSigning,
@@ -181,20 +180,18 @@ export const createTxFactory = ({ assetClientInterface, api, feePayerClient }) =
181
180
  ...magicEdenParams,
182
181
  })
183
182
 
183
+ unsignedTx.txMeta.stakingParams = stakingParams
184
+
184
185
  const resolveUnitConsumed = async () => {
185
186
  // this avoids unnecessary simulations. Also the simulation fails with InsufficientFundsForRent when sending all.
186
187
  if (asset.name === asset.baseAsset.name && amount && !nft && !method) {
187
188
  return 150 + CU_FOR_COMPUTE_BUDGET_INSTRUCTIONS
188
189
  }
189
190
 
190
- const transactionForFeeEstimation = await maybeAddFeePayerWithAuth({
191
- unsignedTx,
192
- feePayerClient,
193
- enableFeePayer: feeData.enableFeePayer,
194
- })
195
- const message = transactionForFeeEstimation.txMeta.usedFeePayer
196
- ? deserializeTransaction(transactionForFeeEstimation.txData.transactionBuffer).message
197
- : prepareForSigning(transactionForFeeEstimation).message
191
+ // Simulate with unsigned transaction. The fee payer service is deterministic -
192
+ // same input always produces same output. Any variance from SetAuthority
193
+ // instructions added by fee payer is covered by computeUnitsMultiplier.
194
+ const { message } = prepareForSigning(unsignedTx)
198
195
 
199
196
  const { unitsConsumed, err } = await api.simulateUnsignedTransaction({
200
197
  message,
@@ -218,8 +215,6 @@ export const createTxFactory = ({ assetClientInterface, api, feePayerClient }) =
218
215
  unsignedTx.txData.computeUnits = computeUnits
219
216
  }
220
217
 
221
- unsignedTx.txMeta.stakingParams = stakingParams
222
-
223
218
  // we add token account creation fee
224
219
  let tokenCreationFee = asset.feeAsset.currency.ZERO
225
220
  if (isToken && (!unsignedTx.txData.isAssociatedTokenAccountActive || isExchange)) {