@metamask-previews/assets-controller 13.1.1-preview-d74e69d → 13.1.1-preview-613132754
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 +3 -1
- package/dist/AssetsController.cjs +13 -0
- package/dist/AssetsController.cjs.map +1 -1
- package/dist/AssetsController.d.cts.map +1 -1
- package/dist/AssetsController.d.mts.map +1 -1
- package/dist/AssetsController.mjs +13 -0
- package/dist/AssetsController.mjs.map +1 -1
- package/dist/data-sources/AccountActivityDataSource.cjs +6 -1
- package/dist/data-sources/AccountActivityDataSource.cjs.map +1 -1
- package/dist/data-sources/AccountActivityDataSource.d.cts.map +1 -1
- package/dist/data-sources/AccountActivityDataSource.d.mts.map +1 -1
- package/dist/data-sources/AccountActivityDataSource.mjs +6 -1
- package/dist/data-sources/AccountActivityDataSource.mjs.map +1 -1
- package/dist/data-sources/TokenDataSource.cjs +119 -0
- package/dist/data-sources/TokenDataSource.cjs.map +1 -1
- package/dist/data-sources/TokenDataSource.d.cts +13 -0
- package/dist/data-sources/TokenDataSource.d.cts.map +1 -1
- package/dist/data-sources/TokenDataSource.d.mts +13 -0
- package/dist/data-sources/TokenDataSource.d.mts.map +1 -1
- package/dist/data-sources/TokenDataSource.mjs +119 -0
- package/dist/data-sources/TokenDataSource.mjs.map +1 -1
- package/dist/middlewares/CustomAssetGraduationMiddleware.cjs +1 -18
- package/dist/middlewares/CustomAssetGraduationMiddleware.cjs.map +1 -1
- package/dist/middlewares/CustomAssetGraduationMiddleware.mjs +2 -19
- package/dist/middlewares/CustomAssetGraduationMiddleware.mjs.map +1 -1
- package/dist/utils/index.cjs +2 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.cts +1 -1
- package/dist/utils/index.d.cts.map +1 -1
- package/dist/utils/index.d.mts +1 -1
- package/dist/utils/index.d.mts.map +1 -1
- package/dist/utils/index.mjs +1 -1
- package/dist/utils/index.mjs.map +1 -1
- package/dist/utils/normalizeAssetId.cjs +19 -1
- package/dist/utils/normalizeAssetId.cjs.map +1 -1
- package/dist/utils/normalizeAssetId.d.cts +10 -0
- package/dist/utils/normalizeAssetId.d.cts.map +1 -1
- package/dist/utils/normalizeAssetId.d.mts +10 -0
- package/dist/utils/normalizeAssetId.d.mts.map +1 -1
- package/dist/utils/normalizeAssetId.mjs +17 -0
- package/dist/utils/normalizeAssetId.mjs.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -11,13 +11,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
11
11
|
|
|
12
12
|
- Bump `@metamask/transaction-controller` from `^69.5.0` to `^69.5.1` ([#9798](https://github.com/MetaMask/core/pull/9798))
|
|
13
13
|
- Bump `@metamask/account-tree-controller` from `^7.6.0` to `^7.6.1` ([#9791](https://github.com/MetaMask/core/pull/9791))
|
|
14
|
-
- Bump `@metamask/accounts-controller` from `^39.0.6` to `^39.
|
|
14
|
+
- Bump `@metamask/accounts-controller` from `^39.0.6` to `^39.0.7` ([#9791](https://github.com/MetaMask/core/pull/9791))
|
|
15
15
|
- Bump `@metamask/keyring-controller` from `^27.1.0` to `^27.1.1` ([#9791](https://github.com/MetaMask/core/pull/9791))
|
|
16
16
|
- Bump `@metamask/network-enablement-controller` from `^6.0.2` to `^6.0.3` ([#9791](https://github.com/MetaMask/core/pull/9791))
|
|
17
17
|
- Bump `@metamask/assets-controllers` from `^111.0.0` to `^111.1.0` ([#9793](https://github.com/MetaMask/core/pull/9793))
|
|
18
18
|
|
|
19
19
|
### Fixed
|
|
20
20
|
|
|
21
|
+
- Apply occurrence-floor spam filtering to tokens received through account-activity (websocket) updates: new tokens are enriched with Token API occurrence counts before detection and dropped when below the per-chain suggested floor, and stub metadata of filtered-out assets is stripped from the pipeline response so spam tokens never persist to state ([#9803](https://github.com/MetaMask/core/pull/9803))
|
|
22
|
+
- Checksum the lower-case ERC-20 asset IDs delivered by `AccountActivityDataSource` before they enter the assets pipeline, so middleware comparisons against state (which keys assets by checksummed ID) no longer treat an existing holding as a brand-new asset — previously such balance updates could be re-detected, or dropped entirely by spam filtering, and never reach state ([#9803](https://github.com/MetaMask/core/pull/9803))
|
|
21
23
|
- Preserve pooled-staking balances across Accounts API chain-slice updates (e.g. network switch / `replaceCoveredChainBalances`): exclude staking contract asset IDs from `AccountsApiDataSource` v5/v6 balance processing, and keep prior staked amounts when a merge replace omits them so Accounts API cannot reset staked ETH to missing/0 ([#9753](https://github.com/MetaMask/core/pull/9753))
|
|
22
24
|
|
|
23
25
|
## [13.1.1]
|
|
@@ -1086,10 +1086,23 @@ class AssetsController extends base_controller_1.BaseController {
|
|
|
1086
1086
|
// those.
|
|
1087
1087
|
const shouldGraduateCustomAssets = sourceId === 'AccountsApiDataSource' ||
|
|
1088
1088
|
sourceId === 'AccountActivityDataSource';
|
|
1089
|
+
// Websocket updates can carry brand-new spam airdrops: enrich them
|
|
1090
|
+
// with Token API occurrences and drop below-floor tokens BEFORE
|
|
1091
|
+
// detection, so spam is never detected, enriched, priced or persisted.
|
|
1092
|
+
const shouldFilterOccurrences = sourceId === 'AccountActivityDataSource' &&
|
|
1093
|
+
__classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this);
|
|
1089
1094
|
const enrichmentSources = [
|
|
1090
1095
|
...(shouldGraduateCustomAssets
|
|
1091
1096
|
? [__classPrivateFieldGet(this, _AssetsController_customAssetGraduationMiddleware, "f")]
|
|
1092
1097
|
: []),
|
|
1098
|
+
...(shouldFilterOccurrences
|
|
1099
|
+
? [
|
|
1100
|
+
{
|
|
1101
|
+
getName: () => 'OccurrenceFloorFilter',
|
|
1102
|
+
assetsMiddleware: __classPrivateFieldGet(this, _AssetsController_tokenDataSource, "f").occurrenceFilterMiddleware,
|
|
1103
|
+
},
|
|
1104
|
+
]
|
|
1105
|
+
: []),
|
|
1093
1106
|
__classPrivateFieldGet(this, _AssetsController_detectionMiddleware, "f"),
|
|
1094
1107
|
];
|
|
1095
1108
|
if (__classPrivateFieldGet(this, _AssetsController_isBasicFunctionality, "f").call(this)) {
|