@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 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
- walletAccountsAtom,
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
- walletAccountsAtom.observe((payload) => {
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
- export default {
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
- 'walletAccountsAtom',
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.0.0",
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": "^3.5.0",
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.33.0",
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": "6ecd3fa19c39610e7147b2d060ea64709f6c8c6e"
47
+ "gitHead": "4d8041f79655449cca977603e87d647c2a3e8df8"
48
48
  }