@exodus/assets-feature 8.3.0 → 8.5.0

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,18 @@
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
+ ## [8.5.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/assets-feature@8.4.0...@exodus/assets-feature@8.5.0) (2025-09-18)
7
+
8
+ ### Features
9
+
10
+ - feat: support passing lifecycleStatus in addRemoteTokens (#13844)
11
+
12
+ ## [8.4.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/assets-feature@8.3.0...@exodus/assets-feature@8.4.0) (2025-08-18)
13
+
14
+ ### Features
15
+
16
+ - feat: multisigDataIndex in address-provider (#13331)
17
+
6
18
  ## [8.3.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/assets-feature@8.2.0...@exodus/assets-feature@8.3.0) (2025-08-11)
7
19
 
8
20
  ### Features
@@ -17,6 +17,7 @@ class AssetClientInterface {
17
17
  #publicKeyProvider
18
18
  #transactionSigner
19
19
  #walletAccountsAtom
20
+ #multisigAtom
20
21
 
21
22
  constructor({
22
23
  addressProvider,
@@ -31,6 +32,7 @@ class AssetClientInterface {
31
32
  publicKeyProvider,
32
33
  transactionSigner,
33
34
  walletAccountsAtom,
35
+ multisigAtom,
34
36
  }) {
35
37
  this.#addressProvider = addressProvider
36
38
  this.#assetsModule = assetsModule
@@ -44,6 +46,7 @@ class AssetClientInterface {
44
46
  this.#publicKeyProvider = publicKeyProvider
45
47
  this.#transactionSigner = transactionSigner
46
48
  this.#walletAccountsAtom = walletAccountsAtom
49
+ this.#multisigAtom = multisigAtom
47
50
 
48
51
  assetsModule.initialize({ assetClientInterface: this })
49
52
  }
@@ -186,6 +189,11 @@ class AssetClientInterface {
186
189
  out.multiAddressMode = multiAddressMode
187
190
  }
188
191
 
192
+ if (this.#multisigAtom) {
193
+ const multisigWallets = await this.#multisigAtom.get()
194
+ out.multisigDataLength = multisigWallets[walletAccount]?.data?.length
195
+ }
196
+
189
197
  return out
190
198
  }
191
199
 
package/client/index.js CHANGED
@@ -18,6 +18,7 @@ const assetsClientInterfaceDefinition = {
18
18
  'transactionSigner',
19
19
  'wallet',
20
20
  'walletAccountsAtom',
21
+ 'multisigAtom?',
21
22
  ],
22
23
  public: true,
23
24
  }
@@ -380,8 +380,12 @@ export class AssetsModule {
380
380
  return [...added, ...updated]
381
381
  }
382
382
 
383
- addRemoteTokens = async ({ tokenNames }) => {
383
+ addRemoteTokens = async ({ tokenNames, allowedStatusList }) => {
384
384
  this.#assertCustomTokensStorageSupported()
385
+ assert(
386
+ !allowedStatusList || Array.isArray(allowedStatusList),
387
+ 'addRemoteTokens: expected `allowedStatusList` to be an array'
388
+ )
385
389
 
386
390
  const assets = this.getAssets()
387
391
  const [tokenNamesToUpdate, tokenNamesToFetch] = partition(
@@ -389,23 +393,27 @@ export class AssetsModule {
389
393
  (tokenName) => !!assets[tokenName]
390
394
  )
391
395
 
392
- const fetchedTokens =
393
- tokenNamesToFetch.length > 0
394
- ? await this.#fetch('tokens', { tokenNames: tokenNamesToFetch }, 'tokens')
395
- : []
396
+ const tokens = tokenNamesToUpdate.map((tokenName) => assets[tokenName])
396
397
 
397
- const validTokens = fetchedTokens.filter(this.#isValidCustomToken).map(normalizeToken)
398
- if (validTokens.length !== fetchedTokens.length) {
399
- this.#logger.warn('Invalid Custom Token schema')
400
- }
398
+ if (tokenNamesToFetch.length > 0) {
399
+ const body = { tokenNames: tokenNamesToFetch }
400
+ if (allowedStatusList) {
401
+ body.lifecycleStatus = allowedStatusList
402
+ }
401
403
 
402
- const tokens = tokenNamesToUpdate.map((tokenName) => assets[tokenName])
404
+ const fetchedTokens = await this.#fetch('tokens', body, 'tokens')
405
+ const validTokens = fetchedTokens.filter(this.#isValidCustomToken).map(normalizeToken)
403
406
 
404
- validTokens.forEach((token) => {
405
- // replace fetched CT with existing built-in token if found by assetId
406
- const asset = token.assetId && this.#getAssetFromAssetId(token.assetId, token.baseAssetName)
407
- tokens.push(asset ?? token)
408
- })
407
+ if (validTokens && validTokens.length !== fetchedTokens.length) {
408
+ this.#logger.warn('Invalid Custom Token schema')
409
+ }
410
+
411
+ validTokens.forEach((token) => {
412
+ // replace fetched CT with existing built-in token if found by assetId
413
+ const asset = token.assetId && this.#getAssetFromAssetId(token.assetId, token.baseAssetName)
414
+ tokens.push(asset || token)
415
+ })
416
+ }
409
417
 
410
418
  if (isEmpty(tokens)) return
411
419
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exodus/assets-feature",
3
- "version": "8.3.0",
3
+ "version": "8.5.0",
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",
@@ -51,14 +51,14 @@
51
51
  "reselect": "^3.0.1"
52
52
  },
53
53
  "devDependencies": {
54
- "@exodus/available-assets": "^8.7.0",
54
+ "@exodus/available-assets": "^8.8.0",
55
55
  "@exodus/bip39": "^1.0.3",
56
56
  "@exodus/bip44-constants": "^195.0.0",
57
57
  "@exodus/bitcoin-meta": "^2.0.0",
58
58
  "@exodus/bitcoin-plugin": "^1.29.1",
59
59
  "@exodus/bitcoinregtest-plugin": "^1.11.0",
60
60
  "@exodus/bitcointestnet-plugin": "^1.13.1",
61
- "@exodus/blockchain-metadata": "^15.14.0",
61
+ "@exodus/blockchain-metadata": "^16.0.0",
62
62
  "@exodus/cardano-lib": "^3.4.1",
63
63
  "@exodus/combined-assets-meta": "^3.0.0",
64
64
  "@exodus/cosmos-plugin": "^1.3.3",
@@ -68,12 +68,12 @@
68
68
  "@exodus/fusion-local": "^2.1.0",
69
69
  "@exodus/keychain": "^7.3.0",
70
70
  "@exodus/logger": "^1.2.3",
71
- "@exodus/models": "^12.15.0",
71
+ "@exodus/models": "^12.16.0",
72
72
  "@exodus/osmosis-plugin": "^1.3.3",
73
73
  "@exodus/public-key-provider": "^4.2.0",
74
- "@exodus/redux-dependency-injection": "^4.1.1",
74
+ "@exodus/redux-dependency-injection": "^4.1.2",
75
75
  "@exodus/storage-memory": "^2.3.0",
76
- "@exodus/wallet-accounts": "^17.6.2",
76
+ "@exodus/wallet-accounts": "^19.1.0",
77
77
  "@exodus/wild-emitter": "^1.0.0",
78
78
  "events": "^3.3.0",
79
79
  "msw": "^2.0.0",
@@ -82,5 +82,5 @@
82
82
  "publishConfig": {
83
83
  "access": "public"
84
84
  },
85
- "gitHead": "b1676f695267900d5d7e94265f97d6e7ae4a92ae"
85
+ "gitHead": "164e7082a3f0caf2a20915fe098cff406067cde0"
86
86
  }