@exodus/solana-api 3.26.5 → 3.26.6

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.6](https://github.com/ExodusMovement/assets/compare/@exodus/solana-api@3.26.5...@exodus/solana-api@3.26.6) (2026-01-08)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+
12
+ * fix: Solana send-all leaving dust due to rent exemption check failure (#7217)
13
+
14
+
15
+
6
16
  ## [3.26.5](https://github.com/ExodusMovement/assets/compare/@exodus/solana-api@3.26.4...@exodus/solana-api@3.26.5) (2025-12-29)
7
17
 
8
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exodus/solana-api",
3
- "version": "3.26.5",
3
+ "version": "3.26.6",
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": "1d62bfbf0924dc4c6eb52f6af2417c220f7454cb",
52
+ "gitHead": "cc6f873a99d2a770ee83f0f7563f803e068d04de",
53
53
  "bugs": {
54
54
  "url": "https://github.com/ExodusMovement/assets/issues?q=is%3Aissue+is%3Aopen+label%3Asolana-api"
55
55
  },
@@ -242,8 +242,6 @@ export const createTxFactory = ({ assetClientInterface, api, feePayerClient }) =
242
242
  tx.txMeta.fee = fee.toBaseNumber()
243
243
 
244
244
  if (!tx.txMeta.usedFeePayer) {
245
- const rentExemptValue = await api.getRentExemptionMinAmount(toAddress)
246
- const rentExemptAmount = baseAsset.currency.baseUnit(rentExemptValue)
247
245
  const senderRentExemptAmount = baseAsset.currency.baseUnit(
248
246
  await api.getMinimumBalanceForRentExemption(0)
249
247
  )
@@ -254,7 +252,9 @@ export const createTxFactory = ({ assetClientInterface, api, feePayerClient }) =
254
252
  let isEnoughForRent = false
255
253
  if (asset.name === baseAsset.name && !nft) {
256
254
  // sending SOL
257
- const remaining = baseAssetBalance.sub(calculatedFee).sub(amount)
255
+ const rentExemptValue = await api.getRentExemptionMinAmount(toAddress)
256
+ const rentExemptAmount = baseAsset.currency.baseUnit(rentExemptValue)
257
+ const remaining = baseAssetBalance.sub(calculatedFee).sub(amount).clampLowerZero()
258
258
  isEnoughForRent =
259
259
  amount.gte(rentExemptAmount) && (remaining.isZero || remaining.gte(rentExemptAmount))
260
260
  } else {