@metamask-previews/assets-controller 8.3.0-preview-3a34409 → 8.3.0-preview-c00433f35
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 +4 -0
- package/dist/AssetsController.cjs +10 -1
- 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 +11 -2
- package/dist/AssetsController.mjs.map +1 -1
- package/dist/data-sources/BackendWebsocketDataSource.cjs +1 -2
- package/dist/data-sources/BackendWebsocketDataSource.cjs.map +1 -1
- package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +1 -1
- package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +1 -1
- package/dist/data-sources/BackendWebsocketDataSource.mjs +1 -2
- package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -1
- package/dist/selectors/balance.cjs +1 -1
- package/dist/selectors/balance.cjs.map +1 -1
- package/dist/selectors/balance.mjs +1 -1
- package/dist/selectors/balance.mjs.map +1 -1
- package/dist/utils/index.cjs +3 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.cts +1 -0
- package/dist/utils/index.d.cts.map +1 -1
- package/dist/utils/index.d.mts +1 -0
- package/dist/utils/index.d.mts.map +1 -1
- package/dist/utils/index.mjs +1 -0
- package/dist/utils/index.mjs.map +1 -1
- package/dist/utils/normalizeAmountString.cjs +64 -0
- package/dist/utils/normalizeAmountString.cjs.map +1 -0
- package/dist/utils/normalizeAmountString.d.cts +35 -0
- package/dist/utils/normalizeAmountString.d.cts.map +1 -0
- package/dist/utils/normalizeAmountString.d.mts +35 -0
- package/dist/utils/normalizeAmountString.d.mts.map +1 -0
- package/dist/utils/normalizeAmountString.mjs +57 -0
- package/dist/utils/normalizeAmountString.mjs.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- Fix sub-`1e-7` dust balance amounts being serialized in scientific-notation form (e.g. `"1e-18"`) instead of plain decimal, which caused crashes in downstream `BigInt()`-based consumers ([#8982](https://github.com/MetaMask/core/pull/8982))
|
|
13
|
+
|
|
10
14
|
## [8.3.0]
|
|
11
15
|
|
|
12
16
|
### Added
|
|
@@ -1439,7 +1439,16 @@ async function _AssetsController_executeMiddlewares(sources, request, initialRes
|
|
|
1439
1439
|
}
|
|
1440
1440
|
for (const [assetId, balance] of Object.entries(effective)) {
|
|
1441
1441
|
const previousBalance = previousBalances[assetId];
|
|
1442
|
-
|
|
1442
|
+
// Coerce amounts (e.g. "1e-18" from a data source stringifying
|
|
1443
|
+
// a JS Number) into a plain decimal so downstream BigInt()
|
|
1444
|
+
// consumers don't crash. Decimals are read from the freshest
|
|
1445
|
+
// merged metadata when available; when metadata is not yet
|
|
1446
|
+
// known, the amount is left at its natural precision (only
|
|
1447
|
+
// exponent form is rewritten) so balances arriving before
|
|
1448
|
+
// their metadata aren't lossily truncated.
|
|
1449
|
+
const assetDecimals = metadata[assetId]?.decimals;
|
|
1450
|
+
const newAmount = (0, utils_2.normalizeAmountString)(balance.amount, assetDecimals);
|
|
1451
|
+
effective[assetId] = { ...balance, amount: newAmount };
|
|
1443
1452
|
const oldAmount = previousBalance?.amount;
|
|
1444
1453
|
const isNewDefaultNativeZero = oldAmount === undefined &&
|
|
1445
1454
|
newAmount === '0' &&
|