@exodus/activity-txs 6.1.7 → 6.1.9

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,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
+ ## [6.1.9](https://github.com/ExodusMovement/exodus/compare/@exodus/activity-txs@6.1.8...@exodus/activity-txs@6.1.9) (2026-09-02)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **activity-txs:** tolerate null tx source in limited and by-id selectors ([#44450](https://github.com/ExodusMovement/exodus/issues/44450)) ([6e371b1](https://github.com/ExodusMovement/exodus/commit/6e371b1394b456decd58e9ded1125f0f8fa1a816))
11
+
12
+ ## [6.1.8](https://github.com/ExodusMovement/exodus/compare/@exodus/activity-txs@6.1.7...@exodus/activity-txs@6.1.8) (2026-08-27)
13
+
14
+ ### Bug Fixes
15
+
16
+ - **activity-txs:** return empty activity when tx source selector returns null ([#44246](https://github.com/ExodusMovement/exodus/issues/44246)) ([3d62429](https://github.com/ExodusMovement/exodus/commit/3d62429dea3711c7bde0893db9d4d3975ce6eeaa))
17
+
6
18
  ## [6.1.7](https://github.com/ExodusMovement/exodus/compare/@exodus/activity-txs@6.1.6...@exodus/activity-txs@6.1.7) (2026-08-03)
7
19
 
8
20
  ### Bug Fixes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exodus/activity-txs",
3
- "version": "6.1.7",
3
+ "version": "6.1.9",
4
4
  "description": "The activity-txs feature",
5
5
  "author": "Exodus Movement, Inc.",
6
6
  "repository": {
@@ -33,13 +33,13 @@
33
33
  "typecheck": "pnpm exec tsc -p tsconfig.json --noEmit"
34
34
  },
35
35
  "dependencies": {
36
- "@exodus/atoms": "^10.3.3",
37
- "@exodus/basic-utils": "^5.0.0",
38
- "@exodus/core-selectors": "^4.0.0",
39
- "@exodus/models": "^13.0.0",
36
+ "@exodus/atoms": "^10.3.4",
37
+ "@exodus/basic-utils": "^5.2.0",
38
+ "@exodus/core-selectors": "^4.0.3",
39
+ "@exodus/models": "^13.3.1",
40
40
  "@exodus/multi-account-redux": "^3.0.0",
41
- "@exodus/safe-string": "^1.3.0",
42
- "@exodus/typeforce": "^1.19.0",
41
+ "@exodus/safe-string": "^1.5.0",
42
+ "@exodus/typeforce": "^1.19.4",
43
43
  "lodash": "^4.17.21",
44
44
  "minimalistic-assert": "^1.0.1",
45
45
  "reselect": "^3.0.1"
@@ -47,18 +47,18 @@
47
47
  "devDependencies": {
48
48
  "@exodus/assets": "^11.0.0",
49
49
  "@exodus/assets-base": "^12.0.0",
50
- "@exodus/assets-feature": "^9.2.5",
51
- "@exodus/available-assets": "^8.11.0",
50
+ "@exodus/assets-feature": "^9.3.1",
51
+ "@exodus/available-assets": "^8.11.2",
52
52
  "@exodus/bitcoin-plugin": "^2.0.0",
53
53
  "@exodus/connected-origins": "^4.3.0",
54
54
  "@exodus/error-tracking": "^3.6.0",
55
55
  "@exodus/fiat-ramp": "^15.26.0",
56
56
  "@exodus/logger": "^1.2.3",
57
- "@exodus/nfts": "^9.6.2",
57
+ "@exodus/nfts": "^9.6.3",
58
58
  "@exodus/orders": "^6.2.5",
59
59
  "@exodus/personal-notes": "^3.9.1",
60
60
  "@exodus/redux-dependency-injection": "^5.0.0",
61
- "@exodus/wallet-accounts": "^20.4.9",
61
+ "@exodus/wallet-accounts": "^20.4.11",
62
62
  "@types/minimalistic-assert": "^1.0.1",
63
63
  "redux": "^4.2.1"
64
64
  },
@@ -66,5 +66,5 @@
66
66
  "access": "public",
67
67
  "provenance": false
68
68
  },
69
- "gitHead": "33eaa7be28a81807f8a262e4be0cbc3791e66872"
69
+ "gitHead": "eee50886023e67c5e49dd0f89eec1911b57d2cda"
70
70
  }
@@ -64,7 +64,9 @@ const bridgeAmountKey = (tx) =>
64
64
  const amountSign = (tx) => (tx.coinAmount.toBaseString().startsWith('-') ? -1 : 1)
65
65
 
66
66
  const groupTxsWithSameOrder = ({ txs, orderSet, isIndexless }) => {
67
- const txList = Array.isArray(txs) ? txs : [...txs]
67
+ // A missing asset makes the upstream tx-log selector return null, which
68
+ // bypasses the `txs = EMPTY` default (it only covers undefined).
69
+ const txList = Array.isArray(txs) ? txs : txs ? [...txs] : EMPTY
68
70
  if (!orderSet) return txList.map((tx) => ({ tx, type: 'tx' }))
69
71
 
70
72
  const classifiedTxs = txList.map((tx) => ({ tx, ...classifyTx({ tx, orderSet }) }))
@@ -1,15 +1,19 @@
1
1
  import { memoize } from '@exodus/basic-utils'
2
2
  import { createSelector } from 'reselect'
3
3
 
4
+ const EMPTY = Object.freeze([])
5
+
4
6
  const createLimitedAssetSourceSelectorDefinition = {
5
7
  id: 'createLimitedAssetSourceSelector',
6
8
  dependencies: [{ selector: 'createAssetSourceSelector' }],
7
9
  selectorFactory: (createAssetSourceSelector) =>
8
10
  memoize(
9
11
  ({ assetName, walletAccount, limit }) =>
10
- createSelector(createAssetSourceSelector({ assetName, walletAccount }), (txs) =>
11
- limit ? txs.slice(-limit) : txs
12
- ),
12
+ createSelector(createAssetSourceSelector({ assetName, walletAccount }), (txs) => {
13
+ // An asset missing from the registry makes the source selector return null (#44236).
14
+ const source = txs ?? EMPTY
15
+ return limit ? source.slice(-limit) : source
16
+ }),
13
17
  ({ assetName, walletAccount, limit }) => `${assetName}_${walletAccount}_${limit}`
14
18
  ),
15
19
  }