@exodus/balances 3.0.0 → 5.0.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 ADDED
@@ -0,0 +1,99 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ ## [5.0.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@4.0.0...@exodus/balances@5.0.0) (2023-03-14)
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ - **blockchain-metadata:** export from `module` (#911)
11
+
12
+ ### Code Refactoring
13
+
14
+ - **blockchain-metadata:** export from `module` ([#911](https://github.com/ExodusMovement/exodus-hydra/issues/911)) ([4061ee9](https://github.com/ExodusMovement/exodus-hydra/commit/4061ee96c11cabd841e51a96daf302cca1240fbc))
15
+
16
+ ## [4.0.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@3.0.0...@exodus/balances@4.0.0) (2023-02-02)
17
+
18
+ ### ⚠ BREAKING CHANGES
19
+
20
+ - export balances module from module/ and auto-bind config (#828)
21
+ - accept enabled wallet accounts atom (#544)
22
+
23
+ ### Features
24
+
25
+ - add `restricted-imports` eslint rule ([#719](https://github.com/ExodusMovement/exodus-hydra/issues/719)) ([175de9c](https://github.com/ExodusMovement/exodus-hydra/commit/175de9c19ec00e5a12441022c313837d58f38882))
26
+ - detect subscriptions further down the call graph ([#786](https://github.com/ExodusMovement/exodus-hydra/issues/786)) ([7abcc8f](https://github.com/ExodusMovement/exodus-hydra/commit/7abcc8f361302bbd3061688e55210e62ec684154))
27
+
28
+ ### Code Refactoring
29
+
30
+ - accept enabled wallet accounts atom ([#544](https://github.com/ExodusMovement/exodus-hydra/issues/544)) ([bdeaf02](https://github.com/ExodusMovement/exodus-hydra/commit/bdeaf029b6080bbb42d575545e9b711faa21b6c8))
31
+ - export balances module from module/ and auto-bind config ([#828](https://github.com/ExodusMovement/exodus-hydra/issues/828)) ([d62d3b9](https://github.com/ExodusMovement/exodus-hydra/commit/d62d3b97554394442b0a12feb5f92ee352ec6255))
32
+
33
+ ## [3.0.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@2.0.1...@exodus/balances@3.0.0) (2022-10-18)
34
+
35
+ ### ⚠ BREAKING CHANGES
36
+
37
+ - add batching to blockchain metadata (#334)
38
+
39
+ ### Features
40
+
41
+ - add batching to blockchain metadata ([#334](https://github.com/ExodusMovement/exodus-hydra/issues/334)) ([d3d612b](https://github.com/ExodusMovement/exodus-hydra/commit/d3d612bd04da18704c907163bab4978c12e3fe8c))
42
+
43
+ ## [2.0.1](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@2.0.0...@exodus/balances@2.0.1) (2022-10-13)
44
+
45
+ ### Bug Fixes
46
+
47
+ - include confirmed-balance in package ([#320](https://github.com/ExodusMovement/exodus-hydra/issues/320)) ([a1b8515](https://github.com/ExodusMovement/exodus-hydra/commit/a1b8515d4700bd81595662b309848b262759201a))
48
+
49
+ ## [2.0.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@1.2.1...@exodus/balances@2.0.0) (2022-10-13)
50
+
51
+ ### ⚠ BREAKING CHANGES
52
+
53
+ - add getLoadedAccountStates and emit delta events on change only (#259)
54
+
55
+ ### Features
56
+
57
+ - `confirmedBalance` ([#218](https://github.com/ExodusMovement/exodus-hydra/issues/218)) ([2268ba0](https://github.com/ExodusMovement/exodus-hydra/commit/2268ba08ac4ba8cec553d3a7d9063dbad3b2e715))
58
+ - add getLoadedAccountStates and emit delta events on change only ([#259](https://github.com/ExodusMovement/exodus-hydra/issues/259)) ([783e08e](https://github.com/ExodusMovement/exodus-hydra/commit/783e08e8f944e6eba6ccbd37a2ee720d3f7e059f))
59
+
60
+ ### Bug Fixes
61
+
62
+ - listen loaded event only once ([#278](https://github.com/ExodusMovement/exodus-hydra/issues/278)) ([154eaf1](https://github.com/ExodusMovement/exodus-hydra/commit/154eaf131c4a92be378f579f9762ae589a76ace4))
63
+
64
+ ## [1.2.1](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@1.2.0...@exodus/balances@1.2.1) (2022-09-26)
65
+
66
+ Refactor(balances): provide all potentially relevant txLogs to getBalancesFromBlockchainMetadata
67
+ https://github.com/ExodusMovement/exodus-hydra/pull/223
68
+
69
+ ## [1.2.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@1.1.2...@exodus/balances@1.2.0) (2022-09-23)
70
+
71
+ ### Features
72
+
73
+ - emit balance only after blockchain metadata is loaded ([#245](https://github.com/ExodusMovement/exodus-hydra/issues/245)) ([a6348bf](https://github.com/ExodusMovement/exodus-hydra/commit/a6348bf96fa06268975f2f35fbc164ac19798695))
74
+
75
+ ## [1.1.2](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@1.1.1...@exodus/balances@1.1.2) (2022-09-20)
76
+
77
+ **Note:** Version bump only for package @exodus/balances
78
+
79
+ - **balances:** refactor: wait till blockchain metadata is loaded ([#242](https://github.com/ExodusMovement/exodus-hydra/pull/242)) ([642b64e](https://github.com/ExodusMovement/exodus-hydra/commit/642b64e2e8ede129896834f5aef527563e9694a0))
80
+
81
+ ## [1.1.1](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@1.1.0...@exodus/balances@1.1.1) (2022-09-06)
82
+
83
+ ### Bug Fixes
84
+
85
+ - **fiat-balances:** undesired balance reset ([#219](https://github.com/ExodusMovement/exodus-hydra/issues/219)) ([642b64e](https://github.com/ExodusMovement/exodus-hydra/commit/642b64e2e8ede129896834f5aef527563e9694a0))
86
+
87
+ ### Reverts
88
+
89
+ - Revert "refactor: always emit balance in defaultUnit (#222)" (#224) ([dd301d6](https://github.com/ExodusMovement/exodus-hydra/commit/dd301d6573a27473e7e469c466245ef513a1e64e)), closes [#222](https://github.com/ExodusMovement/exodus-hydra/issues/222) [#224](https://github.com/ExodusMovement/exodus-hydra/issues/224)
90
+
91
+ ## [1.1.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@1.0.1...@exodus/balances@1.1.0) (2022-08-25)
92
+
93
+ ### Features
94
+
95
+ - bump basic-utils ([#200](https://github.com/ExodusMovement/exodus-hydra/issues/200))
96
+
97
+ ### Bug Fixes
98
+
99
+ - lost token balances on portfolio recompute ([#206](https://github.com/ExodusMovement/exodus-hydra/issues/206)) ([318b8cf](https://github.com/ExodusMovement/exodus-hydra/commit/318b8cf7771d4d030f9730e94897b900c4b21c60))
@@ -4,7 +4,7 @@ import ExodusModule from '@exodus/module'
4
4
  import { cloneDeepWith, difference, isEmpty, merge, set, zipObject } from 'lodash'
5
5
  import makeConcurrent from 'make-concurrent'
6
6
  import getConfirmedBalance from './confirmed-balance'
7
- import { assetSourceEntries } from '@exodus/blockchain-metadata'
7
+ import { flattenToPaths } from '@exodus/basic-utils'
8
8
 
9
9
  const cloneBalances = (balances) =>
10
10
  cloneDeepWith(balances, (val) => {
@@ -17,6 +17,8 @@ const zipNonNull = (keys, values) =>
17
17
  values.filter((value) => value != null)
18
18
  )
19
19
 
20
+ export const MODULE_ID = 'balances'
21
+
20
22
  class Balances extends ExodusModule {
21
23
  #assetsModule
22
24
  #blockchainMetadata
@@ -27,8 +29,14 @@ class Balances extends ExodusModule {
27
29
  #oldBalances = Object.create(null)
28
30
  #balances = Object.create(null)
29
31
 
30
- constructor({ assetsModule, blockchainMetadata, walletAccountsAtom, balanceFields, logger }) {
31
- super({ name: 'Balances', logger })
32
+ constructor({
33
+ assetsModule,
34
+ blockchainMetadata,
35
+ walletAccountsAtom,
36
+ config: { balanceFields },
37
+ logger,
38
+ }) {
39
+ super({ name: MODULE_ID, logger })
32
40
 
33
41
  this.#assetsModule = assetsModule
34
42
  this.#blockchainMetadata = blockchainMetadata
@@ -48,6 +56,7 @@ class Balances extends ExodusModule {
48
56
  this.#recompute = shareQueue(this.#recompute)
49
57
 
50
58
  blockchainMetadata.once('load-wallet-accounts', () => {
59
+ // eslint-disable-next-line hydra/module-side-effects
51
60
  walletAccountsAtom.observe((payload) => {
52
61
  this.#setWalletAccounts(
53
62
  Object.keys(payload).filter((walletAccount) => payload[walletAccount].enabled)
@@ -55,10 +64,14 @@ class Balances extends ExodusModule {
55
64
  })
56
65
 
57
66
  blockchainMetadata.on('account-states-update', (payload) =>
58
- assetSourceEntries(payload, 'account-state').forEach(this.#handleAccountStateUpdate)
67
+ flattenToPaths(payload).forEach(([walletAccount, assetName, accountState]) =>
68
+ this.#handleAccountStateUpdate({ walletAccount, assetName, accountState })
69
+ )
59
70
  )
60
71
  blockchainMetadata.on('tx-logs-update', (payload) =>
61
- assetSourceEntries(payload, 'tx-log').forEach(this.#handleTxLogUpdate)
72
+ flattenToPaths(payload).forEach(([walletAccount, assetName, txLog]) =>
73
+ this.#handleTxLogUpdate({ walletAccount, assetName, txLog })
74
+ )
62
75
  )
63
76
  })
64
77
 
@@ -303,4 +316,9 @@ class Balances extends ExodusModule {
303
316
 
304
317
  const createBalances = (opts) => new Balances(opts)
305
318
 
306
- export default createBalances
319
+ export default {
320
+ id: MODULE_ID,
321
+ type: 'module',
322
+ factory: createBalances,
323
+ dependencies: ['assetsModule', 'blockchainMetadata', 'walletAccountsAtom', 'config', 'logger'],
324
+ }
package/package.json CHANGED
@@ -1,17 +1,20 @@
1
1
  {
2
2
  "name": "@exodus/balances",
3
- "version": "3.0.0",
3
+ "version": "5.0.0",
4
4
  "description": "balances",
5
5
  "author": "Exodus Movement Inc",
6
6
  "license": "UNLICENSED",
7
7
  "scripts": {
8
8
  "test": "jest",
9
- "lint": "eslint .",
9
+ "lint": "eslint . --ignore-path ../../.gitignore",
10
10
  "lint:fix": "yarn lint --fix"
11
11
  },
12
- "main": "src/index.js",
13
12
  "files": [
14
- "src"
13
+ "module",
14
+ "atoms",
15
+ "README.md",
16
+ "CHANGELOG.md",
17
+ "!**/__tests__"
15
18
  ],
16
19
  "repository": {
17
20
  "type": "git",
@@ -22,20 +25,24 @@
22
25
  "url": "https://github.com/ExodusMovement/exodus-hydra/issues?q=is%3Aissue+is%3Aopen+label%3Abalances"
23
26
  },
24
27
  "dependencies": {
28
+ "@exodus/basic-utils": "^1.3.0",
25
29
  "@exodus/currency": "^2.1.2",
26
- "@exodus/module": "^1.0.0",
30
+ "@exodus/module": "^1.1.0",
27
31
  "lodash": "^4.17.21",
28
32
  "make-concurrent": "^4.0.0"
29
33
  },
30
34
  "peerDependencies": {
31
- "@exodus/blockchain-metadata": "^4.0.0"
35
+ "@exodus/blockchain-metadata": "^6.0.0"
32
36
  },
33
37
  "devDependencies": {
34
- "@exodus/atoms": "^2.3.0",
35
- "@exodus/basic-utils": "^1.0.0",
36
- "@exodus/blockchain-metadata": "^4.0.0",
38
+ "@exodus/atoms": "^3.0.0",
39
+ "@exodus/blockchain-metadata": "^8.0.0",
37
40
  "@exodus/models": "^8.9.0",
38
- "@exodus/storage-memory": "*"
41
+ "@exodus/storage-memory": "*",
42
+ "@exodus/wallet-accounts": "*",
43
+ "eslint": "^8.33.0",
44
+ "events": "^3.3.0",
45
+ "jest": "^29.1.2"
39
46
  },
40
- "gitHead": "47c8cb54d8cbbdfe978221fd421a6c269fbd9547"
47
+ "gitHead": "4f1bec27b7ea7e32681ef928a4f7149175817560"
41
48
  }
File without changes