@exodus/assets-feature 9.2.2 → 9.2.4
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 +17 -0
- package/README.md +1 -1
- package/api/index.d.ts +9 -6
- package/index.js +1 -1
- package/module/assets-module.js +8 -8
- package/module/utils.js +1 -0
- package/package.json +12 -11
- package/plugin/index.js +1 -1
- package/redux/selectors/index.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,23 @@
|
|
|
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
|
+
## [9.2.4](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/assets-feature@9.2.3...@exodus/assets-feature@9.2.4) (2026-06-26)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **assets-feature:** preserve tags in filterBuiltInProps ([#17372](https://github.com/ExodusMovement/exodus-hydra/issues/17372)) ([8435a56](https://github.com/ExodusMovement/exodus-hydra/commit/8435a565b133d84aa9f938b4707d7c14718e70e0))
|
|
11
|
+
|
|
12
|
+
## [9.2.3](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/assets-feature@9.2.2...@exodus/assets-feature@9.2.3) (2026-06-02)
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
- **keychain:** expose needed exports at the root ([#16638](https://github.com/ExodusMovement/exodus-hydra/issues/16638)) ([30b1e96](https://github.com/ExodusMovement/exodus-hydra/commit/30b1e9644d476958f8a8c53e36a87dec3d27c7fb)), closes [#16361](https://github.com/ExodusMovement/exodus-hydra/issues/16361) [#16361](https://github.com/ExodusMovement/exodus-hydra/issues/16361)
|
|
17
|
+
- **typescript:** enable erasableSyntaxOnly across the monorepo ([#16435](https://github.com/ExodusMovement/exodus-hydra/issues/16435)) ([6055ee5](https://github.com/ExodusMovement/exodus-hydra/commit/6055ee57210c9b9a6a67dc0d7b8821077da121e0))
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
- restore precise public types in exchange & assets-feature apis ([#16938](https://github.com/ExodusMovement/exodus-hydra/issues/16938)) ([0c767ee](https://github.com/ExodusMovement/exodus-hydra/commit/0c767ee5fd13990f4cf87445b91f599fdf2b753b)), closes [#16940](https://github.com/ExodusMovement/exodus-hydra/issues/16940)
|
|
22
|
+
|
|
6
23
|
## [9.2.2](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/assets-feature@9.2.1...@exodus/assets-feature@9.2.2) (2026-04-22)
|
|
7
24
|
|
|
8
25
|
### Bug Fixes
|
package/README.md
CHANGED
package/api/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
type Asset = any
|
|
2
2
|
|
|
3
|
-
export
|
|
4
|
-
CURATED
|
|
5
|
-
DISABLED
|
|
6
|
-
UNVERIFIED
|
|
7
|
-
VERIFIED
|
|
8
|
-
}
|
|
3
|
+
export const TokenStatus = {
|
|
4
|
+
CURATED: 'c',
|
|
5
|
+
DISABLED: 'd',
|
|
6
|
+
UNVERIFIED: 'u',
|
|
7
|
+
VERIFIED: 'v',
|
|
8
|
+
} as const
|
|
9
|
+
|
|
10
|
+
export type TokenStatus = (typeof TokenStatus)[keyof typeof TokenStatus]
|
|
9
11
|
|
|
10
12
|
Object.setPrototypeOf(TokenStatus, null)
|
|
11
13
|
|
|
@@ -21,6 +23,7 @@ declare const assetsApiDefinition: {
|
|
|
21
23
|
}
|
|
22
24
|
assets: {
|
|
23
25
|
fetchToken(assetId: string, baseAssetName: string): Asset
|
|
26
|
+
fetchTokens(assetDescriptors: { assetId: string; baseAssetName: string }[]): Promise<Asset[]>
|
|
24
27
|
searchTokens(params: {
|
|
25
28
|
baseAssetName?: string | string[]
|
|
26
29
|
lifecycleStatus?: TokenStatus[]
|
package/index.js
CHANGED
|
@@ -47,7 +47,7 @@ const assets = (config = Object.create(null)) => {
|
|
|
47
47
|
},
|
|
48
48
|
{ definition: assetsApiDefinition },
|
|
49
49
|
// TODO: add storage namespace once we remove customTokensStorage
|
|
50
|
-
//
|
|
50
|
+
// oxlint-disable-next-line @exodus/oxlint-plugin-hydra/missing-storage-namespace
|
|
51
51
|
{
|
|
52
52
|
definition: assetModuleDefinition,
|
|
53
53
|
// storage: { namespace: 'customTokens' },
|
package/module/assets-module.js
CHANGED
|
@@ -27,7 +27,7 @@ import { validateCustomToken } from '@exodus/asset-schema-validation'
|
|
|
27
27
|
import makeConcurrent from 'make-concurrent'
|
|
28
28
|
import oldToNewStyleTokenNames from '@exodus/asset-legacy-token-name-mapping'
|
|
29
29
|
|
|
30
|
-
//
|
|
30
|
+
// oxlint-disable-next-line @exodus/oxlint-plugin-restricted-imports/prefer-basic-utils
|
|
31
31
|
const { get, isEmpty, once, uniq, chunk, pick } = lodash
|
|
32
32
|
|
|
33
33
|
const getFetchCacheKey = (baseAssetName, assetId) => `${assetId}-${baseAssetName}`
|
|
@@ -37,8 +37,8 @@ const _isDisabledCustomToken = (token) => token.lifecycleStatus === STATUS.DISAB
|
|
|
37
37
|
const normalizeToken = (token) => ({
|
|
38
38
|
...token,
|
|
39
39
|
name: token.name || token.assetName,
|
|
40
|
-
displayName: token.displayName || token.properName, //
|
|
41
|
-
displayTicker: token.displayTicker || token.properTicker, //
|
|
40
|
+
displayName: token.displayName || token.properName, // oxlint-disable-line @exodus/oxlint-plugin-hydra/no-asset-proper
|
|
41
|
+
displayTicker: token.displayTicker || token.properTicker, // oxlint-disable-line @exodus/oxlint-plugin-hydra/no-asset-proper
|
|
42
42
|
})
|
|
43
43
|
|
|
44
44
|
const initialAssetRegistry = {
|
|
@@ -190,7 +190,7 @@ export class AssetsModule {
|
|
|
190
190
|
const storedTokens = await this.#readCustomTokens()
|
|
191
191
|
const tokens = pickBy(storedTokens, ({ baseAssetName }) => {
|
|
192
192
|
const baseAsset = this.getAsset(baseAssetName)
|
|
193
|
-
return baseAsset?.api?.
|
|
193
|
+
return baseAsset?.api?.features?.customTokens
|
|
194
194
|
})
|
|
195
195
|
|
|
196
196
|
// tokens may be:
|
|
@@ -430,7 +430,7 @@ export class AssetsModule {
|
|
|
430
430
|
const versionedAssetNames = await this.#getVersionedAssetNames()
|
|
431
431
|
const updatableAssetNames = versionedAssetNames.filter(({ assetName }) => {
|
|
432
432
|
const asset = this.getAsset(assetName)
|
|
433
|
-
return !asset?.isBuiltIn && asset?.baseAsset.api?.
|
|
433
|
+
return !asset?.isBuiltIn && asset?.baseAsset.api?.features?.customTokens
|
|
434
434
|
})
|
|
435
435
|
if (updatableAssetNames.length === 0) return
|
|
436
436
|
|
|
@@ -499,8 +499,8 @@ export class AssetsModule {
|
|
|
499
499
|
}
|
|
500
500
|
|
|
501
501
|
#getCustomTokensNetworkNames = () =>
|
|
502
|
-
this.getBaseAssetNames().filter(
|
|
503
|
-
this.getAsset(assetName).api?.
|
|
502
|
+
this.getBaseAssetNames().filter(
|
|
503
|
+
(assetName) => this.getAsset(assetName).api?.features?.customTokens
|
|
504
504
|
)
|
|
505
505
|
|
|
506
506
|
#fetchTokensByNames = async ({ tokenNames, allowedStatusList }) => {
|
|
@@ -691,7 +691,7 @@ export class AssetsModule {
|
|
|
691
691
|
|
|
692
692
|
#assertSupportsCustomTokens = (baseAssetName) => {
|
|
693
693
|
const baseAsset = this.getAsset(baseAssetName)
|
|
694
|
-
if (!baseAsset?.api?.
|
|
694
|
+
if (!baseAsset?.api?.features?.customTokens) {
|
|
695
695
|
const reason = `BUG: network ${baseAsset?.name} does not support custom tokens.`
|
|
696
696
|
this.#logger.warn(reason)
|
|
697
697
|
throw new Error(reason)
|
package/module/utils.js
CHANGED
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exodus/assets-feature",
|
|
3
|
-
"version": "9.2.
|
|
3
|
+
"version": "9.2.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "This Exodus SDK feature provides access to instances of all blockchain asset adapters supported by the wallet, and enables you to search for and add custom tokens at runtime.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "index.js",
|
|
8
8
|
"author": "Exodus Movement, Inc.",
|
|
9
9
|
"scripts": {
|
|
10
|
-
"test": "
|
|
11
|
-
"lint": "
|
|
12
|
-
"lint:fix": "
|
|
10
|
+
"test": "pnpm exec exodus-test --jest",
|
|
11
|
+
"lint": "pnpm exec eslint .",
|
|
12
|
+
"lint:fix": "pnpm run lint --fix"
|
|
13
13
|
},
|
|
14
14
|
"files": [
|
|
15
15
|
"api",
|
|
@@ -53,13 +53,14 @@
|
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@exodus/available-assets": "^8.11.0",
|
|
56
|
+
"@exodus/bip32": "^4.3.0",
|
|
56
57
|
"@exodus/bip39": "^1.1.0",
|
|
57
58
|
"@exodus/bip44-constants": "^195.0.0",
|
|
58
59
|
"@exodus/bitcoin-meta": "^2.0.0",
|
|
59
60
|
"@exodus/bitcoin-plugin": "^2.0.0",
|
|
60
61
|
"@exodus/bitcoinregtest-plugin": "^2.0.0",
|
|
61
62
|
"@exodus/bitcointestnet-plugin": "^2.0.0",
|
|
62
|
-
"@exodus/blockchain-metadata": "^17.
|
|
63
|
+
"@exodus/blockchain-metadata": "^17.2.0",
|
|
63
64
|
"@exodus/cardano-lib": "^4.0.0",
|
|
64
65
|
"@exodus/combined-assets-meta": "^3.7.0",
|
|
65
66
|
"@exodus/cosmos-plugin": "^1.3.3",
|
|
@@ -67,14 +68,14 @@
|
|
|
67
68
|
"@exodus/ethereum-meta": "^2.0.0",
|
|
68
69
|
"@exodus/ethereum-plugin": "^2.7.4",
|
|
69
70
|
"@exodus/fusion-local": "^2.1.0",
|
|
70
|
-
"@exodus/keychain": "^
|
|
71
|
+
"@exodus/keychain": "^12.0.0",
|
|
71
72
|
"@exodus/logger": "^1.2.3",
|
|
72
|
-
"@exodus/models": "^13.
|
|
73
|
+
"@exodus/models": "^13.3.1",
|
|
73
74
|
"@exodus/osmosis-plugin": "^1.3.3",
|
|
74
|
-
"@exodus/public-key-provider": "^4.
|
|
75
|
-
"@exodus/redux-dependency-injection": "^
|
|
75
|
+
"@exodus/public-key-provider": "^4.3.1",
|
|
76
|
+
"@exodus/redux-dependency-injection": "^5.0.0",
|
|
76
77
|
"@exodus/storage-memory": "^2.4.0",
|
|
77
|
-
"@exodus/wallet-accounts": "^20.4.
|
|
78
|
+
"@exodus/wallet-accounts": "^20.4.8",
|
|
78
79
|
"@exodus/wild-emitter": "^1.0.0",
|
|
79
80
|
"events": "^3.3.0",
|
|
80
81
|
"msw": "^2.0.0",
|
|
@@ -84,5 +85,5 @@
|
|
|
84
85
|
"access": "public",
|
|
85
86
|
"provenance": false
|
|
86
87
|
},
|
|
87
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "15bc530ddbb4d8dc9a459ef954bda419320186ad"
|
|
88
89
|
}
|
package/plugin/index.js
CHANGED
|
@@ -21,7 +21,7 @@ const createAssetsPlugin = ({
|
|
|
21
21
|
const payload = {
|
|
22
22
|
assets,
|
|
23
23
|
defaultAccountStates: mapValues(
|
|
24
|
-
pickBy(assets, (asset) => asset.api?.
|
|
24
|
+
pickBy(assets, (asset) => asset.api?.features?.accountState),
|
|
25
25
|
(asset) => asset.api.createAccountState().create()
|
|
26
26
|
),
|
|
27
27
|
}
|
package/redux/selectors/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { createSelector } from 'reselect'
|
|
|
4
4
|
// eslint-disable-next-line no-restricted-imports -- TODO: Fix this the next time the file is edited.
|
|
5
5
|
import lodash from 'lodash'
|
|
6
6
|
|
|
7
|
-
const { memoize } = lodash //
|
|
7
|
+
const { memoize } = lodash // oxlint-disable-line @exodus/oxlint-plugin-restricted-imports/prefer-basic-utils
|
|
8
8
|
|
|
9
9
|
const allAssetsSelectorDefinition = {
|
|
10
10
|
id: 'all',
|