@exodus/solana-api 3.30.6 → 3.30.7
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 +10 -0
- package/package.json +2 -2
- package/src/api.js +5 -6
- package/src/rpc-api.js +31 -6
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.30.7](https://github.com/ExodusMovement/assets/compare/@exodus/solana-api@3.30.6...@exodus/solana-api@3.30.7) (2026-04-01)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
* fix: addressIsActive users tx history (#7708)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
6
16
|
## [3.30.6](https://github.com/ExodusMovement/assets/compare/@exodus/solana-api@3.30.5...@exodus/solana-api@3.30.6) (2026-03-30)
|
|
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.30.
|
|
3
|
+
"version": "3.30.7",
|
|
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": "
|
|
52
|
+
"gitHead": "3a8c58c8457a1d096ee5d3ecb2eea9e82b69ecb7",
|
|
53
53
|
"bugs": {
|
|
54
54
|
"url": "https://github.com/ExodusMovement/assets/issues?q=is%3Aissue+is%3Aopen+label%3Asolana-api"
|
|
55
55
|
},
|
package/src/api.js
CHANGED
|
@@ -497,14 +497,13 @@ export class Api {
|
|
|
497
497
|
}
|
|
498
498
|
|
|
499
499
|
/**
|
|
500
|
-
* Returns true if the
|
|
501
|
-
*
|
|
502
|
-
*
|
|
503
|
-
* runtime deleted the account, RPC returns null.
|
|
500
|
+
* Returns true if the address has any transaction history.
|
|
501
|
+
* Solana system accounts can be reclaimed after staying below rent exemption, so
|
|
502
|
+
* current account info is not a reliable signal for whether an address was ever used.
|
|
504
503
|
*/
|
|
505
504
|
async addressIsActive(address) {
|
|
506
|
-
const
|
|
507
|
-
return
|
|
505
|
+
const signatures = await this.getSignaturesForAddress(address, { limit: 1 })
|
|
506
|
+
return signatures.length > 0
|
|
508
507
|
}
|
|
509
508
|
|
|
510
509
|
async isSpl(address) {
|
package/src/rpc-api.js
CHANGED
|
@@ -190,6 +190,32 @@ export class RpcApi {
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
+
async getSignaturesForAddress(address, { until, before, limit } = {}) {
|
|
194
|
+
until = until || undefined
|
|
195
|
+
|
|
196
|
+
const fetchRetry = retry(
|
|
197
|
+
async () => {
|
|
198
|
+
try {
|
|
199
|
+
return await this.rpcCall('getSignaturesForAddress', [address, { until, before, limit }])
|
|
200
|
+
} catch (error) {
|
|
201
|
+
if (
|
|
202
|
+
error.message &&
|
|
203
|
+
!errorMessagesToRetry.some((errorMessage) => error.message.includes(errorMessage))
|
|
204
|
+
) {
|
|
205
|
+
error.finalError = true
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
console.warn(`Error getting signatures. Retrying...`, error)
|
|
209
|
+
|
|
210
|
+
throw error
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
{ delayTimesMs: ['8s', '10s', '15s'] }
|
|
214
|
+
)
|
|
215
|
+
|
|
216
|
+
return fetchRetry()
|
|
217
|
+
}
|
|
218
|
+
|
|
193
219
|
async getWalletTokensList({ tokenAccounts }) {
|
|
194
220
|
const tokensMint = []
|
|
195
221
|
for (const account of tokenAccounts) {
|
|
@@ -244,14 +270,13 @@ export class RpcApi {
|
|
|
244
270
|
}
|
|
245
271
|
|
|
246
272
|
/**
|
|
247
|
-
* Returns true if the
|
|
248
|
-
*
|
|
249
|
-
*
|
|
250
|
-
* runtime deleted the account, RPC returns null.
|
|
273
|
+
* Returns true if the address has any transaction history.
|
|
274
|
+
* Solana system accounts can be reclaimed after staying below rent exemption, so
|
|
275
|
+
* current account info is not a reliable signal for whether an address was ever used.
|
|
251
276
|
*/
|
|
252
277
|
async addressIsActive(address) {
|
|
253
|
-
const
|
|
254
|
-
return
|
|
278
|
+
const signatures = await this.getSignaturesForAddress(address, { limit: 1 })
|
|
279
|
+
return signatures.length > 0
|
|
255
280
|
}
|
|
256
281
|
|
|
257
282
|
async getTokenFeeBasisPoints(address) {
|