@exodus/balances 6.0.0 → 6.1.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 +11 -0
- package/module/index.js +26 -9
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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
|
+
## [6.1.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@6.0.1...@exodus/balances@6.1.0) (2023-07-19)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- capture #setWalletAccounts ([#2723](https://github.com/ExodusMovement/exodus-hydra/issues/2723)) ([af8c52b](https://github.com/ExodusMovement/exodus-hydra/commit/af8c52b6f4623e490d470b6185fafb4b771d5bcc))
|
|
11
|
+
- emit errors from balances module ([#2718](https://github.com/ExodusMovement/exodus-hydra/issues/2718)) ([d150e55](https://github.com/ExodusMovement/exodus-hydra/commit/d150e555c76e9fedc3defb2023f8b161ce99c5f1))
|
|
12
|
+
|
|
13
|
+
## [6.0.1](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@6.0.0...@exodus/balances@6.0.1) (2023-06-21)
|
|
14
|
+
|
|
15
|
+
**Note:** Version bump only for package @exodus/balances
|
|
16
|
+
|
|
6
17
|
## [6.0.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@5.0.0...@exodus/balances@6.0.0) (2023-04-25)
|
|
7
18
|
|
|
8
19
|
### ⚠ BREAKING CHANGES
|
package/module/index.js
CHANGED
|
@@ -33,7 +33,7 @@ class Balances extends ExodusModule {
|
|
|
33
33
|
constructor({
|
|
34
34
|
assetsModule,
|
|
35
35
|
blockchainMetadata,
|
|
36
|
-
|
|
36
|
+
enabledWalletAccountsAtom,
|
|
37
37
|
config: { balanceFields },
|
|
38
38
|
logger,
|
|
39
39
|
balancesAtom,
|
|
@@ -53,17 +53,32 @@ class Balances extends ExodusModule {
|
|
|
53
53
|
this.#pushIntoSharedQueue(() => fn.apply(this, args))
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
const captureErrors =
|
|
57
|
+
(fn, name) =>
|
|
58
|
+
async (...args) => {
|
|
59
|
+
try {
|
|
60
|
+
return await fn(...args)
|
|
61
|
+
} catch (error) {
|
|
62
|
+
this.emit('error', { fn: name, error })
|
|
63
|
+
throw error
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
56
67
|
// these share a queue
|
|
57
68
|
this.#updateAssetSource = shareQueue(this.#updateAssetSource)
|
|
58
69
|
this.#handleTxLogUpdate = shareQueue(this.#handleTxLogUpdate)
|
|
59
70
|
this.#recompute = shareQueue(this.#recompute)
|
|
71
|
+
this.#getBalancesForAssetSource = captureErrors(
|
|
72
|
+
this.#getBalancesForAssetSource,
|
|
73
|
+
'getBalancesForAssetSource'
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
this.#setWalletAccounts = captureErrors(this.#setWalletAccounts, 'setWalletAccounts')
|
|
60
77
|
|
|
61
78
|
blockchainMetadata.once('load-wallet-accounts', () => {
|
|
62
79
|
// eslint-disable-next-line hydra/module-side-effects
|
|
63
|
-
|
|
64
|
-
this.#setWalletAccounts(
|
|
65
|
-
Object.keys(payload).filter((walletAccount) => payload[walletAccount].enabled)
|
|
66
|
-
)
|
|
80
|
+
enabledWalletAccountsAtom.observe((payload) => {
|
|
81
|
+
this.#setWalletAccounts(Object.keys(payload))
|
|
67
82
|
})
|
|
68
83
|
|
|
69
84
|
blockchainMetadata.on('account-states-update', (payload) =>
|
|
@@ -174,7 +189,7 @@ class Balances extends ExodusModule {
|
|
|
174
189
|
this.#balances[walletAccount] = await this.#getBalancesForWalletAccount({ walletAccount })
|
|
175
190
|
}
|
|
176
191
|
|
|
177
|
-
#setWalletAccounts = (walletAccounts) => {
|
|
192
|
+
#setWalletAccounts = async (walletAccounts) => {
|
|
178
193
|
const added = difference(walletAccounts, this.#walletAccounts)
|
|
179
194
|
const removed = difference(this.#walletAccounts, walletAccounts)
|
|
180
195
|
if (added.length === 0 && removed.length === 0) return
|
|
@@ -190,7 +205,7 @@ class Balances extends ExodusModule {
|
|
|
190
205
|
|
|
191
206
|
if (added.length > 0) {
|
|
192
207
|
this._logger.log('recomputing after adding walletAccounts', added)
|
|
193
|
-
this.#recompute({ walletAccounts: added })
|
|
208
|
+
await this.#recompute({ walletAccounts: added })
|
|
194
209
|
} else {
|
|
195
210
|
this.#flush()
|
|
196
211
|
}
|
|
@@ -319,16 +334,18 @@ class Balances extends ExodusModule {
|
|
|
319
334
|
|
|
320
335
|
const createBalances = (opts) => new Balances(opts)
|
|
321
336
|
|
|
322
|
-
|
|
337
|
+
const balancesDefinition = {
|
|
323
338
|
id: MODULE_ID,
|
|
324
339
|
type: 'module',
|
|
325
340
|
factory: createBalances,
|
|
326
341
|
dependencies: [
|
|
327
342
|
'assetsModule',
|
|
328
343
|
'blockchainMetadata',
|
|
329
|
-
'
|
|
344
|
+
'enabledWalletAccountsAtom',
|
|
330
345
|
'config',
|
|
331
346
|
'logger',
|
|
332
347
|
'balancesAtom',
|
|
333
348
|
],
|
|
334
349
|
}
|
|
350
|
+
|
|
351
|
+
export default balancesDefinition
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exodus/balances",
|
|
3
|
-
"version": "6.
|
|
4
|
-
"description": "balances",
|
|
5
|
-
"author": "Exodus Movement Inc",
|
|
3
|
+
"version": "6.1.0",
|
|
4
|
+
"description": "Tracks crypto balances across enabled wallet accounts.",
|
|
5
|
+
"author": "Exodus Movement Inc.",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"test": "jest",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"atoms",
|
|
15
15
|
"README.md",
|
|
16
16
|
"CHANGELOG.md",
|
|
17
|
-
"!**/__tests__"
|
|
17
|
+
"!**/__tests__/**"
|
|
18
18
|
],
|
|
19
19
|
"repository": {
|
|
20
20
|
"type": "git",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"url": "https://github.com/ExodusMovement/exodus-hydra/issues?q=is%3Aissue+is%3Aopen+label%3Abalances"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@exodus/atoms": "^
|
|
28
|
+
"@exodus/atoms": "^5.2.2",
|
|
29
29
|
"@exodus/basic-utils": "^2.0.0",
|
|
30
30
|
"@exodus/currency": "^2.1.2",
|
|
31
31
|
"@exodus/module": "^1.1.0",
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
"@exodus/blockchain-metadata": "^8.0.0",
|
|
40
40
|
"@exodus/models": "^8.9.0",
|
|
41
41
|
"@exodus/storage-memory": "*",
|
|
42
|
-
"@exodus/wallet-accounts": "
|
|
43
|
-
"eslint": "^8.
|
|
42
|
+
"@exodus/wallet-accounts": "^9.1.0",
|
|
43
|
+
"eslint": "^8.44.0",
|
|
44
44
|
"events": "^3.3.0",
|
|
45
45
|
"jest": "^29.1.2"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "4d8041f79655449cca977603e87d647c2a3e8df8"
|
|
48
48
|
}
|