@exodus/balances
Advanced tools
Comparing version 13.4.0 to 13.5.0
@@ -6,2 +6,3 @@ import createAssetNamesWithBalanceAtom from './asset-names-with-balance.js' | ||
import createHasBalanceAtom from './has-balance.js' | ||
import createAssetsTotalWalletAmountsAtom from './asset-total-wallet-amounts.js' | ||
@@ -47,1 +48,9 @@ export const balancesAtomDefinition = { | ||
} | ||
export const assetsTotalWalletAmountsDefinition = { | ||
id: 'assetsTotalWalletAmountsAtom', | ||
type: 'atom', | ||
factory: createAssetsTotalWalletAmountsAtom, | ||
dependencies: ['balancesAtom'], | ||
public: true, | ||
} |
@@ -6,2 +6,8 @@ # Change Log | ||
## [13.5.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@13.4.0...@exodus/balances@13.5.0) (2024-11-29) | ||
### Features | ||
- feat: add various crypto balance props (#10419) | ||
## [13.4.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/balances@13.3.2...@exodus/balances@13.4.0) (2024-11-25) | ||
@@ -8,0 +14,0 @@ |
@@ -22,5 +22,6 @@ const balanceFieldsConfig = [ | ||
.flatMap((fieldConfig) => [fieldConfig.name, fieldConfig.legacyName]) | ||
.filter(Boolean), // wallets can reduce the number of exposed fields | ||
.filter(Boolean), // wallets can reduce the number of exposed fields, | ||
assetsToTrackForBalances: [], | ||
} | ||
export default config |
@@ -8,2 +8,3 @@ import balancesDefinition from './module/index.js' | ||
assetNamesWithBalanceAtomDefinition, | ||
assetsTotalWalletAmountsDefinition, | ||
} from './atoms/index.js' | ||
@@ -22,2 +23,4 @@ import balancesReportDefinition from './report/index.js' | ||
balanceFields: walletConfig?.balanceFields || defaultConfig.balanceFields, | ||
assetsToTrackForBalances: | ||
walletConfig?.assetsToTrackForBalances || defaultConfig.assetsToTrackForBalances, | ||
} | ||
@@ -28,2 +31,3 @@ typeforce( | ||
balanceFieldsConfig: typeforce.arrayOf('Object'), | ||
assetsToTrackForBalances: typeforce.arrayOf('Object'), | ||
}, | ||
@@ -52,5 +56,7 @@ config, | ||
{ definition: balancesLifecyclePluginDefinition }, | ||
{ definition: assetsTotalWalletAmountsDefinition }, | ||
{ | ||
if: { registered: ['analytics'] }, | ||
definition: balancesAnalyticsPluginDefinition, | ||
config: { assetsToTrackForBalances: config.assetsToTrackForBalances }, | ||
}, | ||
@@ -57,0 +63,0 @@ ], |
{ | ||
"name": "@exodus/balances", | ||
"version": "13.4.0", | ||
"version": "13.5.0", | ||
"description": "Tracks crypto balances across enabled wallet accounts.", | ||
@@ -68,3 +68,3 @@ "author": "Exodus Movement, Inc.", | ||
}, | ||
"gitHead": "901254d521ab3c43da0be4a4537ed80015e1c6b9" | ||
"gitHead": "d979dacecad62ad66a5761afc08d6ea362ca05a5" | ||
} |
@@ -5,5 +5,12 @@ const createBalancesAnalyticsPlugin = ({ | ||
assetsWithBalanceCountAtom, | ||
assetsTotalWalletAmountsAtom, | ||
config: { assetsToTrackForBalances }, | ||
}) => { | ||
let subscriptions = [] | ||
const getAssetAmountFromNumberUnit = (unit) => { | ||
if (!unit) return 0 | ||
return unit.toDefaultNumber() | ||
} | ||
const onStart = () => { | ||
@@ -20,3 +27,15 @@ analytics.requireDefaultEventProperties(['hasBalance', 'numberOfAssets']) | ||
subscriptions = [unsubscribeBalanceAtom, unsubscribeBalanceCountAtom] | ||
const unsubscribeWalletAmountsAtom = assetsTotalWalletAmountsAtom.observe(async (balances) => { | ||
const assetBalances = assetsToTrackForBalances.reduce((acc, obj) => { | ||
acc[obj.analyticsName] = getAssetAmountFromNumberUnit(balances.get(obj.assetName)) | ||
return acc | ||
}, {}) | ||
analytics.setDefaultEventProperties(assetBalances) | ||
}) | ||
subscriptions = [ | ||
unsubscribeBalanceAtom, | ||
unsubscribeBalanceCountAtom, | ||
unsubscribeWalletAmountsAtom, | ||
] | ||
} | ||
@@ -23,0 +42,0 @@ |
@@ -16,4 +16,10 @@ import createBalancesAnalyticsPlugin from './analytics.js' | ||
factory: createBalancesAnalyticsPlugin, | ||
dependencies: ['analytics', 'hasBalanceAtom', 'assetsWithBalanceCountAtom'], | ||
dependencies: [ | ||
'analytics', | ||
'hasBalanceAtom', | ||
'assetsWithBalanceCountAtom', | ||
'assetsTotalWalletAmountsAtom', | ||
'config?', | ||
], | ||
public: true, | ||
} |
71967
33
1144