@metamask-previews/assets-controller 14.0.2-preview-3e34650c2 → 14.0.2-preview-4f4c98e
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 +5 -0
- package/dist/{AssetsController-method-action-types.d.mts → AssetsController-method-action-types.d.ts} +2 -2
- package/dist/AssetsController-method-action-types.d.ts.map +1 -0
- package/dist/{AssetsController-method-action-types.mjs → AssetsController-method-action-types.js} +1 -1
- package/dist/AssetsController-method-action-types.js.map +1 -0
- package/dist/{AssetsController.d.cts → AssetsController.d.ts} +30 -30
- package/dist/AssetsController.d.ts.map +1 -0
- package/dist/{AssetsController.mjs → AssetsController.js} +28 -29
- package/dist/AssetsController.js.map +1 -0
- package/dist/data-sources/{AbstractDataSource.d.mts → AbstractDataSource.d.ts} +2 -2
- package/dist/data-sources/AbstractDataSource.d.ts.map +1 -0
- package/dist/data-sources/{AbstractDataSource.mjs → AbstractDataSource.js} +1 -1
- package/dist/data-sources/AbstractDataSource.js.map +1 -0
- package/dist/data-sources/{AccountActivityDataSource.d.cts → AccountActivityDataSource.d.ts} +6 -6
- package/dist/data-sources/AccountActivityDataSource.d.ts.map +1 -0
- package/dist/data-sources/{AccountActivityDataSource.mjs → AccountActivityDataSource.js} +11 -11
- package/dist/data-sources/AccountActivityDataSource.js.map +1 -0
- package/dist/data-sources/{AccountsApiDataSource.d.cts → AccountsApiDataSource.d.ts} +7 -7
- package/dist/data-sources/AccountsApiDataSource.d.ts.map +1 -0
- package/dist/data-sources/{AccountsApiDataSource.mjs → AccountsApiDataSource.js} +7 -8
- package/dist/data-sources/AccountsApiDataSource.js.map +1 -0
- package/dist/data-sources/{PriceDataSource.d.cts → PriceDataSource.d.ts} +5 -5
- package/dist/data-sources/PriceDataSource.d.ts.map +1 -0
- package/dist/data-sources/{PriceDataSource.mjs → PriceDataSource.js} +7 -8
- package/dist/data-sources/PriceDataSource.js.map +1 -0
- package/dist/data-sources/{RpcDataSource.d.cts → RpcDataSource.d.ts} +10 -10
- package/dist/data-sources/RpcDataSource.d.ts.map +1 -0
- package/dist/data-sources/{RpcDataSource.mjs → RpcDataSource.js} +11 -11
- package/dist/data-sources/RpcDataSource.js.map +1 -0
- package/dist/data-sources/{SnapDataSource.d.cts → SnapDataSource.d.ts} +8 -8
- package/dist/data-sources/SnapDataSource.d.ts.map +1 -0
- package/dist/data-sources/{SnapDataSource.mjs → SnapDataSource.js} +6 -6
- package/dist/data-sources/SnapDataSource.js.map +1 -0
- package/dist/data-sources/{StakedBalanceDataSource.d.cts → StakedBalanceDataSource.d.ts} +5 -5
- package/dist/data-sources/StakedBalanceDataSource.d.ts.map +1 -0
- package/dist/data-sources/{StakedBalanceDataSource.mjs → StakedBalanceDataSource.js} +7 -7
- package/dist/data-sources/StakedBalanceDataSource.js.map +1 -0
- package/dist/data-sources/{TokenDataSource.d.cts → TokenDataSource.d.ts} +5 -5
- package/dist/data-sources/TokenDataSource.d.ts.map +1 -0
- package/dist/data-sources/{TokenDataSource.mjs → TokenDataSource.js} +7 -8
- package/dist/data-sources/TokenDataSource.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/clients/{MulticallClient.d.cts → MulticallClient.d.ts} +3 -3
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/clients/{MulticallClient.mjs → MulticallClient.js} +5 -5
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/clients/{TokensApiClient.d.cts → TokensApiClient.d.ts} +2 -2
- package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/clients/{TokensApiClient.mjs → TokensApiClient.js} +2 -2
- package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/clients/index.d.ts +4 -0
- package/dist/data-sources/evm-rpc-services/clients/index.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/clients/index.js +3 -0
- package/dist/data-sources/evm-rpc-services/clients/index.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/{index.d.cts → index.d.ts} +5 -5
- package/dist/data-sources/evm-rpc-services/index.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/index.js +4 -0
- package/dist/data-sources/evm-rpc-services/index.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/services/{BalanceFetcher.d.cts → BalanceFetcher.d.ts} +11 -11
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/services/{BalanceFetcher.mjs → BalanceFetcher.js} +5 -5
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/services/{StakedBalanceFetcher.d.mts → StakedBalanceFetcher.d.ts} +13 -14
- package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/services/{StakedBalanceFetcher.mjs → StakedBalanceFetcher.js} +5 -6
- package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/services/{TokenDetector.d.cts → TokenDetector.d.ts} +12 -12
- package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/services/{TokenDetector.mjs → TokenDetector.js} +4 -4
- package/dist/data-sources/evm-rpc-services/services/TokenDetector.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/services/{index.d.cts → index.d.ts} +4 -4
- package/dist/data-sources/evm-rpc-services/services/index.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/services/index.js +4 -0
- package/dist/data-sources/evm-rpc-services/services/index.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/{assets.d.cts → assets.d.ts} +3 -3
- package/dist/data-sources/evm-rpc-services/types/assets.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/assets.js +2 -0
- package/dist/data-sources/evm-rpc-services/types/assets.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/{config.d.cts → config.d.ts} +2 -2
- package/dist/data-sources/evm-rpc-services/types/config.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/config.js +2 -0
- package/dist/data-sources/evm-rpc-services/types/config.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/{core.d.cts → core.d.ts} +2 -2
- package/dist/data-sources/evm-rpc-services/types/core.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/core.js +2 -0
- package/dist/data-sources/evm-rpc-services/types/core.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/index.d.ts +7 -0
- package/dist/data-sources/evm-rpc-services/types/index.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/index.js +2 -0
- package/dist/data-sources/evm-rpc-services/types/index.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/{multicall.d.cts → multicall.d.ts} +2 -2
- package/dist/data-sources/evm-rpc-services/types/multicall.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/multicall.js +2 -0
- package/dist/data-sources/evm-rpc-services/types/multicall.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/{services.d.cts → services.d.ts} +3 -3
- package/dist/data-sources/evm-rpc-services/types/services.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/services.js +2 -0
- package/dist/data-sources/evm-rpc-services/types/services.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/{state.d.cts → state.d.ts} +2 -2
- package/dist/data-sources/evm-rpc-services/types/state.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/types/state.js +2 -0
- package/dist/data-sources/evm-rpc-services/types/state.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/utils/{assets.d.cts → assets.d.ts} +2 -2
- package/dist/data-sources/evm-rpc-services/utils/assets.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/utils/{assets.mjs → assets.js} +2 -2
- package/dist/data-sources/evm-rpc-services/utils/assets.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/utils/{batch.d.mts → batch.d.ts} +1 -1
- package/dist/data-sources/evm-rpc-services/utils/batch.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/utils/{batch.mjs → batch.js} +1 -1
- package/dist/data-sources/evm-rpc-services/utils/batch.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/utils/index.d.ts +4 -0
- package/dist/data-sources/evm-rpc-services/utils/index.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/utils/index.js +4 -0
- package/dist/data-sources/evm-rpc-services/utils/index.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/utils/{parsing.d.mts → parsing.d.ts} +3 -3
- package/dist/data-sources/evm-rpc-services/utils/parsing.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/utils/{parsing.mjs → parsing.js} +3 -3
- package/dist/data-sources/evm-rpc-services/utils/parsing.js.map +1 -0
- package/dist/data-sources/evm-rpc-services/utils/{staking-contracts.d.cts → staking-contracts.d.ts} +1 -1
- package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.ts.map +1 -0
- package/dist/data-sources/evm-rpc-services/utils/{staking-contracts.mjs → staking-contracts.js} +3 -3
- package/dist/data-sources/evm-rpc-services/utils/staking-contracts.js.map +1 -0
- package/dist/data-sources/{index.d.cts → index.d.ts} +9 -9
- package/dist/data-sources/index.d.ts.map +1 -0
- package/dist/data-sources/index.js +14 -0
- package/dist/data-sources/index.js.map +1 -0
- package/dist/{defaults.d.mts → defaults.d.ts} +2 -2
- package/dist/defaults.d.ts.map +1 -0
- package/dist/{defaults.mjs → defaults.js} +1 -1
- package/dist/defaults.js.map +1 -0
- package/dist/{errors.d.mts → errors.d.ts} +1 -1
- package/dist/errors.d.ts.map +1 -0
- package/dist/{errors.mjs → errors.js} +1 -1
- package/dist/errors.js.map +1 -0
- package/dist/{index.d.mts → index.d.ts} +26 -26
- package/dist/index.d.ts.map +1 -0
- package/dist/{index.mjs → index.js} +13 -13
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +4 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +4 -0
- package/dist/logger.js.map +1 -0
- package/dist/middlewares/{CustomAssetGraduationMiddleware.d.cts → CustomAssetGraduationMiddleware.d.ts} +2 -2
- package/dist/middlewares/CustomAssetGraduationMiddleware.d.ts.map +1 -0
- package/dist/middlewares/{CustomAssetGraduationMiddleware.mjs → CustomAssetGraduationMiddleware.js} +5 -5
- package/dist/middlewares/CustomAssetGraduationMiddleware.js.map +1 -0
- package/dist/middlewares/{DetectionMiddleware.d.cts → DetectionMiddleware.d.ts} +2 -2
- package/dist/middlewares/DetectionMiddleware.d.ts.map +1 -0
- package/dist/middlewares/{DetectionMiddleware.mjs → DetectionMiddleware.js} +4 -4
- package/dist/middlewares/DetectionMiddleware.js.map +1 -0
- package/dist/middlewares/{ParallelMiddleware.d.cts → ParallelMiddleware.d.ts} +2 -2
- package/dist/middlewares/ParallelMiddleware.d.ts.map +1 -0
- package/dist/middlewares/{ParallelMiddleware.mjs → ParallelMiddleware.js} +2 -9
- package/dist/middlewares/{ParallelMiddleware.mjs.map → ParallelMiddleware.js.map} +1 -1
- package/dist/middlewares/{RpcFallbackMiddleware.d.cts → RpcFallbackMiddleware.d.ts} +2 -2
- package/dist/middlewares/RpcFallbackMiddleware.d.ts.map +1 -0
- package/dist/middlewares/{RpcFallbackMiddleware.mjs → RpcFallbackMiddleware.js} +4 -4
- package/dist/middlewares/RpcFallbackMiddleware.js.map +1 -0
- package/dist/middlewares/index.d.ts +9 -0
- package/dist/middlewares/index.d.ts.map +1 -0
- package/dist/middlewares/index.js +5 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/migrations/{healAssetsInfoMetadata.d.cts → healAssetsInfoMetadata.d.ts} +4 -4
- package/dist/migrations/healAssetsInfoMetadata.d.ts.map +1 -0
- package/dist/migrations/{healAssetsInfoMetadata.mjs → healAssetsInfoMetadata.js} +4 -5
- package/dist/migrations/healAssetsInfoMetadata.js.map +1 -0
- package/dist/selectors/{balance.d.cts → balance.d.ts} +6 -6
- package/dist/selectors/balance.d.ts.map +1 -0
- package/dist/selectors/{balance.mjs → balance.js} +5 -5
- package/dist/selectors/balance.js.map +1 -0
- package/dist/{types.d.mts → types.d.ts} +4 -4
- package/dist/types.d.ts.map +1 -0
- package/dist/{types.mjs → types.js} +1 -1
- package/dist/types.js.map +1 -0
- package/dist/utils/constants.d.ts +2 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/{constants.mjs → constants.js} +1 -1
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/{customAssetsRpcSupplement.d.mts → customAssetsRpcSupplement.d.ts} +2 -2
- package/dist/utils/customAssetsRpcSupplement.d.ts.map +1 -0
- package/dist/utils/{customAssetsRpcSupplement.mjs → customAssetsRpcSupplement.js} +2 -2
- package/dist/utils/customAssetsRpcSupplement.js.map +1 -0
- package/dist/utils/{dedupingBatchFetcher.d.cts → dedupingBatchFetcher.d.ts} +1 -1
- package/dist/utils/dedupingBatchFetcher.d.ts.map +1 -0
- package/dist/utils/{dedupingBatchFetcher.mjs → dedupingBatchFetcher.js} +1 -1
- package/dist/utils/dedupingBatchFetcher.js.map +1 -0
- package/dist/utils/{fetchWithTimeout.d.mts → fetchWithTimeout.d.ts} +1 -1
- package/dist/utils/fetchWithTimeout.d.ts.map +1 -0
- package/dist/utils/{fetchWithTimeout.mjs → fetchWithTimeout.js} +1 -1
- package/dist/utils/fetchWithTimeout.js.map +1 -0
- package/dist/utils/{formatExchangeRatesForBridge.d.mts → formatExchangeRatesForBridge.d.ts} +3 -3
- package/dist/utils/formatExchangeRatesForBridge.d.ts.map +1 -0
- package/dist/utils/{formatExchangeRatesForBridge.mjs → formatExchangeRatesForBridge.js} +6 -7
- package/dist/utils/formatExchangeRatesForBridge.js.map +1 -0
- package/dist/utils/{formatStateForTransactionPay.d.cts → formatStateForTransactionPay.d.ts} +3 -3
- package/dist/utils/formatStateForTransactionPay.d.ts.map +1 -0
- package/dist/utils/{formatStateForTransactionPay.mjs → formatStateForTransactionPay.js} +7 -8
- package/dist/utils/formatStateForTransactionPay.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/{native-assets.d.cts → native-assets.d.ts} +2 -2
- package/dist/utils/native-assets.d.ts.map +1 -0
- package/dist/utils/{native-assets.mjs → native-assets.js} +5 -5
- package/dist/utils/native-assets.js.map +1 -0
- package/dist/utils/{normalizeAmountString.d.mts → normalizeAmountString.d.ts} +1 -1
- package/dist/utils/normalizeAmountString.d.ts.map +1 -0
- package/dist/utils/{normalizeAmountString.mjs → normalizeAmountString.js} +2 -2
- package/dist/utils/normalizeAmountString.js.map +1 -0
- package/dist/utils/{normalizeAssetId.d.cts → normalizeAssetId.d.ts} +3 -3
- package/dist/utils/normalizeAssetId.d.ts.map +1 -0
- package/dist/utils/{normalizeAssetId.mjs → normalizeAssetId.js} +4 -11
- package/dist/utils/normalizeAssetId.js.map +1 -0
- package/dist/utils/{snaps-assets-migration.d.mts → snaps-assets-migration.d.ts} +5 -5
- package/dist/utils/snaps-assets-migration.d.ts.map +1 -0
- package/dist/utils/{snaps-assets-migration.mjs → snaps-assets-migration.js} +2 -2
- package/dist/utils/snaps-assets-migration.js.map +1 -0
- package/dist/utils/{trace.d.mts → trace.d.ts} +2 -2
- package/dist/utils/trace.d.ts.map +1 -0
- package/dist/utils/{trace.mjs → trace.js} +1 -1
- package/dist/utils/trace.js.map +1 -0
- package/package.json +15 -18
- package/dist/AssetsController-method-action-types.cjs +0 -7
- package/dist/AssetsController-method-action-types.cjs.map +0 -1
- package/dist/AssetsController-method-action-types.d.cts +0 -181
- package/dist/AssetsController-method-action-types.d.cts.map +0 -1
- package/dist/AssetsController-method-action-types.d.mts.map +0 -1
- package/dist/AssetsController-method-action-types.mjs.map +0 -1
- package/dist/AssetsController.cjs +0 -2559
- package/dist/AssetsController.cjs.map +0 -1
- package/dist/AssetsController.d.cts.map +0 -1
- package/dist/AssetsController.d.mts +0 -395
- package/dist/AssetsController.d.mts.map +0 -1
- package/dist/AssetsController.mjs.map +0 -1
- package/dist/data-sources/AbstractDataSource.cjs +0 -111
- package/dist/data-sources/AbstractDataSource.cjs.map +0 -1
- package/dist/data-sources/AbstractDataSource.d.cts +0 -113
- package/dist/data-sources/AbstractDataSource.d.cts.map +0 -1
- package/dist/data-sources/AbstractDataSource.d.mts.map +0 -1
- package/dist/data-sources/AbstractDataSource.mjs.map +0 -1
- package/dist/data-sources/AccountActivityDataSource.cjs +0 -267
- package/dist/data-sources/AccountActivityDataSource.cjs.map +0 -1
- package/dist/data-sources/AccountActivityDataSource.d.cts.map +0 -1
- package/dist/data-sources/AccountActivityDataSource.d.mts +0 -80
- package/dist/data-sources/AccountActivityDataSource.d.mts.map +0 -1
- package/dist/data-sources/AccountActivityDataSource.mjs.map +0 -1
- package/dist/data-sources/AccountsApiDataSource.cjs +0 -586
- package/dist/data-sources/AccountsApiDataSource.cjs.map +0 -1
- package/dist/data-sources/AccountsApiDataSource.d.cts.map +0 -1
- package/dist/data-sources/AccountsApiDataSource.d.mts +0 -82
- package/dist/data-sources/AccountsApiDataSource.d.mts.map +0 -1
- package/dist/data-sources/AccountsApiDataSource.mjs.map +0 -1
- package/dist/data-sources/PriceDataSource.cjs +0 -466
- package/dist/data-sources/PriceDataSource.cjs.map +0 -1
- package/dist/data-sources/PriceDataSource.d.cts.map +0 -1
- package/dist/data-sources/PriceDataSource.d.mts +0 -100
- package/dist/data-sources/PriceDataSource.d.mts.map +0 -1
- package/dist/data-sources/PriceDataSource.mjs.map +0 -1
- package/dist/data-sources/RpcDataSource.cjs +0 -1021
- package/dist/data-sources/RpcDataSource.cjs.map +0 -1
- package/dist/data-sources/RpcDataSource.d.cts.map +0 -1
- package/dist/data-sources/RpcDataSource.d.mts +0 -174
- package/dist/data-sources/RpcDataSource.d.mts.map +0 -1
- package/dist/data-sources/RpcDataSource.mjs.map +0 -1
- package/dist/data-sources/SnapDataSource.cjs +0 -443
- package/dist/data-sources/SnapDataSource.cjs.map +0 -1
- package/dist/data-sources/SnapDataSource.d.cts.map +0 -1
- package/dist/data-sources/SnapDataSource.d.mts +0 -127
- package/dist/data-sources/SnapDataSource.d.mts.map +0 -1
- package/dist/data-sources/SnapDataSource.mjs.map +0 -1
- package/dist/data-sources/StakedBalanceDataSource.cjs +0 -616
- package/dist/data-sources/StakedBalanceDataSource.cjs.map +0 -1
- package/dist/data-sources/StakedBalanceDataSource.d.cts.map +0 -1
- package/dist/data-sources/StakedBalanceDataSource.d.mts +0 -72
- package/dist/data-sources/StakedBalanceDataSource.d.mts.map +0 -1
- package/dist/data-sources/StakedBalanceDataSource.mjs.map +0 -1
- package/dist/data-sources/TokenDataSource.cjs +0 -583
- package/dist/data-sources/TokenDataSource.cjs.map +0 -1
- package/dist/data-sources/TokenDataSource.d.cts.map +0 -1
- package/dist/data-sources/TokenDataSource.d.mts +0 -81
- package/dist/data-sources/TokenDataSource.d.mts.map +0 -1
- package/dist/data-sources/TokenDataSource.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs +0 -705
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.mts +0 -65
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/MulticallClient.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs +0 -312
- package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts +0 -61
- package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/index.cjs +0 -10
- package/dist/data-sources/evm-rpc-services/clients/index.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/index.d.cts +0 -4
- package/dist/data-sources/evm-rpc-services/clients/index.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/index.d.mts +0 -4
- package/dist/data-sources/evm-rpc-services/clients/index.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/clients/index.mjs +0 -3
- package/dist/data-sources/evm-rpc-services/clients/index.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/index.cjs +0 -17
- package/dist/data-sources/evm-rpc-services/index.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/index.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/index.d.mts +0 -5
- package/dist/data-sources/evm-rpc-services/index.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/index.mjs +0 -4
- package/dist/data-sources/evm-rpc-services/index.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs +0 -247
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.mts +0 -96
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/BalanceFetcher.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs +0 -132
- package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.cts +0 -81
- package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/StakedBalanceFetcher.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/TokenDetector.cjs +0 -230
- package/dist/data-sources/evm-rpc-services/services/TokenDetector.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.mts +0 -78
- package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/TokenDetector.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/index.cjs +0 -13
- package/dist/data-sources/evm-rpc-services/services/index.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/index.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/index.d.mts +0 -4
- package/dist/data-sources/evm-rpc-services/services/index.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/services/index.mjs +0 -4
- package/dist/data-sources/evm-rpc-services/services/index.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/assets.cjs +0 -3
- package/dist/data-sources/evm-rpc-services/types/assets.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/assets.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/assets.d.mts +0 -53
- package/dist/data-sources/evm-rpc-services/types/assets.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/assets.mjs +0 -2
- package/dist/data-sources/evm-rpc-services/types/assets.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/config.cjs +0 -3
- package/dist/data-sources/evm-rpc-services/types/config.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/config.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/config.d.mts +0 -18
- package/dist/data-sources/evm-rpc-services/types/config.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/config.mjs +0 -2
- package/dist/data-sources/evm-rpc-services/types/config.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/core.cjs +0 -3
- package/dist/data-sources/evm-rpc-services/types/core.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/core.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/core.d.mts +0 -19
- package/dist/data-sources/evm-rpc-services/types/core.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/core.mjs +0 -2
- package/dist/data-sources/evm-rpc-services/types/core.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/index.cjs +0 -3
- package/dist/data-sources/evm-rpc-services/types/index.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/index.d.cts +0 -7
- package/dist/data-sources/evm-rpc-services/types/index.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/index.d.mts +0 -7
- package/dist/data-sources/evm-rpc-services/types/index.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/index.mjs +0 -2
- package/dist/data-sources/evm-rpc-services/types/index.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/multicall.cjs +0 -3
- package/dist/data-sources/evm-rpc-services/types/multicall.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/multicall.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/multicall.d.mts +0 -24
- package/dist/data-sources/evm-rpc-services/types/multicall.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/multicall.mjs +0 -2
- package/dist/data-sources/evm-rpc-services/types/multicall.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/services.cjs +0 -3
- package/dist/data-sources/evm-rpc-services/types/services.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/services.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/services.d.mts +0 -70
- package/dist/data-sources/evm-rpc-services/types/services.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/services.mjs +0 -2
- package/dist/data-sources/evm-rpc-services/types/services.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/state.cjs +0 -3
- package/dist/data-sources/evm-rpc-services/types/state.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/state.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/state.d.mts +0 -58
- package/dist/data-sources/evm-rpc-services/types/state.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/types/state.mjs +0 -2
- package/dist/data-sources/evm-rpc-services/types/state.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/assets.cjs +0 -9
- package/dist/data-sources/evm-rpc-services/utils/assets.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/assets.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/assets.d.mts +0 -3
- package/dist/data-sources/evm-rpc-services/utils/assets.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/assets.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/batch.cjs +0 -45
- package/dist/data-sources/evm-rpc-services/utils/batch.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/batch.d.cts +0 -28
- package/dist/data-sources/evm-rpc-services/utils/batch.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/batch.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/batch.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/index.cjs +0 -15
- package/dist/data-sources/evm-rpc-services/utils/index.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/index.d.cts +0 -4
- package/dist/data-sources/evm-rpc-services/utils/index.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/index.d.mts +0 -4
- package/dist/data-sources/evm-rpc-services/utils/index.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/index.mjs +0 -4
- package/dist/data-sources/evm-rpc-services/utils/index.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/parsing.cjs +0 -47
- package/dist/data-sources/evm-rpc-services/utils/parsing.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/parsing.d.cts +0 -25
- package/dist/data-sources/evm-rpc-services/utils/parsing.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/parsing.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/parsing.mjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs +0 -68
- package/dist/data-sources/evm-rpc-services/utils/staking-contracts.cjs.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.cts.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts +0 -25
- package/dist/data-sources/evm-rpc-services/utils/staking-contracts.d.mts.map +0 -1
- package/dist/data-sources/evm-rpc-services/utils/staking-contracts.mjs.map +0 -1
- package/dist/data-sources/index.cjs +0 -30
- package/dist/data-sources/index.cjs.map +0 -1
- package/dist/data-sources/index.d.cts.map +0 -1
- package/dist/data-sources/index.d.mts +0 -9
- package/dist/data-sources/index.d.mts.map +0 -1
- package/dist/data-sources/index.mjs +0 -14
- package/dist/data-sources/index.mjs.map +0 -1
- package/dist/defaults.cjs +0 -125
- package/dist/defaults.cjs.map +0 -1
- package/dist/defaults.d.cts +0 -50
- package/dist/defaults.d.cts.map +0 -1
- package/dist/defaults.d.mts.map +0 -1
- package/dist/defaults.mjs.map +0 -1
- package/dist/errors.cjs +0 -25
- package/dist/errors.cjs.map +0 -1
- package/dist/errors.d.cts +0 -25
- package/dist/errors.d.cts.map +0 -1
- package/dist/errors.d.mts.map +0 -1
- package/dist/errors.mjs.map +0 -1
- package/dist/index.cjs +0 -67
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -26
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.mts.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/logger.cjs +0 -7
- package/dist/logger.cjs.map +0 -1
- package/dist/logger.d.cts +0 -5
- package/dist/logger.d.cts.map +0 -1
- package/dist/logger.d.mts +0 -5
- package/dist/logger.d.mts.map +0 -1
- package/dist/logger.mjs +0 -4
- package/dist/logger.mjs.map +0 -1
- package/dist/middlewares/CustomAssetGraduationMiddleware.cjs +0 -132
- package/dist/middlewares/CustomAssetGraduationMiddleware.cjs.map +0 -1
- package/dist/middlewares/CustomAssetGraduationMiddleware.d.cts.map +0 -1
- package/dist/middlewares/CustomAssetGraduationMiddleware.d.mts +0 -32
- package/dist/middlewares/CustomAssetGraduationMiddleware.d.mts.map +0 -1
- package/dist/middlewares/CustomAssetGraduationMiddleware.mjs.map +0 -1
- package/dist/middlewares/DetectionMiddleware.cjs +0 -154
- package/dist/middlewares/DetectionMiddleware.cjs.map +0 -1
- package/dist/middlewares/DetectionMiddleware.d.cts.map +0 -1
- package/dist/middlewares/DetectionMiddleware.d.mts +0 -40
- package/dist/middlewares/DetectionMiddleware.d.mts.map +0 -1
- package/dist/middlewares/DetectionMiddleware.mjs.map +0 -1
- package/dist/middlewares/ParallelMiddleware.cjs +0 -263
- package/dist/middlewares/ParallelMiddleware.cjs.map +0 -1
- package/dist/middlewares/ParallelMiddleware.d.cts.map +0 -1
- package/dist/middlewares/ParallelMiddleware.d.mts +0 -41
- package/dist/middlewares/ParallelMiddleware.d.mts.map +0 -1
- package/dist/middlewares/RpcFallbackMiddleware.cjs +0 -90
- package/dist/middlewares/RpcFallbackMiddleware.cjs.map +0 -1
- package/dist/middlewares/RpcFallbackMiddleware.d.cts.map +0 -1
- package/dist/middlewares/RpcFallbackMiddleware.d.mts +0 -23
- package/dist/middlewares/RpcFallbackMiddleware.d.mts.map +0 -1
- package/dist/middlewares/RpcFallbackMiddleware.mjs.map +0 -1
- package/dist/middlewares/index.cjs +0 -14
- package/dist/middlewares/index.cjs.map +0 -1
- package/dist/middlewares/index.d.cts +0 -9
- package/dist/middlewares/index.d.cts.map +0 -1
- package/dist/middlewares/index.d.mts +0 -9
- package/dist/middlewares/index.d.mts.map +0 -1
- package/dist/middlewares/index.mjs +0 -5
- package/dist/middlewares/index.mjs.map +0 -1
- package/dist/migrations/healAssetsInfoMetadata.cjs +0 -385
- package/dist/migrations/healAssetsInfoMetadata.cjs.map +0 -1
- package/dist/migrations/healAssetsInfoMetadata.d.cts.map +0 -1
- package/dist/migrations/healAssetsInfoMetadata.d.mts +0 -106
- package/dist/migrations/healAssetsInfoMetadata.d.mts.map +0 -1
- package/dist/migrations/healAssetsInfoMetadata.mjs.map +0 -1
- package/dist/selectors/balance.cjs +0 -532
- package/dist/selectors/balance.cjs.map +0 -1
- package/dist/selectors/balance.d.cts.map +0 -1
- package/dist/selectors/balance.d.mts +0 -103
- package/dist/selectors/balance.d.mts.map +0 -1
- package/dist/selectors/balance.mjs.map +0 -1
- package/dist/types.cjs +0 -39
- package/dist/types.cjs.map +0 -1
- package/dist/types.d.cts +0 -533
- package/dist/types.d.cts.map +0 -1
- package/dist/types.d.mts.map +0 -1
- package/dist/types.mjs.map +0 -1
- package/dist/utils/constants.cjs +0 -5
- package/dist/utils/constants.cjs.map +0 -1
- package/dist/utils/constants.d.cts +0 -2
- package/dist/utils/constants.d.cts.map +0 -1
- package/dist/utils/constants.d.mts +0 -2
- package/dist/utils/constants.d.mts.map +0 -1
- package/dist/utils/constants.mjs.map +0 -1
- package/dist/utils/customAssetsRpcSupplement.cjs +0 -72
- package/dist/utils/customAssetsRpcSupplement.cjs.map +0 -1
- package/dist/utils/customAssetsRpcSupplement.d.cts +0 -60
- package/dist/utils/customAssetsRpcSupplement.d.cts.map +0 -1
- package/dist/utils/customAssetsRpcSupplement.d.mts.map +0 -1
- package/dist/utils/customAssetsRpcSupplement.mjs.map +0 -1
- package/dist/utils/dedupingBatchFetcher.cjs +0 -168
- package/dist/utils/dedupingBatchFetcher.cjs.map +0 -1
- package/dist/utils/dedupingBatchFetcher.d.cts.map +0 -1
- package/dist/utils/dedupingBatchFetcher.d.mts +0 -72
- package/dist/utils/dedupingBatchFetcher.d.mts.map +0 -1
- package/dist/utils/dedupingBatchFetcher.mjs.map +0 -1
- package/dist/utils/fetchWithTimeout.cjs +0 -30
- package/dist/utils/fetchWithTimeout.cjs.map +0 -1
- package/dist/utils/fetchWithTimeout.d.cts +0 -11
- package/dist/utils/fetchWithTimeout.d.cts.map +0 -1
- package/dist/utils/fetchWithTimeout.d.mts.map +0 -1
- package/dist/utils/fetchWithTimeout.mjs.map +0 -1
- package/dist/utils/formatExchangeRatesForBridge.cjs +0 -161
- package/dist/utils/formatExchangeRatesForBridge.cjs.map +0 -1
- package/dist/utils/formatExchangeRatesForBridge.d.cts +0 -43
- package/dist/utils/formatExchangeRatesForBridge.d.cts.map +0 -1
- package/dist/utils/formatExchangeRatesForBridge.d.mts.map +0 -1
- package/dist/utils/formatExchangeRatesForBridge.mjs.map +0 -1
- package/dist/utils/formatStateForTransactionPay.cjs +0 -174
- package/dist/utils/formatStateForTransactionPay.cjs.map +0 -1
- package/dist/utils/formatStateForTransactionPay.d.cts.map +0 -1
- package/dist/utils/formatStateForTransactionPay.d.mts +0 -72
- package/dist/utils/formatStateForTransactionPay.d.mts.map +0 -1
- package/dist/utils/formatStateForTransactionPay.mjs.map +0 -1
- package/dist/utils/index.cjs +0 -21
- package/dist/utils/index.cjs.map +0 -1
- package/dist/utils/index.d.cts +0 -9
- package/dist/utils/index.d.cts.map +0 -1
- package/dist/utils/index.d.mts +0 -9
- package/dist/utils/index.d.mts.map +0 -1
- package/dist/utils/index.mjs +0 -7
- package/dist/utils/index.mjs.map +0 -1
- package/dist/utils/native-assets.cjs +0 -64
- package/dist/utils/native-assets.cjs.map +0 -1
- package/dist/utils/native-assets.d.cts.map +0 -1
- package/dist/utils/native-assets.d.mts +0 -19
- package/dist/utils/native-assets.d.mts.map +0 -1
- package/dist/utils/native-assets.mjs.map +0 -1
- package/dist/utils/normalizeAmountString.cjs +0 -64
- package/dist/utils/normalizeAmountString.cjs.map +0 -1
- package/dist/utils/normalizeAmountString.d.cts +0 -35
- package/dist/utils/normalizeAmountString.d.cts.map +0 -1
- package/dist/utils/normalizeAmountString.d.mts.map +0 -1
- package/dist/utils/normalizeAmountString.mjs.map +0 -1
- package/dist/utils/normalizeAssetId.cjs +0 -60
- package/dist/utils/normalizeAssetId.cjs.map +0 -1
- package/dist/utils/normalizeAssetId.d.cts.map +0 -1
- package/dist/utils/normalizeAssetId.d.mts +0 -32
- package/dist/utils/normalizeAssetId.d.mts.map +0 -1
- package/dist/utils/normalizeAssetId.mjs.map +0 -1
- package/dist/utils/snaps-assets-migration.cjs +0 -171
- package/dist/utils/snaps-assets-migration.cjs.map +0 -1
- package/dist/utils/snaps-assets-migration.d.cts +0 -113
- package/dist/utils/snaps-assets-migration.d.cts.map +0 -1
- package/dist/utils/snaps-assets-migration.d.mts.map +0 -1
- package/dist/utils/snaps-assets-migration.mjs.map +0 -1
- package/dist/utils/trace.cjs +0 -120
- package/dist/utils/trace.cjs.map +0 -1
- package/dist/utils/trace.d.cts +0 -52
- package/dist/utils/trace.d.cts.map +0 -1
- package/dist/utils/trace.d.mts.map +0 -1
- package/dist/utils/trace.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AssetBalance, AssetMetadata, AssetPrice } from
|
|
2
|
-
import type { BridgeExchangeRatesFormat } from
|
|
1
|
+
import type { AssetBalance, AssetMetadata, AssetPrice } from '../types.js';
|
|
2
|
+
import type { BridgeExchangeRatesFormat } from './formatExchangeRatesForBridge.js';
|
|
3
3
|
/** Account with id and address for mapping state to legacy format. */
|
|
4
4
|
export type AccountForLegacyFormat = {
|
|
5
5
|
id: string;
|
|
@@ -69,4 +69,4 @@ export declare function formatStateForTransactionPay(params: FormatStateForTrans
|
|
|
69
69
|
* Clears the {@link formatStateForTransactionPay} memoize cache. Exported for tests.
|
|
70
70
|
*/
|
|
71
71
|
export declare function clearFormatStateForTransactionPayCacheForTesting(): void;
|
|
72
|
-
//# sourceMappingURL=formatStateForTransactionPay.d.
|
|
72
|
+
//# sourceMappingURL=formatStateForTransactionPay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatStateForTransactionPay.d.ts","sourceRoot":"","sources":["../../src/utils/formatStateForTransactionPay.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EAEX,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,CACvB,MAAM,EACN,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAC5D,CAAC;IACF,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACzD,iDAAiD;IACjD,UAAU,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACpD,sDAAsD;IACtD,aAAa,EAAE,yBAAyB,CAAC,eAAe,CAAC,CAAC;IAC1D,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,kCAAkC,GAAG;IAC/C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC5D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,8BAA8B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AA+CF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,kCAAkC,GACzC,0BAA0B,CAQ5B;AAED;;GAEG;AACH,wBAAgB,gDAAgD,IAAI,IAAI,CAEvE"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { toChecksumAddress } from
|
|
2
|
-
import { getNativeTokenAddress } from
|
|
3
|
-
import { numberToHex } from
|
|
4
|
-
import { parseCaipAssetType, parseCaipChainId } from
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
import { formatExchangeRatesForBridge } from "./formatExchangeRatesForBridge.mjs";
|
|
1
|
+
import { toChecksumAddress } from '@ethereumjs/util';
|
|
2
|
+
import { getNativeTokenAddress } from '@metamask/assets-controllers';
|
|
3
|
+
import { numberToHex } from '@metamask/utils';
|
|
4
|
+
import { parseCaipAssetType, parseCaipChainId } from '@metamask/utils';
|
|
5
|
+
import { isEqual } from 'lodash-es';
|
|
6
|
+
import { formatExchangeRatesForBridge } from './formatExchangeRatesForBridge.js';
|
|
8
7
|
function amountToHex(amount) {
|
|
9
8
|
const hexString = BigInt(amount).toString(16);
|
|
10
9
|
return `0x${hexString}`;
|
|
@@ -167,4 +166,4 @@ function computeStateForTransactionPay(params) {
|
|
|
167
166
|
currentCurrency: exchangeRates.currentCurrency,
|
|
168
167
|
};
|
|
169
168
|
}
|
|
170
|
-
//# sourceMappingURL=formatStateForTransactionPay.
|
|
169
|
+
//# sourceMappingURL=formatStateForTransactionPay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatStateForTransactionPay.js","sourceRoot":"","sources":["../../src/utils/formatStateForTransactionPay.ts"],"names":[],"mappings":"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","sourcesContent":["import { toChecksumAddress } from '@ethereumjs/util';\nimport { getNativeTokenAddress } from '@metamask/assets-controllers';\nimport { numberToHex } from '@metamask/utils';\nimport { parseCaipAssetType, parseCaipChainId } from '@metamask/utils';\nimport { isEqual } from 'lodash-es';\n\nimport type {\n AssetBalance,\n AssetMetadata,\n AssetPrice,\n Caip19AssetId,\n} from '../types.js';\nimport { formatExchangeRatesForBridge } from './formatExchangeRatesForBridge.js';\nimport type { BridgeExchangeRatesFormat } from './formatExchangeRatesForBridge.js';\n\n/** Account with id and address for mapping state to legacy format. */\nexport type AccountForLegacyFormat = { id: string; address: string };\n\n/**\n * Legacy Token shape expected by TokensController / transaction-pay-controller.\n */\nexport type LegacyToken = {\n address: string;\n decimals: number;\n symbol: string;\n name?: string;\n [key: string]: unknown;\n};\n\n/**\n * Legacy state shape that transaction-pay-controller reads from\n * TokenBalancesController, AccountTrackerController, TokensController,\n * TokenRatesController, and CurrencyRateController.\n */\nexport type TransactionPayLegacyFormat = {\n /** TokenBalancesController:getState().tokenBalances */\n tokenBalances: Record<string, Record<string, Record<string, `0x${string}`>>>;\n /** AccountTrackerController:getState().accountsByChainId */\n accountsByChainId: Record<\n string,\n Record<string, { balance: string; stakedBalance?: string }>\n >;\n /** TokensController:getState().allTokens (chainId -> key -> Token[]) */\n allTokens: Record<string, Record<string, LegacyToken[]>>;\n /** TokenRatesController:getState().marketData */\n marketData: BridgeExchangeRatesFormat['marketData'];\n /** CurrencyRateController:getState().currencyRates */\n currencyRates: BridgeExchangeRatesFormat['currencyRates'];\n /** CurrencyRateController:getState().currentCurrency */\n currentCurrency: string;\n};\n\n/** Parameters accepted by {@link formatStateForTransactionPay}. */\nexport type FormatStateForTransactionPayParams = {\n assetsBalance: Record<string, Record<string, AssetBalance>>;\n assetsInfo: Record<string, AssetMetadata>;\n assetsPrice: Record<string, AssetPrice>;\n selectedCurrency: string;\n accounts: AccountForLegacyFormat[];\n nativeAssetIdentifiers: Record<string, string>;\n networkConfigurationsByChainId?: Record<string, { nativeCurrency?: string }>;\n};\n\nfunction amountToHex(amount: string): `0x${string}` {\n const hexString = BigInt(amount).toString(16);\n return `0x${hexString}`;\n}\n\n/**\n * Determines whether two sets of {@link formatStateForTransactionPay}\n * parameters are identical for memoization purposes.\n *\n * State slices (`assetsBalance`, `assetsInfo`, `assetsPrice`,\n * `networkConfigurationsByChainId`) are compared by reference since\n * BaseController state updates are immutable. The `accounts` and\n * `nativeAssetIdentifiers` inputs are rebuilt on every call, so they are\n * compared by value instead.\n *\n * @param a - Previous parameters.\n * @param b - Next parameters.\n * @returns True if the parameters are identical.\n */\nfunction isTransactionPayParamsIdentical(\n a: FormatStateForTransactionPayParams,\n b: FormatStateForTransactionPayParams,\n): boolean {\n return (\n a.assetsBalance === b.assetsBalance &&\n a.assetsInfo === b.assetsInfo &&\n a.assetsPrice === b.assetsPrice &&\n a.selectedCurrency === b.selectedCurrency &&\n a.networkConfigurationsByChainId === b.networkConfigurationsByChainId &&\n isEqual(a.accounts, b.accounts) &&\n isEqual(a.nativeAssetIdentifiers, b.nativeAssetIdentifiers)\n );\n}\n\nfunction getAmountFromBalance(balance: AssetBalance): string {\n return typeof balance === 'object' && balance !== null && 'amount' in balance\n ? String((balance as { amount: string }).amount)\n : '0';\n}\n\nlet lastCall: {\n params: FormatStateForTransactionPayParams;\n result: TransactionPayLegacyFormat;\n} | null = null;\n\n/**\n * Converts AssetsController state into the legacy format consumed by\n * transaction-pay-controller (TokenBalancesController, AccountTrackerController,\n * TokensController, TokenRatesController, CurrencyRateController shapes).\n *\n * The last result is memoized on input identity: this function is invoked (via\n * `AssetsController:getStateForTransactionPay`) on every\n * `TransactionController:stateChange`, but its inputs only change when the\n * assets pipeline updates. Recomputing runs keccak256 (`toChecksumAddress`)\n * per asset per call, which dominates CPU profiles during transaction\n * approval.\n *\n * @param params - Conversion parameters.\n * @returns Legacy-compatible state for transaction-pay-controller.\n */\nexport function formatStateForTransactionPay(\n params: FormatStateForTransactionPayParams,\n): TransactionPayLegacyFormat {\n if (lastCall && isTransactionPayParamsIdentical(lastCall.params, params)) {\n return lastCall.result;\n }\n\n const result = computeStateForTransactionPay(params);\n lastCall = { params, result: Object.freeze(result) };\n return result;\n}\n\n/**\n * Clears the {@link formatStateForTransactionPay} memoize cache. Exported for tests.\n */\nexport function clearFormatStateForTransactionPayCacheForTesting(): void {\n lastCall = null;\n}\n\n/**\n * Performs the actual state conversion for\n * {@link formatStateForTransactionPay}.\n *\n * @param params - Conversion parameters.\n * @returns Legacy-compatible state for transaction-pay-controller.\n */\nfunction computeStateForTransactionPay(\n params: FormatStateForTransactionPayParams,\n): TransactionPayLegacyFormat {\n const {\n assetsBalance,\n assetsInfo,\n assetsPrice,\n selectedCurrency,\n accounts,\n nativeAssetIdentifiers,\n networkConfigurationsByChainId = {},\n } = params;\n\n const tokenBalances: TransactionPayLegacyFormat['tokenBalances'] = {};\n const accountsByChainId: TransactionPayLegacyFormat['accountsByChainId'] = {};\n const allTokensByChain: Record<string, LegacyToken[]> = {};\n\n for (const account of accounts) {\n const accountAddressLower = account.address.toLowerCase();\n const accountBalances = assetsBalance[account.id];\n if (!accountBalances) {\n continue;\n }\n\n for (const [assetId, balance] of Object.entries(accountBalances)) {\n try {\n const parsed = parseCaipAssetType(assetId as Caip19AssetId);\n const chainIdParsed = parseCaipChainId(parsed.chainId);\n if (chainIdParsed.namespace !== 'eip155') {\n continue;\n }\n const chainIdHex = numberToHex(parseInt(chainIdParsed.reference, 10));\n const amount = getAmountFromBalance(balance);\n const balanceHex = amountToHex(amount);\n\n if (assetsInfo[assetId]?.type === 'native') {\n const nativeAddress = toChecksumAddress(\n getNativeTokenAddress(chainIdHex),\n );\n const checksumAddress = toChecksumAddress(account.address);\n tokenBalances[accountAddressLower] ??= {};\n tokenBalances[accountAddressLower][chainIdHex] ??= {};\n tokenBalances[accountAddressLower][chainIdHex][nativeAddress] =\n balanceHex;\n accountsByChainId[chainIdHex] ??= {};\n accountsByChainId[chainIdHex][checksumAddress] = {\n balance: balanceHex,\n };\n } else if (parsed.assetNamespace === 'erc20') {\n const tokenAddress = toChecksumAddress(String(parsed.assetReference));\n tokenBalances[accountAddressLower] ??= {};\n tokenBalances[accountAddressLower][chainIdHex] ??= {};\n tokenBalances[accountAddressLower][chainIdHex][tokenAddress] =\n balanceHex;\n }\n } catch {\n // Skip malformed asset IDs\n }\n }\n }\n\n for (const [assetId, metadata] of Object.entries(assetsInfo)) {\n try {\n const parsed = parseCaipAssetType(assetId as Caip19AssetId);\n const chainIdParsed = parseCaipChainId(parsed.chainId);\n if (chainIdParsed.namespace !== 'eip155') {\n continue;\n }\n const chainIdHex = numberToHex(parseInt(chainIdParsed.reference, 10));\n const address =\n metadata.type === 'native'\n ? getNativeTokenAddress(chainIdHex)\n : toChecksumAddress(String(parsed.assetReference));\n const token: LegacyToken = {\n address,\n decimals: metadata.decimals,\n symbol: metadata.symbol,\n name: metadata.name,\n };\n allTokensByChain[chainIdHex] ??= [];\n if (\n !allTokensByChain[chainIdHex].some(\n (existing) =>\n existing.address.toLowerCase() === address.toLowerCase(),\n )\n ) {\n allTokensByChain[chainIdHex].push(token);\n }\n } catch {\n // Skip malformed asset IDs\n }\n }\n\n const allTokens: TransactionPayLegacyFormat['allTokens'] = {};\n for (const [chainId, tokens] of Object.entries(allTokensByChain)) {\n allTokens[chainId] = { '': tokens };\n }\n\n const exchangeRates = formatExchangeRatesForBridge({\n assetsInfo,\n assetsPrice,\n selectedCurrency,\n nativeAssetIdentifiers,\n networkConfigurationsByChainId,\n });\n\n return {\n tokenBalances,\n accountsByChainId,\n allTokens,\n marketData: exchangeRates.marketData,\n currencyRates: exchangeRates.currencyRates,\n currentCurrency: exchangeRates.currentCurrency,\n };\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { fetchWithTimeout } from './fetchWithTimeout.js';
|
|
2
|
+
export { normalizeAmountString } from './normalizeAmountString.js';
|
|
3
|
+
export { normalizeAssetId, safeNormalizeAssetId, clearNormalizeAssetIdCacheForTesting, } from './normalizeAssetId.js';
|
|
4
|
+
export { formatExchangeRatesForBridge, clearFormatExchangeRatesForBridgeCacheForTesting, } from './formatExchangeRatesForBridge.js';
|
|
5
|
+
export { formatStateForTransactionPay, clearFormatStateForTransactionPayCacheForTesting, } from './formatStateForTransactionPay.js';
|
|
6
|
+
export type { BridgeExchangeRatesFormat, FormatExchangeRatesForBridgeParams, } from './formatExchangeRatesForBridge.js';
|
|
7
|
+
export type { AccountForLegacyFormat, FormatStateForTransactionPayParams, LegacyToken, TransactionPayLegacyFormat, } from './formatStateForTransactionPay.js';
|
|
8
|
+
export { buildNativeAssetsFromConstant, buildNativeAssetsFromApi, } from './native-assets.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oCAAoC,GACrC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,gDAAgD,GACjD,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,4BAA4B,EAC5B,gDAAgD,GACjD,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACV,yBAAyB,EACzB,kCAAkC,GACnC,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACV,sBAAsB,EACtB,kCAAkC,EAClC,WAAW,EACX,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { fetchWithTimeout } from './fetchWithTimeout.js';
|
|
2
|
+
export { normalizeAmountString } from './normalizeAmountString.js';
|
|
3
|
+
export { normalizeAssetId, safeNormalizeAssetId, clearNormalizeAssetIdCacheForTesting, } from './normalizeAssetId.js';
|
|
4
|
+
export { formatExchangeRatesForBridge, clearFormatExchangeRatesForBridgeCacheForTesting, } from './formatExchangeRatesForBridge.js';
|
|
5
|
+
export { formatStateForTransactionPay, clearFormatStateForTransactionPayCacheForTesting, } from './formatStateForTransactionPay.js';
|
|
6
|
+
export { buildNativeAssetsFromConstant, buildNativeAssetsFromApi, } from './native-assets.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oCAAoC,GACrC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,gDAAgD,GACjD,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,4BAA4B,EAC5B,gDAAgD,GACjD,MAAM,mCAAmC,CAAC;AAW3C,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,oBAAoB,CAAC","sourcesContent":["export { fetchWithTimeout } from './fetchWithTimeout.js';\nexport { normalizeAmountString } from './normalizeAmountString.js';\nexport {\n normalizeAssetId,\n safeNormalizeAssetId,\n clearNormalizeAssetIdCacheForTesting,\n} from './normalizeAssetId.js';\nexport {\n formatExchangeRatesForBridge,\n clearFormatExchangeRatesForBridgeCacheForTesting,\n} from './formatExchangeRatesForBridge.js';\nexport {\n formatStateForTransactionPay,\n clearFormatStateForTransactionPayCacheForTesting,\n} from './formatStateForTransactionPay.js';\nexport type {\n BridgeExchangeRatesFormat,\n FormatExchangeRatesForBridgeParams,\n} from './formatExchangeRatesForBridge.js';\nexport type {\n AccountForLegacyFormat,\n FormatStateForTransactionPayParams,\n LegacyToken,\n TransactionPayLegacyFormat,\n} from './formatStateForTransactionPay.js';\nexport {\n buildNativeAssetsFromConstant,\n buildNativeAssetsFromApi,\n} from './native-assets.js';\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Caip19AssetId, ChainId } from
|
|
1
|
+
import type { Caip19AssetId, ChainId } from '../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Builds a native asset map from the hardcoded SPOT_PRICES_SUPPORT_INFO constant.
|
|
4
4
|
*
|
|
@@ -16,4 +16,4 @@ export declare function buildNativeAssetsFromConstant(): Record<ChainId, Caip19A
|
|
|
16
16
|
* @returns The merged native asset map.
|
|
17
17
|
*/
|
|
18
18
|
export declare function buildNativeAssetsFromApi(): Promise<Record<ChainId, Caip19AssetId>>;
|
|
19
|
-
//# sourceMappingURL=native-assets.d.
|
|
19
|
+
//# sourceMappingURL=native-assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-assets.d.ts","sourceRoot":"","sources":["../../src/utils/native-assets.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAU1D;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CACrD,OAAO,EACP,aAAa,CACd,CAOA;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CACvD,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAC/B,CAmCA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SPOT_PRICES_SUPPORT_INFO } from
|
|
2
|
-
import { fetchWithErrorHandling } from
|
|
3
|
-
import { parseCaipAssetType } from
|
|
4
|
-
import { normalizeAssetId } from
|
|
1
|
+
import { SPOT_PRICES_SUPPORT_INFO } from '@metamask/assets-controllers';
|
|
2
|
+
import { fetchWithErrorHandling } from '@metamask/controller-utils';
|
|
3
|
+
import { parseCaipAssetType } from '@metamask/utils';
|
|
4
|
+
import { normalizeAssetId } from './normalizeAssetId.js';
|
|
5
5
|
const CHAINID_NETWORK_URL = 'https://chainid.network/chains.json';
|
|
6
6
|
/**
|
|
7
7
|
* Builds a native asset map from the hardcoded SPOT_PRICES_SUPPORT_INFO constant.
|
|
@@ -56,4 +56,4 @@ export async function buildNativeAssetsFromApi() {
|
|
|
56
56
|
}
|
|
57
57
|
return nativeAssetsMap;
|
|
58
58
|
}
|
|
59
|
-
//# sourceMappingURL=native-assets.
|
|
59
|
+
//# sourceMappingURL=native-assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-assets.js","sourceRoot":"","sources":["../../src/utils/native-assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,mBAAmB,GAAG,qCAAqC,CAAC;AAOlE;;;;GAIG;AACH,MAAM,UAAU,6BAA6B;IAI3C,MAAM,eAAe,GAAmC,EAAE,CAAC;IAC3D,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACpE,MAAM,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACtD,eAAe,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAG5C,MAAM,eAAe,GAAG,6BAA6B,EAAE,CAAC;IAExD,IAAI,CAAC;QACH,MAAM,MAAM,GACV,MAAM,sBAAsB,CAAC;YAC3B,GAAG,EAAE,mBAAmB;YACxB,OAAO,EAAE,KAAM;SAChB,CAAC,CAAC;QAEL,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IACE,CAAC,KAAK,CAAC,OAAO;oBACd,CAAC,KAAK,CAAC,MAAM;oBACb,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;oBAChC,KAAK,CAAC,OAAO,GAAG,CAAC;oBACjB,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC/B,KAAK,CAAC,MAAM,GAAG,CAAC,EAChB,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,MAAM,WAAW,GAAG,UAAU,KAAK,CAAC,OAAO,EAAa,CAAC;gBACzD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;oBAClC,eAAe,CAAC,WAAW,CAAC;wBAC1B,UAAU,KAAK,CAAC,OAAO,WAAW,KAAK,CAAC,MAAM,EAAmB,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC","sourcesContent":["import { SPOT_PRICES_SUPPORT_INFO } from '@metamask/assets-controllers';\nimport { fetchWithErrorHandling } from '@metamask/controller-utils';\nimport { parseCaipAssetType } from '@metamask/utils';\n\nimport type { Caip19AssetId, ChainId } from '../types.js';\nimport { normalizeAssetId } from './normalizeAssetId.js';\n\nconst CHAINID_NETWORK_URL = 'https://chainid.network/chains.json';\n\ntype ChainIdNetworkEntry = {\n chainId: number;\n slip44?: number;\n};\n\n/**\n * Builds a native asset map from the hardcoded SPOT_PRICES_SUPPORT_INFO constant.\n *\n * @returns A record mapping CAIP-2 chain IDs to their CAIP-19 native asset IDs.\n */\nexport function buildNativeAssetsFromConstant(): Record<\n ChainId,\n Caip19AssetId\n> {\n const nativeAssetsMap: Record<ChainId, Caip19AssetId> = {};\n for (const nativeAssetId of Object.values(SPOT_PRICES_SUPPORT_INFO)) {\n const { chainId } = parseCaipAssetType(nativeAssetId);\n nativeAssetsMap[chainId] = normalizeAssetId(nativeAssetId);\n }\n return nativeAssetsMap;\n}\n\n/**\n * Fetches chain data from chainid.network and merges it with the seed\n * native asset map built from {@link buildNativeAssetsFromConstant}.\n *\n * Remote entries only fill gaps — chains already present in the seed map\n * are never overwritten. Invalid entries (missing/negative chainId or slip44)\n * are silently skipped.\n *\n * @returns The merged native asset map.\n */\nexport async function buildNativeAssetsFromApi(): Promise<\n Record<ChainId, Caip19AssetId>\n> {\n const nativeAssetsMap = buildNativeAssetsFromConstant();\n\n try {\n const chains: ChainIdNetworkEntry[] | undefined =\n await fetchWithErrorHandling({\n url: CHAINID_NETWORK_URL,\n timeout: 10_000,\n });\n\n if (chains && Array.isArray(chains)) {\n for (const chain of chains) {\n if (\n !chain.chainId ||\n !chain.slip44 ||\n !Number.isInteger(chain.chainId) ||\n chain.chainId < 1 ||\n !Number.isInteger(chain.slip44) ||\n chain.slip44 < 1\n ) {\n continue;\n }\n\n const caipChainId = `eip155:${chain.chainId}` as ChainId;\n if (!nativeAssetsMap[caipChainId]) {\n nativeAssetsMap[caipChainId] =\n `eip155:${chain.chainId}/slip44:${chain.slip44}` as Caip19AssetId;\n }\n }\n }\n } catch {\n // Non-fatal: caller should fall back to the seed map.\n }\n\n return nativeAssetsMap;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeAmountString.d.ts","sourceRoot":"","sources":["../../src/utils/normalizeAmountString.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAsBR"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import BigNumberJS from
|
|
1
|
+
import { BigNumber as BigNumberJS } from 'bignumber.js';
|
|
2
2
|
/**
|
|
3
3
|
* Normalize an asset balance `amount` string into a canonical plain-decimal
|
|
4
4
|
* form (no scientific notation), optionally truncating to the asset's decimal
|
|
@@ -54,4 +54,4 @@ export function normalizeAmountString(amount, decimals) {
|
|
|
54
54
|
// Trim trailing zeros and a dangling dot: "1.500" -> "1.5", "1.000" -> "1".
|
|
55
55
|
return fixed.replace(/0+$/u, '').replace(/\.$/u, '');
|
|
56
56
|
}
|
|
57
|
-
//# sourceMappingURL=normalizeAmountString.
|
|
57
|
+
//# sourceMappingURL=normalizeAmountString.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeAmountString.js","sourceRoot":"","sources":["../../src/utils/normalizeAmountString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAe,EACf,QAAiB;IAEjB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,KAAa,CAAC;IAClB,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACzE,yEAAyE;QACzE,KAAK,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,4EAA4E;IAC5E,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC","sourcesContent":["import { BigNumber as BigNumberJS } from 'bignumber.js';\n\n/**\n * Normalize an asset balance `amount` string into a canonical plain-decimal\n * form (no scientific notation), optionally truncating to the asset's decimal\n * precision.\n *\n * Amounts entering `assetsBalance` state come from external sources (snaps,\n * accounts API, websocket, RPC) and may be serialized from JavaScript Numbers\n * as `\"1e-18\"`. Downstream consumers (e.g. the extension's\n * `parseBalanceWithDecimals`) split on `'.'` and feed the result to `BigInt()`,\n * which throws on exponent-form strings. Normalizing at the controller\n * boundary keeps the invariant that `amount` is always a plain decimal so\n * every current and future data source is safe without per-source changes.\n *\n * When `decimals` is provided (i.e. the asset's metadata is registered),\n * fractional digits beyond `decimals` are truncated using round-toward-zero\n * to match the extension's `parseBalanceWithDecimals`, which slices off any\n * fractional digits beyond `decimals`.\n *\n * When `decimals` is omitted (metadata not yet known for this asset), the\n * amount is left at its natural precision — exponent form is still converted\n * to plain decimal, but no digits are dropped. This preserves balances that\n * arrive before their metadata without lossy truncation.\n *\n * Non-finite or non-string inputs collapse to `'0'` rather than throwing,\n * because controller state must remain JSON-serializable and a malformed\n * upstream payload should not corrupt the rest of the update.\n *\n * @param amount - The raw amount string from a data source.\n * @param decimals - The asset's decimal precision (from `assetsInfo`). Pass\n * `undefined` when metadata is unknown to skip truncation.\n * @returns A plain decimal string (e.g. `\"0.000000000000000001\"`), or `'0'`\n * for non-finite / non-string input.\n */\nexport function normalizeAmountString(\n amount: unknown,\n decimals?: number,\n): string {\n if (typeof amount !== 'string' || amount.length === 0) {\n return '0';\n }\n const bn = new BigNumberJS(amount);\n if (!bn.isFinite()) {\n return '0';\n }\n\n let fixed: string;\n if (decimals === undefined || !Number.isFinite(decimals) || decimals < 0) {\n // Metadata unknown — preserve full precision, just defeat exponent form.\n fixed = bn.toFixed();\n } else {\n fixed = bn.toFixed(Math.floor(decimals), BigNumberJS.ROUND_DOWN);\n }\n\n if (!fixed.includes('.')) {\n return fixed;\n }\n // Trim trailing zeros and a dangling dot: \"1.500\" -> \"1.5\", \"1.000\" -> \"1\".\n return fixed.replace(/0+$/u, '').replace(/\\.$/u, '');\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { MemoizedFunction } from
|
|
2
|
-
import type { Caip19AssetId } from
|
|
1
|
+
import type { MemoizedFunction } from 'lodash';
|
|
2
|
+
import type { Caip19AssetId } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Normalizes a CAIP-19 asset ID by checksumming EVM addresses.
|
|
5
5
|
* This ensures consistent asset IDs regardless of the data source format.
|
|
@@ -29,4 +29,4 @@ export declare function safeNormalizeAssetId(assetId: Caip19AssetId): Caip19Asse
|
|
|
29
29
|
* Clears the {@link normalizeAssetId} memoize cache. Exported for unit tests.
|
|
30
30
|
*/
|
|
31
31
|
export declare function clearNormalizeAssetIdCacheForTesting(): void;
|
|
32
|
-
//# sourceMappingURL=normalizeAssetId.d.
|
|
32
|
+
//# sourceMappingURL=normalizeAssetId.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeAssetId.d.ts","sourceRoot":"","sources":["../../src/utils/normalizeAssetId.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAG/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,CAAC,GACxE,gBAcA,CAAC;AAEH;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAM1E;AAED;;GAEG;AACH,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D"}
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
return module;
|
|
6
|
-
}
|
|
7
|
-
import { toChecksumAddress } from "@ethereumjs/util";
|
|
8
|
-
import { parseCaipAssetType, parseCaipChainId } from "@metamask/utils";
|
|
9
|
-
import $memoize from "lodash/memoize.js";
|
|
10
|
-
const memoize = $importDefault($memoize);
|
|
1
|
+
import { toChecksumAddress } from '@ethereumjs/util';
|
|
2
|
+
import { parseCaipAssetType, parseCaipChainId } from '@metamask/utils';
|
|
3
|
+
import { memoize } from 'lodash-es';
|
|
11
4
|
/**
|
|
12
5
|
* Normalizes a CAIP-19 asset ID by checksumming EVM addresses.
|
|
13
6
|
* This ensures consistent asset IDs regardless of the data source format.
|
|
@@ -56,4 +49,4 @@ export function safeNormalizeAssetId(assetId) {
|
|
|
56
49
|
export function clearNormalizeAssetIdCacheForTesting() {
|
|
57
50
|
normalizeAssetId.cache.clear?.();
|
|
58
51
|
}
|
|
59
|
-
//# sourceMappingURL=normalizeAssetId.
|
|
52
|
+
//# sourceMappingURL=normalizeAssetId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeAssetId.js","sourceRoot":"","sources":["../../src/utils/normalizeAssetId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAIvE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,gBAAgB,GACR,OAAO,CAAC,CAAC,OAAsB,EAAiB,EAAE;IACrE,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvD,oCAAoC;IACpC,IACE,aAAa,CAAC,SAAS,KAAK,QAAQ;QACpC,MAAM,CAAC,cAAc,KAAK,OAAO,EACjC,CAAC;QACD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpE,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,IAAI,kBAAkB,EAAmB,CAAC;IAC7F,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAsB;IACzD,IAAI,CAAC;QACH,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oCAAoC;IAClD,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;AACnC,CAAC","sourcesContent":["import { toChecksumAddress } from '@ethereumjs/util';\nimport { parseCaipAssetType, parseCaipChainId } from '@metamask/utils';\n// `@types/lodash-es` only re-exports the functions, so the helper type\n// comes from `@types/lodash`. This is erased at compile time.\nimport type { MemoizedFunction } from 'lodash';\nimport { memoize } from 'lodash-es';\n\nimport type { Caip19AssetId } from '../types.js';\n\n/**\n * Normalizes a CAIP-19 asset ID by checksumming EVM addresses.\n * This ensures consistent asset IDs regardless of the data source format.\n *\n * For EVM ERC20 tokens (e.g., \"eip155:1/erc20:0x...\"), the address is checksummed.\n * All other asset types are returned unchanged.\n *\n * Results are memoized with lodash: repeated calls with the same ID (common after\n * the first pipeline pass, when IDs are already checksummed) skip re-parsing and\n * keccak256 checksum work.\n *\n * @param assetId - The CAIP-19 asset ID to normalize\n * @returns The normalized asset ID with checksummed address (for EVM tokens)\n */\nexport const normalizeAssetId: ((assetId: Caip19AssetId) => Caip19AssetId) &\n MemoizedFunction = memoize((assetId: Caip19AssetId): Caip19AssetId => {\n const parsed = parseCaipAssetType(assetId);\n const chainIdParsed = parseCaipChainId(parsed.chainId);\n\n // Only checksum EVM ERC20 addresses\n if (\n chainIdParsed.namespace === 'eip155' &&\n parsed.assetNamespace === 'erc20'\n ) {\n const checksummedAddress = toChecksumAddress(parsed.assetReference);\n return `${parsed.chainId}/${parsed.assetNamespace}:${checksummedAddress}` as Caip19AssetId;\n }\n\n return assetId;\n});\n\n/**\n * Normalize a CAIP-19 asset ID, returning the original on failure. Some\n * malformed IDs (e.g. an asset reference that fails address checksumming)\n * make {@link normalizeAssetId} throw; callers processing untrusted input\n * use this so one bad ID cannot abort a whole batch.\n *\n * @param assetId - The CAIP-19 asset ID to normalize.\n * @returns The normalized ID, or the original on failure.\n */\nexport function safeNormalizeAssetId(assetId: Caip19AssetId): Caip19AssetId {\n try {\n return normalizeAssetId(assetId);\n } catch {\n return assetId;\n }\n}\n\n/**\n * Clears the {@link normalizeAssetId} memoize cache. Exported for unit tests.\n */\nexport function clearNormalizeAssetIdCacheForTesting(): void {\n normalizeAssetId.cache.clear?.();\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { FeatureFlags } from
|
|
2
|
-
import type { Json } from
|
|
3
|
-
import type { ChainId } from
|
|
1
|
+
import type { FeatureFlags } from '@metamask/remote-feature-flag-controller';
|
|
2
|
+
import type { Json } from '@metamask/utils';
|
|
3
|
+
import type { ChainId } from '../types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Per-network rollout stage for the Snaps → AssetsController assets migration.
|
|
6
6
|
*
|
|
@@ -35,7 +35,7 @@ export declare enum SnapsAssetsMigrationStage {
|
|
|
35
35
|
* Only chains in these namespaces are stage-gated; every other namespace
|
|
36
36
|
* (e.g. `eip155`) keeps its existing, ungated ingestion behavior.
|
|
37
37
|
*/
|
|
38
|
-
export declare const SNAPS_ASSETS_MIGRATION_NAMESPACES: readonly [
|
|
38
|
+
export declare const SNAPS_ASSETS_MIGRATION_NAMESPACES: readonly ['solana', 'stellar', 'tron'];
|
|
39
39
|
export type SnapsAssetsMigrationNamespace = (typeof SNAPS_ASSETS_MIGRATION_NAMESPACES)[number];
|
|
40
40
|
/**
|
|
41
41
|
* Per-network remote feature flag keys (LaunchDarkly) that drive the migration.
|
|
@@ -110,4 +110,4 @@ export declare function getMigrationStages(remoteFeatureFlags: FeatureFlags): Sn
|
|
|
110
110
|
* @returns `true` when the chain should be surfaced as an active chain.
|
|
111
111
|
*/
|
|
112
112
|
export declare function shouldSupportChain(chainId: ChainId, remoteFeatureFlags: FeatureFlags | undefined): boolean;
|
|
113
|
-
//# sourceMappingURL=snaps-assets-migration.d.
|
|
113
|
+
//# sourceMappingURL=snaps-assets-migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snaps-assets-migration.d.ts","sourceRoot":"","sources":["../../src/utils/snaps-assets-migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;GAMG;AACH,oBAAY,yBAAyB;IACnC;;;OAGG;IACH,GAAG,IAAI;IACP;;;;OAIG;IACH,gCAAgC,IAAI;IACpC;;;OAGG;IACH,mCAAmC,IAAI;IACvC;;OAEG;IACH,wBAAwB,IAAI;CAC7B;AAED;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,YAC5C,QAAQ,EACR,SAAS,EACT,MAAM,CACE,CAAC;AAEX,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,MAAM,CACnD,6BAA6B,EAC7B,MAAM,CAKP,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,OAAO,GACf,6BAA6B,GAAG,SAAS,CAW3C;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEzE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,IAAI,GAAG,SAAS,GAC1B,yBAAyB,CAwB3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAET;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,kBAAkB,EAAE,YAAY,GAC/B,yBAAyB,EAAE,CAM7B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,YAAY,GAAG,SAAS,GAC3C,OAAO,CAWT"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseCaipChainId } from
|
|
1
|
+
import { parseCaipChainId } from '@metamask/utils';
|
|
2
2
|
/**
|
|
3
3
|
* Per-network rollout stage for the Snaps → AssetsController assets migration.
|
|
4
4
|
*
|
|
@@ -159,4 +159,4 @@ export function shouldSupportChain(chainId, remoteFeatureFlags) {
|
|
|
159
159
|
const stage = parseSnapsAssetsMigrationStage(remoteFeatureFlags?.[SNAPS_ASSETS_MIGRATION_FLAG_KEYS[namespace]]);
|
|
160
160
|
return isMigrationStageActive(stage);
|
|
161
161
|
}
|
|
162
|
-
//# sourceMappingURL=snaps-assets-migration.
|
|
162
|
+
//# sourceMappingURL=snaps-assets-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snaps-assets-migration.js","sourceRoot":"","sources":["../../src/utils/snaps-assets-migration.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FeatureFlags } from '@metamask/remote-feature-flag-controller';\nimport type { Json } from '@metamask/utils';\nimport { parseCaipChainId } from '@metamask/utils';\n\nimport type { ChainId } from '../types.js';\n\n/**\n * Per-network rollout stage for the Snaps → AssetsController assets migration.\n *\n * The stage is resolved per CAIP-2 chain id, so each migration network (Solana,\n * Stellar, Tron) advances and rolls back independently. A network with no flag\n * (or an unknown/malformed value) resolves to {@link Off}.\n */\nexport enum SnapsAssetsMigrationStage {\n /**\n * Status quo — the Snap uses its own AssetsService and the AssetsController\n * does NOT ingest for the network.\n */\n Off = 0,\n /**\n * The AssetsController ingests for the network (Account Activity WebSocket +\n * AccountsAPI) and reads route through it, falling back to the Snap's\n * AssetsService when the controller has no value.\n */\n ReadAssetsControllerWithFallback = 1,\n /**\n * Reads come from the AssetsController only (no fallback), but the Snap still\n * tracks/persists in the background so rollback stays safe.\n */\n ReadAssetsControllerWithoutFallback = 2,\n /**\n * The Snap stops tracking/persisting; the AssetsController is the only source.\n */\n ReadAssetsControllerOnly = 3,\n}\n\n/**\n * CAIP-2 namespaces covered by the Snaps → AssetsController assets migration.\n * Only chains in these namespaces are stage-gated; every other namespace\n * (e.g. `eip155`) keeps its existing, ungated ingestion behavior.\n */\nexport const SNAPS_ASSETS_MIGRATION_NAMESPACES = [\n 'solana',\n 'stellar',\n 'tron',\n] as const;\n\nexport type SnapsAssetsMigrationNamespace =\n (typeof SNAPS_ASSETS_MIGRATION_NAMESPACES)[number];\n\n/**\n * Per-network remote feature flag keys (LaunchDarkly) that drive the migration.\n * Each flag's resolved value carries the {@link SnapsAssetsMigrationStage} for\n * that network — see {@link parseSnapsAssetsMigrationStage}.\n */\nexport const SNAPS_ASSETS_MIGRATION_FLAG_KEYS: Record<\n SnapsAssetsMigrationNamespace,\n string\n> = {\n solana: 'networkAssetsSnapsMigrationSolana',\n stellar: 'networkAssetsSnapsMigrationStellar',\n tron: 'networkAssetsSnapsMigrationTron',\n};\n\n/**\n * Resolve the CAIP-2 namespace of a chain when it belongs to a migration\n * network (Solana, Stellar, Tron).\n *\n * @param chainId - The CAIP-2 chain id.\n * @returns The migration namespace, or `undefined` for any other chain.\n */\nexport function getSnapsAssetsMigrationNamespace(\n chainId: ChainId,\n): SnapsAssetsMigrationNamespace | undefined {\n try {\n const { namespace } = parseCaipChainId(chainId);\n return (SNAPS_ASSETS_MIGRATION_NAMESPACES as readonly string[]).includes(\n namespace,\n )\n ? (namespace as SnapsAssetsMigrationNamespace)\n : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Whether a CAIP-2 chain id belongs to a network covered by the assets\n * migration (Solana, Stellar, Tron).\n *\n * @param chainId - The CAIP-2 chain id to check.\n * @returns True when the chain's namespace is a migration namespace.\n */\nexport function isSnapsAssetsMigrationNamespace(chainId: ChainId): boolean {\n return getSnapsAssetsMigrationNamespace(chainId) !== undefined;\n}\n\n/**\n * Coerce a resolved remote feature flag value into a {@link SnapsAssetsMigrationStage}.\n *\n * `RemoteFeatureFlagController` resolves a threshold-scoped flag to a\n * `{ name, value }` variant, so the migration payload\n * `{ featureVersion, minimumSnapVersion, stage }` (and thus `stage`) lives under\n * `value` — the same nesting the sibling `assetsAccountsApiV6` flag uses. The\n * top-level object is used as a fallback so a plain, unscoped `{ stage }`\n * variation still resolves. Anything missing, malformed, or carrying an unknown\n * `stage` resolves to {@link SnapsAssetsMigrationStage.Off}.\n *\n * @param flagValue - The resolved remote feature flag value for a network.\n * @returns The migration stage.\n */\nexport function parseSnapsAssetsMigrationStage(\n flagValue: Json | undefined,\n): SnapsAssetsMigrationStage {\n if (\n typeof flagValue !== 'object' ||\n flagValue === null ||\n Array.isArray(flagValue)\n ) {\n return SnapsAssetsMigrationStage.Off;\n }\n\n const { value } = flagValue as { value?: unknown };\n const payload =\n typeof value === 'object' && value !== null && !Array.isArray(value)\n ? value\n : flagValue;\n\n const { stage } = payload as { stage?: unknown };\n switch (stage) {\n case SnapsAssetsMigrationStage.ReadAssetsControllerWithFallback:\n case SnapsAssetsMigrationStage.ReadAssetsControllerWithoutFallback:\n case SnapsAssetsMigrationStage.ReadAssetsControllerOnly:\n return stage;\n default:\n return SnapsAssetsMigrationStage.Off;\n }\n}\n\n/**\n * Whether a network's migration stage is active, i.e. the AssetsController\n * (rather than the Snap) is the source of assets for the network.\n *\n * A stage is active from {@link SnapsAssetsMigrationStage.ReadAssetsControllerWithFallback}\n * onward and inactive at {@link SnapsAssetsMigrationStage.Off}.\n *\n * @param stage - The resolved per-network migration stage.\n * @returns True when the migration is active for the network.\n */\nexport function isMigrationStageActive(\n stage: SnapsAssetsMigrationStage,\n): boolean {\n return stage >= SnapsAssetsMigrationStage.ReadAssetsControllerWithFallback;\n}\n\n/**\n * Resolve the Snaps → AssetsController migration stage for each migration\n * network (Solana, Stellar, Tron) from the remote feature flags. The order\n * matches {@link SNAPS_ASSETS_MIGRATION_NAMESPACES}, so the result can be joined\n * into a stable primitive signature for change detection.\n *\n * @param remoteFeatureFlags - The remote feature flags state to resolve stages from.\n * @returns An array of each migration namespace's resolved stage.\n */\nexport function getMigrationStages(\n remoteFeatureFlags: FeatureFlags,\n): SnapsAssetsMigrationStage[] {\n return SNAPS_ASSETS_MIGRATION_NAMESPACES.map((namespace) =>\n parseSnapsAssetsMigrationStage(\n remoteFeatureFlags[SNAPS_ASSETS_MIGRATION_FLAG_KEYS[namespace]],\n ),\n );\n}\n\n/**\n * Whether a supported network should be surfaced as an active chain, gated by\n * the Snaps → AssetsController migration feature flags.\n *\n * Non-migration namespaces (e.g. `eip155`) are always surfaced. Migration\n * networks (Solana, Stellar, Tron) are only surfaced once their per-network\n * stage reaches {@link SnapsAssetsMigrationStage.ReadAssetsControllerWithFallback};\n * they are excluded when the stage is `Off` (also the fail-safe when the flag is\n * missing or the flags are unavailable).\n *\n * @param chainId - The CAIP-2 chain id to check.\n * @param remoteFeatureFlags - The remote feature flags state, or `undefined` when unavailable.\n * @returns `true` when the chain should be surfaced as an active chain.\n */\nexport function shouldSupportChain(\n chainId: ChainId,\n remoteFeatureFlags: FeatureFlags | undefined,\n): boolean {\n const namespace = getSnapsAssetsMigrationNamespace(chainId);\n // Non-migration namespaces (e.g. `eip155`) are never gated.\n if (!namespace) {\n return true;\n }\n\n const stage = parseSnapsAssetsMigrationStage(\n remoteFeatureFlags?.[SNAPS_ASSETS_MIGRATION_FLAG_KEYS[namespace]],\n );\n return isMigrationStageActive(stage);\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TraceCallback, TraceContext } from
|
|
1
|
+
import type { TraceCallback, TraceContext } from '@metamask/controller-utils';
|
|
2
2
|
export type TraceSpanData = Record<string, number | string | boolean>;
|
|
3
3
|
export type EmitTraceParams = {
|
|
4
4
|
name: string;
|
|
@@ -49,4 +49,4 @@ export declare function emitTrace({ name, trace, data, tags, parentContext, star
|
|
|
49
49
|
* @returns The result of `fn`.
|
|
50
50
|
*/
|
|
51
51
|
export declare function withTrace<Result>({ name, trace, data, fn, tags, startTime: startTimeOverride, }: WithTraceParams<Result>): Promise<Result>;
|
|
52
|
-
//# sourceMappingURL=trace.d.
|
|
52
|
+
//# sourceMappingURL=trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/utils/trace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM9E,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEtE,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,MAAM,IAAI;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA2CF;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAmB,EACnB,aAAa,EACb,SAAS,EAAE,iBAAiB,GAC7B,EAAE,eAAe,GAAG,IAAI,CAuBxB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,EACtC,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,EAAE,EACF,IAAmB,EACnB,SAAS,EAAE,iBAAiB,GAC7B,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/utils/trace.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TraceCallback, TraceContext } from '@metamask/controller-utils';\n\nconst DEFAULT_TAGS: Record<string, number | string | boolean> = {\n controller: 'AssetsController',\n};\n\nexport type TraceSpanData = Record<string, number | string | boolean>;\n\nexport type EmitTraceParams = {\n name: string;\n /** When omitted / undefined, this is a no-op (bake call-site gating here). */\n trace?: TraceCallback;\n data: TraceSpanData;\n tags?: TraceSpanData;\n parentContext?: TraceContext;\n /** Override span start; otherwise derived from `data.duration_ms` when present. */\n startTime?: number;\n};\n\nexport type WithTraceParams<Result> = {\n name: string;\n /** When omitted / undefined, `fn` runs with no parent context. */\n trace?: TraceCallback;\n data: TraceSpanData;\n fn: (parentContext?: TraceContext) => Promise<Result>;\n tags?: TraceSpanData;\n startTime?: number;\n};\n\n/**\n * Build request tags / startTime for MetaMask's Sentry adapter.\n * Numeric `data` fields become tags (measurements); `duration_ms` backdates start.\n *\n * @param data - Span data attributes.\n * @param tags - Caller tags.\n * @param startTime - Optional explicit start override.\n * @returns tags and optional startTime for the TraceRequest.\n */\nfunction buildTraceTiming(\n data: TraceSpanData,\n tags: TraceSpanData,\n startTime?: number,\n): { tags: TraceSpanData; startTime?: number } {\n const numericFromData: Record<string, number> = {};\n for (const [key, value] of Object.entries(data)) {\n if (typeof value === 'number') {\n numericFromData[key] = value;\n }\n }\n const requestTags = {\n ...tags,\n ...numericFromData,\n };\n\n if (startTime !== undefined) {\n return { tags: requestTags, startTime };\n }\n\n const durationMs =\n typeof data.duration_ms === 'number' ? data.duration_ms : undefined;\n if (durationMs === undefined) {\n return { tags: requestTags };\n }\n\n return {\n tags: requestTags,\n startTime: performance.timeOrigin + performance.now() - durationMs,\n };\n}\n\n/**\n * Fire-and-forget Sentry span. Swallows errors so telemetry never breaks callers.\n * Pass `parentContext` to nest as a subspan. Omit `trace` to skip emission.\n *\n * @param params - Span configuration.\n * @param params.name - Trace / span name visible in Sentry.\n * @param params.trace - Optional client trace callback; omit to no-op.\n * @param params.data - Key-value pairs attached as span data.\n * @param params.tags - Key-value pairs used for Sentry filtering.\n * @param params.parentContext - Optional parent span context for nesting.\n * @param params.startTime - Optional explicit start; else derived from `duration_ms`.\n */\nexport function emitTrace({\n name,\n trace,\n data,\n tags = DEFAULT_TAGS,\n parentContext,\n startTime: startTimeOverride,\n}: EmitTraceParams): void {\n if (!trace) {\n return;\n }\n\n const { tags: requestTags, startTime } = buildTraceTiming(\n data,\n tags,\n startTimeOverride,\n );\n\n trace(\n {\n name,\n data,\n tags: requestTags,\n parentContext,\n ...(startTime === undefined ? {} : { startTime }),\n },\n () => undefined,\n )?.catch(() => {\n // Telemetry failure must not break.\n });\n}\n\n/**\n * Run work inside a parent Sentry span and pass its context for nested\n * {@link emitTrace} subspans.\n *\n * When `trace` is omitted, runs `fn(undefined)` with no span.\n * Telemetry failures are swallowed; errors from `fn` still propagate.\n *\n * @param params - Parent span config and work callback.\n * @param params.name - Parent span name.\n * @param params.trace - Optional client trace callback; omit to skip wrapping.\n * @param params.data - Key-value pairs attached as span data.\n * @param params.fn - Work to run; receives the parent span context.\n * @param params.tags - Key-value pairs used for Sentry filtering.\n * @param params.startTime - Optional explicit start; else derived from `duration_ms`.\n * @returns The result of `fn`.\n */\nexport async function withTrace<Result>({\n name,\n trace,\n data,\n fn,\n tags = DEFAULT_TAGS,\n startTime: startTimeOverride,\n}: WithTraceParams<Result>): Promise<Result> {\n if (!trace) {\n return fn(undefined);\n }\n\n const { tags: requestTags, startTime } = buildTraceTiming(\n data,\n tags,\n startTimeOverride,\n );\n\n let workResult:\n | { ok: true; value: Result }\n | { ok: false; error: unknown }\n | undefined;\n\n try {\n await trace(\n {\n name,\n data,\n tags: requestTags,\n ...(startTime === undefined ? {} : { startTime }),\n },\n async (parentContext) => {\n try {\n const value = await fn(parentContext);\n workResult = { ok: true, value };\n return value;\n } catch (error) {\n workResult = { ok: false, error };\n throw error;\n }\n },\n );\n } catch {\n // Telemetry failure must not break — unless the work itself failed.\n }\n\n if (workResult === undefined) {\n // `trace` failed before invoking `fn` (or never called it).\n return fn(undefined);\n }\n if (workResult.ok) {\n return workResult.value;\n }\n throw workResult.error;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metamask-previews/assets-controller",
|
|
3
|
-
"version": "14.0.2-preview-
|
|
3
|
+
"version": "14.0.2-preview-4f4c98e",
|
|
4
4
|
"description": "Tracks assets balances/prices and handles token detection across all digital assets",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ethereum",
|
|
@@ -18,19 +18,12 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
"dist/"
|
|
20
20
|
],
|
|
21
|
+
"type": "module",
|
|
21
22
|
"sideEffects": false,
|
|
22
|
-
"main": "./dist/index.cjs",
|
|
23
|
-
"types": "./dist/index.d.cts",
|
|
24
23
|
"exports": {
|
|
25
24
|
".": {
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
"default": "./dist/index.mjs"
|
|
29
|
-
},
|
|
30
|
-
"require": {
|
|
31
|
-
"types": "./dist/index.d.cts",
|
|
32
|
-
"default": "./dist/index.cjs"
|
|
33
|
-
}
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"default": "./dist/index.js"
|
|
34
27
|
},
|
|
35
28
|
"./package.json": "./package.json"
|
|
36
29
|
},
|
|
@@ -39,9 +32,11 @@
|
|
|
39
32
|
"registry": "https://registry.npmjs.org/"
|
|
40
33
|
},
|
|
41
34
|
"scripts": {
|
|
42
|
-
"build": "
|
|
43
|
-
"build:all": "
|
|
35
|
+
"build": "tsc --project tsconfig.build.json",
|
|
36
|
+
"build:all": "tsc --build tsconfig.build.json --verbose",
|
|
37
|
+
"build:clean": "yarn build:only-clean && yarn build",
|
|
44
38
|
"build:docs": "typedoc",
|
|
39
|
+
"build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'",
|
|
45
40
|
"changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controller",
|
|
46
41
|
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controller",
|
|
47
42
|
"lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts",
|
|
@@ -77,30 +72,32 @@
|
|
|
77
72
|
"@metamask/phishing-controller": "^17.4.0",
|
|
78
73
|
"@metamask/polling-controller": "^16.0.9",
|
|
79
74
|
"@metamask/preferences-controller": "^23.1.0",
|
|
80
|
-
"@metamask/remote-feature-flag-controller": "^6.
|
|
75
|
+
"@metamask/remote-feature-flag-controller": "^6.1.0",
|
|
81
76
|
"@metamask/snaps-controllers": "^19.0.0",
|
|
82
77
|
"@metamask/snaps-utils": "^12.1.2",
|
|
83
78
|
"@metamask/transaction-controller": "^69.6.1",
|
|
84
79
|
"@metamask/utils": "^11.11.0",
|
|
85
80
|
"async-mutex": "^0.5.0",
|
|
86
81
|
"bignumber.js": "^9.1.2",
|
|
87
|
-
"lodash": "^4.17.21",
|
|
82
|
+
"lodash-es": "^4.17.21",
|
|
88
83
|
"p-limit": "^3.1.0"
|
|
89
84
|
},
|
|
90
85
|
"devDependencies": {
|
|
91
86
|
"@metamask/auto-changelog": "^6.1.0",
|
|
92
|
-
"@ts-bridge/cli": "^0.6.4",
|
|
93
87
|
"@types/jest": "^30.0.0",
|
|
94
88
|
"@types/lodash": "^4.14.191",
|
|
89
|
+
"@types/lodash-es": "^4.17.12",
|
|
90
|
+
"@typescript/native": "npm:typescript@^7.0.2",
|
|
95
91
|
"deepmerge": "^4.2.2",
|
|
96
92
|
"jest": "^30.4.2",
|
|
93
|
+
"rimraf": "^5.0.5",
|
|
97
94
|
"ts-jest": "^29.4.11",
|
|
98
95
|
"tsx": "^4.20.5",
|
|
99
96
|
"typedoc": "^0.25.13",
|
|
100
97
|
"typedoc-plugin-missing-exports": "^2.0.0",
|
|
101
|
-
"typescript": "
|
|
98
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2"
|
|
102
99
|
},
|
|
103
100
|
"engines": {
|
|
104
|
-
"node": "^
|
|
101
|
+
"node": "^22.14.0 || ^24"
|
|
105
102
|
}
|
|
106
103
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsController-method-action-types.cjs","sourceRoot":"","sources":["../src/AssetsController-method-action-types.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/**\n * This file is auto generated.\n * Do not edit manually.\n */\n\nimport type { AssetsController } from './AssetsController.js';\n\nexport type AssetsControllerGetAssetsAction = {\n type: `AssetsController:getAssets`;\n handler: AssetsController['getAssets'];\n};\n\nexport type AssetsControllerGetAssetsBalanceAction = {\n type: `AssetsController:getAssetsBalance`;\n handler: AssetsController['getAssetsBalance'];\n};\n\nexport type AssetsControllerGetAssetMetadataAction = {\n type: `AssetsController:getAssetMetadata`;\n handler: AssetsController['getAssetMetadata'];\n};\n\n/**\n * Get a single combined asset (balance + metadata + price + computed\n * `fiatValue`) for an account directly from controller state.\n *\n * Reuses the same state-composition and filtering logic as `getAssets`\n * (balance and metadata are required, a missing price falls back to\n * `{ price: 0, lastUpdated: 0 }` with `fiatValue: 0`, and hidden or\n * otherwise filtered assets are excluded) so the returned shape never\n * drifts from `getAssets`. Reads from current state only and does not\n * trigger a data-source refresh.\n *\n * @param accountId - The account ID (`InternalAccount.id`, not an address).\n * @param assetId - The CAIP-19 asset ID including chain scope\n * (e.g. `eip155:1/erc20:0x...`).\n * @returns The combined `Asset`, or `undefined` when no complete\n * renderable asset (balance + metadata) exists for the account/asset pair.\n * @throws If `accountId` is empty or `assetId` is not a valid CAIP-19 asset ID.\n */\nexport type AssetsControllerGetAccountAssetByIDAction = {\n type: `AssetsController:getAccountAssetByID`;\n handler: AssetsController['getAccountAssetByID'];\n};\n\n/**\n * Get multiple combined assets (balance + metadata + price + computed\n * `fiatValue`) for an account directly from controller state.\n *\n * Applies the same state-composition and filtering rules as\n * `getAccountAssetByID` to each requested asset ID. Asset IDs that do not\n * resolve to a complete renderable asset (missing balance/metadata, hidden,\n * or otherwise filtered out) are omitted from the result. Reads from\n * current state only and does not trigger a data-source refresh.\n *\n * @param accountId - The account ID (`InternalAccount.id`, not an address).\n * @param assetIds - The CAIP-19 asset IDs including chain scope\n * (e.g. `eip155:1/erc20:0x...`).\n * @returns A record of combined `Asset`s keyed by normalized CAIP-19 asset\n * ID, containing only the requested assets that resolved.\n * @throws If `accountId` is empty or any `assetIds` entry is not a valid\n * CAIP-19 asset ID.\n */\nexport type AssetsControllerGetAccountAssetsByIDsAction = {\n type: `AssetsController:getAccountAssetsByIDs`;\n handler: AssetsController['getAccountAssetsByIDs'];\n};\n\n/**\n * Get all combined assets (balance + metadata + price + computed\n * `fiatValue`) an account holds on a given chain scope, directly from\n * controller state.\n *\n * Applies the same state-composition and filtering rules as\n * `getAccountAssetByID` (hidden or otherwise filtered assets are excluded).\n * Reads from current state only and does not trigger a data-source refresh.\n *\n * @param accountId - The account ID (`InternalAccount.id`, not an address).\n * @param scope - The CAIP-2 chain ID to filter by (e.g. `eip155:1`).\n * @returns A record of combined `Asset`s keyed by CAIP-19 asset ID,\n * containing only the account's assets on the given scope.\n * @throws If `accountId` is empty or `scope` is not a valid CAIP-2 chain ID.\n */\nexport type AssetsControllerGetAccountAssetsByScopeAction = {\n type: `AssetsController:getAccountAssetsByScope`;\n handler: AssetsController['getAccountAssetsByScope'];\n};\n\nexport type AssetsControllerGetAssetsPriceAction = {\n type: `AssetsController:getAssetsPrice`;\n handler: AssetsController['getAssetsPrice'];\n};\n\n/**\n * Returns exchange rates in the format expected by the bridge controller\n * (conversionRates, currencyRates, marketData, currentCurrency) so that\n * when useAssetsControllerForRates is true the bridge can use a single\n * action instead of MultichainAssetsRatesController, TokenRatesController,\n * and CurrencyRateController.\n *\n * @returns Bridge-compatible exchange rate state derived from assetsPrice and selectedCurrency.\n */\nexport type AssetsControllerGetExchangeRatesForBridgeAction = {\n type: `AssetsController:getExchangeRatesForBridge`;\n handler: AssetsController['getExchangeRatesForBridge'];\n};\n\n/**\n * Returns state in the legacy format expected by transaction-pay-controller\n * (TokenBalancesController, AccountTrackerController, TokensController,\n * TokenRatesController, CurrencyRateController shapes) so that when\n * useAssetsController is true the transaction-pay-controller can use a\n * single action instead of five separate getState calls.\n *\n * @returns Legacy-compatible state for transaction-pay-controller.\n */\nexport type AssetsControllerGetStateForTransactionPayAction = {\n type: `AssetsController:getStateForTransactionPay`;\n handler: AssetsController['getStateForTransactionPay'];\n};\n\n/**\n * Add a custom asset for an account.\n * Custom assets are included in subscription and fetch operations.\n * Adding a custom asset also unhides it if it was previously hidden.\n *\n * When `pendingMetadata` is provided (e.g. from the extension's pending-tokens\n * flow), the token metadata is persisted immediately into `assetsInfo` so the\n * UI can render it without waiting for the next pipeline fetch.\n *\n * @param accountId - The account ID to add the custom asset for.\n * @param assetId - The CAIP-19 asset ID to add.\n * @param pendingMetadata - Optional token metadata from the UI (pendingTokens format).\n */\nexport type AssetsControllerAddCustomAssetAction = {\n type: `AssetsController:addCustomAsset`;\n handler: AssetsController['addCustomAsset'];\n};\n\n/**\n * Remove a custom asset from an account.\n *\n * @param accountId - The account ID to remove the custom asset from.\n * @param assetId - The CAIP-19 asset ID to remove.\n */\nexport type AssetsControllerRemoveCustomAssetAction = {\n type: `AssetsController:removeCustomAsset`;\n handler: AssetsController['removeCustomAsset'];\n};\n\n/**\n * Get all custom assets for an account.\n *\n * @param accountId - The account ID to get custom assets for.\n * @returns Array of CAIP-19 asset IDs for the account's custom assets.\n */\nexport type AssetsControllerGetCustomAssetsAction = {\n type: `AssetsController:getCustomAssets`;\n handler: AssetsController['getCustomAssets'];\n};\n\n/**\n * Hide an asset globally.\n * Hidden assets are excluded from the asset list returned by getAssets.\n * The hidden state is stored in assetPreferences.\n *\n * @param assetId - The CAIP-19 asset ID to hide.\n */\nexport type AssetsControllerHideAssetAction = {\n type: `AssetsController:hideAsset`;\n handler: AssetsController['hideAsset'];\n};\n\n/**\n * Unhide an asset globally.\n *\n * @param assetId - The CAIP-19 asset ID to unhide.\n */\nexport type AssetsControllerUnhideAssetAction = {\n type: `AssetsController:unhideAsset`;\n handler: AssetsController['unhideAsset'];\n};\n\n/**\n * Set the current currency.\n *\n * @param selectedCurrency - The ISO 4217 currency code to set.\n */\nexport type AssetsControllerSetSelectedCurrencyAction = {\n type: `AssetsController:setSelectedCurrency`;\n handler: AssetsController['setSelectedCurrency'];\n};\n\n/**\n * Union of all AssetsController action types.\n */\nexport type AssetsControllerMethodActions =\n | AssetsControllerGetAssetsAction\n | AssetsControllerGetAssetsBalanceAction\n | AssetsControllerGetAssetMetadataAction\n | AssetsControllerGetAccountAssetByIDAction\n | AssetsControllerGetAccountAssetsByIDsAction\n | AssetsControllerGetAccountAssetsByScopeAction\n | AssetsControllerGetAssetsPriceAction\n | AssetsControllerGetExchangeRatesForBridgeAction\n | AssetsControllerGetStateForTransactionPayAction\n | AssetsControllerAddCustomAssetAction\n | AssetsControllerRemoveCustomAssetAction\n | AssetsControllerGetCustomAssetsAction\n | AssetsControllerHideAssetAction\n | AssetsControllerUnhideAssetAction\n | AssetsControllerSetSelectedCurrencyAction;\n"]}
|