@exodus/balances 13.5.1 → 13.5.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 +12 -0
- package/module/index.js +17 -11
- package/package.json +6 -6
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
|
+
## [13.5.3](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@13.5.2...@exodus/balances@13.5.3) (2025-01-06)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- fix: filter by available asset names in balances (#10962)
|
|
11
|
+
|
|
12
|
+
## [13.5.2](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@13.5.1...@exodus/balances@13.5.2) (2025-01-03)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- fix: only compute balances for available assets (#10958)
|
|
17
|
+
|
|
6
18
|
## [13.5.1](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@13.5.0...@exodus/balances@13.5.1) (2024-11-29)
|
|
7
19
|
|
|
8
20
|
### Bug Fixes
|
package/module/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isNumberUnit } from '@exodus/currency'
|
|
2
2
|
import { TxSet } from '@exodus/models'
|
|
3
3
|
import lodash from 'lodash'
|
|
4
|
+
import { difference as getChanges } from '@exodus/atoms'
|
|
4
5
|
import { difference, flattenToPaths, pick, set } from '@exodus/basic-utils'
|
|
5
6
|
import makeConcurrent from 'make-concurrent'
|
|
6
7
|
import { processAssetBalances, validateBalances } from './balances-utils.js'
|
|
@@ -22,7 +23,8 @@ const zipNonNull = (keys, values) =>
|
|
|
22
23
|
class Balances {
|
|
23
24
|
#logger
|
|
24
25
|
#assetsModule
|
|
25
|
-
#
|
|
26
|
+
#availableAssetNamesAtom
|
|
27
|
+
#availableAssetNames = []
|
|
26
28
|
#balanceFieldsConfig
|
|
27
29
|
#balanceFields
|
|
28
30
|
#walletAccounts = [] // string[]
|
|
@@ -38,7 +40,7 @@ class Balances {
|
|
|
38
40
|
|
|
39
41
|
constructor({
|
|
40
42
|
assetsModule,
|
|
41
|
-
|
|
43
|
+
availableAssetNamesAtom,
|
|
42
44
|
enabledWalletAccountsAtom,
|
|
43
45
|
config,
|
|
44
46
|
logger,
|
|
@@ -48,7 +50,7 @@ class Balances {
|
|
|
48
50
|
}) {
|
|
49
51
|
this.#logger = logger
|
|
50
52
|
this.#assetsModule = assetsModule
|
|
51
|
-
this.#
|
|
53
|
+
this.#availableAssetNamesAtom = availableAssetNamesAtom
|
|
52
54
|
this.#balanceFieldsConfig = config?.balanceFieldsConfig || defaultConfig.balanceFieldsConfig
|
|
53
55
|
this.#balanceFields = config?.balanceFields || defaultConfig.balanceFields
|
|
54
56
|
this.#balancesAtom = balancesAtom
|
|
@@ -83,7 +85,7 @@ class Balances {
|
|
|
83
85
|
this.#setWalletAccounts = swallowErrors(this.#setWalletAccounts)
|
|
84
86
|
}
|
|
85
87
|
|
|
86
|
-
load = () => {
|
|
88
|
+
load = async () => {
|
|
87
89
|
if (this.#loaded) return
|
|
88
90
|
this.#loaded = true
|
|
89
91
|
|
|
@@ -101,12 +103,14 @@ class Balances {
|
|
|
101
103
|
this.#handleTxLogUpdate({ walletAccount, assetName, txLog })
|
|
102
104
|
)
|
|
103
105
|
),
|
|
104
|
-
this.#
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
getChanges(this.#availableAssetNamesAtom).observe(({ previous = [], current }) => {
|
|
107
|
+
this.#availableAssetNames = current
|
|
108
|
+
const added = difference(current, previous)
|
|
109
|
+
if (added.length > 0) this.#onAssetsChanged(added)
|
|
108
110
|
})
|
|
109
111
|
)
|
|
112
|
+
|
|
113
|
+
this.#availableAssetNames = await this.#availableAssetNamesAtom.get()
|
|
110
114
|
}
|
|
111
115
|
|
|
112
116
|
#getAsset = (assetName) => this.#assetsModule.getAsset(assetName)
|
|
@@ -217,7 +221,7 @@ class Balances {
|
|
|
217
221
|
|
|
218
222
|
#onAssetsChanged = async (added) => {
|
|
219
223
|
if (
|
|
220
|
-
added.every((
|
|
224
|
+
added.every((name) =>
|
|
221
225
|
this.#walletAccounts.every((walletAccount) => !!this.#balances?.[walletAccount]?.[name])
|
|
222
226
|
)
|
|
223
227
|
) {
|
|
@@ -228,7 +232,9 @@ class Balances {
|
|
|
228
232
|
this.#recompute()
|
|
229
233
|
}
|
|
230
234
|
|
|
231
|
-
#isSupportedAsset = (assetName) =>
|
|
235
|
+
#isSupportedAsset = (assetName) =>
|
|
236
|
+
this.#availableAssetNames.includes(assetName) && !this.#getAsset(assetName).isCombined
|
|
237
|
+
|
|
232
238
|
#getSupportedAssetNames = () => Object.keys(this.#getAssets()).filter(this.#isSupportedAsset)
|
|
233
239
|
|
|
234
240
|
#getRelatedAssetNames = (assetName) => {
|
|
@@ -362,13 +368,13 @@ const balancesDefinition = {
|
|
|
362
368
|
factory: createBalances,
|
|
363
369
|
dependencies: [
|
|
364
370
|
'assetsModule',
|
|
371
|
+
'availableAssetNamesAtom',
|
|
365
372
|
'enabledWalletAccountsAtom',
|
|
366
373
|
'config',
|
|
367
374
|
'logger',
|
|
368
375
|
'balancesAtom',
|
|
369
376
|
'txLogsAtom',
|
|
370
377
|
'accountStatesAtom',
|
|
371
|
-
'assetsAtom',
|
|
372
378
|
],
|
|
373
379
|
public: true,
|
|
374
380
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exodus/balances",
|
|
3
|
-
"version": "13.5.
|
|
3
|
+
"version": "13.5.3",
|
|
4
4
|
"description": "Tracks crypto balances across enabled wallet accounts.",
|
|
5
5
|
"author": "Exodus Movement, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -51,19 +51,19 @@
|
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@exodus/assets": "^11.0.0",
|
|
53
53
|
"@exodus/assets-base": "^10.0.0",
|
|
54
|
-
"@exodus/assets-feature": "^
|
|
54
|
+
"@exodus/assets-feature": "^6.0.1",
|
|
55
55
|
"@exodus/available-assets": "^8.7.0",
|
|
56
56
|
"@exodus/bitcoin-meta": "^2.0.0",
|
|
57
|
-
"@exodus/blockchain-metadata": "^15.7.
|
|
57
|
+
"@exodus/blockchain-metadata": "^15.7.1",
|
|
58
58
|
"@exodus/ethereum-meta": "^2.0.0",
|
|
59
|
-
"@exodus/fee-data-monitors": "^5.0.
|
|
59
|
+
"@exodus/fee-data-monitors": "^5.0.3",
|
|
60
60
|
"@exodus/storage-memory": "^2.2.2",
|
|
61
|
-
"@exodus/wallet-accounts": "^17.1.
|
|
61
|
+
"@exodus/wallet-accounts": "^17.1.3",
|
|
62
62
|
"events": "^3.3.0",
|
|
63
63
|
"redux": "^4.2.1"
|
|
64
64
|
},
|
|
65
65
|
"publishConfig": {
|
|
66
66
|
"access": "public"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "552dad03015b2b38c40cdf19662b3d26f0bc788e"
|
|
69
69
|
}
|