diff --git a/packages/assets-controllers/CHANGELOG.md b/packages/assets-controllers/CHANGELOG.md index d582269c0e..53d173124e 100644 --- a/packages/assets-controllers/CHANGELOG.md +++ b/packages/assets-controllers/CHANGELOG.md @@ -11,6 +11,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump `@metamask/network-enablement-controller` from `^5.2.0` to `^5.3.0` ([#9003](https://github.com/MetaMask/core/pull/9003)) +### Deprecated + +- Mark legacy assets controllers, their state types, and public methods as deprecated in favor of `AssetsController` from `@metamask/assets-controller` + - Affected controllers: `AccountTrackerController`, `CurrencyRateController`, `MultichainAssetsController`, `MultichainAssetsRatesController`, `MultichainBalancesController`, `RatesController`, `TokenBalancesController`, `TokenListController`, `TokenRatesController`, and `TokensController`. + ## [108.5.0] ### Added diff --git a/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts b/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts index 38794c00d9..39d4bd5db5 100644 --- a/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts +++ b/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts @@ -6,6 +6,7 @@ import type { AccountTrackerController } from './AccountTrackerController'; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Refreshes the balances of the accounts depending on the multi-account setting. * If multi-account is disabled, only updates the selected account balance. * If multi-account is enabled, updates balances for all accounts. @@ -19,6 +20,7 @@ export type AccountTrackerControllerRefreshAction = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Sync accounts balances with some additional addresses. * * @param addresses - the additional addresses, may be hardware wallet addresses. @@ -31,6 +33,7 @@ export type AccountTrackerControllerSyncBalanceWithAddressesAction = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Updates the balances of multiple native tokens in a single batch operation. * This is more efficient than calling updateNativeToken multiple times as it * triggers only one state update. @@ -43,6 +46,7 @@ export type AccountTrackerControllerUpdateNativeBalancesAction = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Updates the staked balances of multiple accounts in a single batch operation. * This is more efficient than updating staked balances individually as it * triggers only one state update. diff --git a/packages/assets-controllers/src/AccountTrackerController.ts b/packages/assets-controllers/src/AccountTrackerController.ts index e5fd51ddeb..14dc99e3b0 100644 --- a/packages/assets-controllers/src/AccountTrackerController.ts +++ b/packages/assets-controllers/src/AccountTrackerController.ts @@ -140,6 +140,7 @@ export type AccountInformation = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * AccountTrackerControllerState * * Account tracker controller state @@ -160,6 +161,7 @@ const accountTrackerMetadata: StateMetadata = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The action that can be performed to get the state of the {@link AccountTrackerController}. */ export type AccountTrackerControllerGetStateAction = ControllerGetStateAction< @@ -168,6 +170,7 @@ export type AccountTrackerControllerGetStateAction = ControllerGetStateAction< >; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The actions that can be performed using the {@link AccountTrackerController}. */ export type AccountTrackerControllerActions = @@ -175,6 +178,7 @@ export type AccountTrackerControllerActions = | AccountTrackerControllerMethodActions; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The messenger of the {@link AccountTrackerController} for communication. */ export type AllowedActions = @@ -191,6 +195,7 @@ export type AllowedActions = | KeyringControllerGetStateAction; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The event that {@link AccountTrackerController} can emit. */ export type AccountTrackerControllerStateChangeEvent = @@ -200,12 +205,14 @@ export type AccountTrackerControllerStateChangeEvent = >; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The events that {@link AccountTrackerController} can emit. */ export type AccountTrackerControllerEvents = AccountTrackerControllerStateChangeEvent; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The external events available to the {@link AccountTrackerController}. */ export type AllowedEvents = @@ -217,6 +224,7 @@ export type AllowedEvents = | KeyringControllerUnlockEvent; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The messenger of the {@link AccountTrackerController}. */ export type AccountTrackerControllerMessenger = Messenger< @@ -239,6 +247,7 @@ const MESSENGER_EXPOSED_METHODS = [ ] as const; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Controller that tracks the network balances for all user accounts. */ export class AccountTrackerController extends StaticIntervalPollingController()< @@ -422,6 +431,7 @@ export class AccountTrackerController extends StaticIntervalPollingController; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type CurrencyRateControllerEvents = CurrencyRateStateChange; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type CurrencyRateControllerGetStateAction = ControllerGetStateAction< typeof name, CurrencyRateState >; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type CurrencyRateControllerActions = | CurrencyRateControllerGetStateAction | CurrencyRateControllerMethodActions; @@ -71,6 +84,9 @@ type AllowedActions = | NetworkControllerGetNetworkClientByIdAction | NetworkControllerGetStateAction; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type CurrencyRateMessenger = Messenger< typeof name, CurrencyRateControllerActions | AllowedActions, @@ -124,6 +140,7 @@ type FetchRatesResult = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Controller that passively polls on a set interval for an exchange rate from the current network * asset to the user's preferred currency. */ @@ -184,6 +201,7 @@ export class CurrencyRateController extends StaticIntervalPollingController; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Event emitted when the state of the {@link MultichainAssetsController} changes. */ export type MultichainAssetsControllerStateChangeEvent = @@ -96,6 +102,7 @@ export type MultichainAssetsControllerStateChangeEvent = >; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Actions exposed by the {@link MultichainAssetsController}. */ export type MultichainAssetsControllerActions = @@ -103,6 +110,7 @@ export type MultichainAssetsControllerActions = | MultichainAssetsControllerMethodActions; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Events emitted by {@link MultichainAssetsController}. */ export type MultichainAssetsControllerEvents = @@ -140,6 +148,7 @@ type AllowedEvents = | AccountsControllerAccountAssetListUpdatedEvent; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Messenger type for the MultichainAssetsController. */ export type MultichainAssetsControllerMessenger = Messenger< @@ -202,6 +211,9 @@ type BulkTokenScanBatchOutcome = } | { status: 'rejected'; entries: ChainTokenEntry[] }; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export class MultichainAssetsController extends StaticIntervalPollingController()< typeof controllerName, MultichainAssetsControllerState, @@ -258,6 +270,9 @@ export class MultichainAssetsController extends StaticIntervalPollingController< messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS); } + /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ async _executePoll(_input: null): Promise { await this.#withControllerLock(async () => { const assetsByAccount: Record< @@ -318,6 +333,7 @@ export class MultichainAssetsController extends StaticIntervalPollingController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Returns the metadata for the given asset * * @param asset - The asset to get metadata for @@ -328,6 +344,7 @@ export class MultichainAssetsController extends StaticIntervalPollingController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Ignores a batch of assets for a specific account. * * @param assetsToIgnore - Array of asset IDs to ignore. @@ -353,6 +370,7 @@ export class MultichainAssetsController extends StaticIntervalPollingController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Adds multiple assets to the stored asset list for a specific account. * All assets must belong to the same chain. * diff --git a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts index 2d79438d0d..13e7c46a6d 100644 --- a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts +++ b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts @@ -6,6 +6,7 @@ import type { MultichainAssetsRatesController } from './MultichainAssetsRatesController'; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Updates token conversion rates for each non-EVM account. * * @returns A promise that resolves when the rates are updated. @@ -16,6 +17,7 @@ export type MultichainAssetsRatesControllerUpdateAssetsRatesAction = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Fetches historical prices for the current account * * @param asset - The asset to fetch historical prices for. diff --git a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts index af9d3953c2..d7d5172587 100644 --- a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts +++ b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts @@ -61,6 +61,7 @@ type HistoricalPrice = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * State used by the MultichainAssetsRatesController to cache token conversion rates. */ export type MultichainAssetsRatesControllerState = { @@ -69,6 +70,7 @@ export type MultichainAssetsRatesControllerState = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Returns the state of the MultichainAssetsRatesController. */ export type MultichainAssetsRatesControllerGetStateAction = @@ -82,6 +84,7 @@ type UnifiedAssetConversion = AssetConversion & { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Constructs the default {@link MultichainAssetsRatesController} state. This allows * consumers to provide a partial state object when initializing the controller * and also helps in constructing complete state objects for this controller in @@ -94,6 +97,7 @@ export function getDefaultMultichainAssetsRatesControllerState(): MultichainAsse } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Event emitted when the state of the MultichainAssetsRatesController changes. */ export type MultichainAssetsRatesControllerStateChange = @@ -103,6 +107,7 @@ export type MultichainAssetsRatesControllerStateChange = >; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Actions exposed by the MultichainAssetsRatesController. */ export type MultichainAssetsRatesControllerActions = @@ -110,12 +115,14 @@ export type MultichainAssetsRatesControllerActions = | MultichainAssetsRatesControllerMethodActions; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Events emitted by MultichainAssetsRatesController. */ export type MultichainAssetsRatesControllerEvents = MultichainAssetsRatesControllerStateChange; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Actions that this controller is allowed to call. */ export type AllowedActions = @@ -126,6 +133,7 @@ export type AllowedActions = | AccountsControllerGetSelectedMultichainAccountAction; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Events that this controller is allowed to subscribe to. */ export type AllowedEvents = @@ -135,6 +143,7 @@ export type AllowedEvents = | CurrencyRateStateChange | MultichainAssetsControllerAccountAssetListUpdatedEvent; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Messenger type for the MultichainAssetsRatesController. */ export type MultichainAssetsRatesControllerMessenger = Messenger< @@ -187,6 +196,7 @@ const MESSENGER_EXPOSED_METHODS = [ ] as const; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Controller that manages multichain token conversion rates. * * This controller polls for token conversion rates and updates its state. @@ -275,6 +285,7 @@ export class MultichainAssetsRatesController extends StaticIntervalPollingContro } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Executes a poll by updating token conversion rates for the current account. * * @returns A promise that resolves when the polling completes. @@ -284,6 +295,7 @@ export class MultichainAssetsRatesController extends StaticIntervalPollingContro } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Determines whether the controller is active. * * @returns True if the keyring is unlocked; otherwise, false. @@ -360,6 +372,7 @@ export class MultichainAssetsRatesController extends StaticIntervalPollingContro } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Updates token conversion rates for each non-EVM account. * * @returns A promise that resolves when the rates are updated. @@ -549,6 +562,7 @@ export class MultichainAssetsRatesController extends StaticIntervalPollingContro } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Fetches historical prices for the current account * * @param asset - The asset to fetch historical prices for. diff --git a/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.ts b/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.ts index a8c58ed4a6..103630adab 100644 --- a/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.ts +++ b/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.ts @@ -34,6 +34,7 @@ import type { const controllerName = 'MultichainBalancesController'; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * State used by the {@link MultichainBalancesController} to cache account balances. */ export type MultichainBalancesControllerState = { @@ -48,6 +49,7 @@ export type MultichainBalancesControllerState = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Constructs the default {@link MultichainBalancesController} state. This allows * consumers to provide a partial state object when initializing the controller * and also helps in constructing complete state objects for this controller in @@ -60,6 +62,7 @@ export function getDefaultMultichainBalancesControllerState(): MultichainBalance } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Returns the state of the {@link MultichainBalancesController}. */ export type MultichainBalancesControllerGetStateAction = @@ -69,6 +72,7 @@ export type MultichainBalancesControllerGetStateAction = >; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Event emitted when the state of the {@link MultichainBalancesController} changes. */ export type MultichainBalancesControllerStateChange = @@ -78,12 +82,14 @@ export type MultichainBalancesControllerStateChange = >; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Actions exposed by the {@link MultichainBalancesController}. */ export type MultichainBalancesControllerActions = MultichainBalancesControllerGetStateAction; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Events emitted by {@link MultichainBalancesController}. */ export type MultichainBalancesControllerEvents = @@ -107,6 +113,7 @@ type AllowedEvents = | AccountsControllerAccountBalancesUpdatesEvent | MultichainAssetsControllerAccountAssetListUpdatedEvent; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Messenger type for the MultichainBalancesController. */ export type MultichainBalancesControllerMessenger = Messenger< @@ -133,6 +140,7 @@ const balancesControllerMetadata: StateMetadata { @@ -189,6 +193,7 @@ export class RatesController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Stops the polling process. */ async stop(): Promise { @@ -202,6 +207,7 @@ export class RatesController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Returns the current list of cryptocurrency. * * @returns The cryptocurrency list. @@ -212,6 +218,7 @@ export class RatesController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Sets the list of supported cryptocurrencies. * * @param cryptocurrencies - The list of supported cryptocurrencies. @@ -232,6 +239,7 @@ export class RatesController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Sets the internal fiat currency and update rates accordingly. * * @param fiatCurrency - The fiat currency. diff --git a/packages/assets-controllers/src/RatesController/types.ts b/packages/assets-controllers/src/RatesController/types.ts index 49c5515391..b01f6bd631 100644 --- a/packages/assets-controllers/src/RatesController/types.ts +++ b/packages/assets-controllers/src/RatesController/types.ts @@ -33,6 +33,7 @@ export type Rate = { export type ConversionRates = Record; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Represents the state structure for the RatesController. */ export type RatesControllerState = { @@ -53,6 +54,7 @@ export type RatesControllerState = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Type definition for RatesController state change events. */ export type RatesControllerStateChangeEvent = ControllerStateChangeEvent< @@ -77,6 +79,7 @@ export type RatesControllerPollingStoppedEvent = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Defines the events that the RatesController can emit. */ export type RatesControllerEvents = @@ -84,17 +87,22 @@ export type RatesControllerEvents = | RatesControllerPollingStartedEvent | RatesControllerPollingStoppedEvent; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type RatesControllerGetStateAction = ControllerGetStateAction< typeof ratesControllerName, RatesControllerState >; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Defines the actions that can be performed to get the state of the RatesController. */ export type RatesControllerActions = RatesControllerGetStateAction; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Defines the actions that the RatesController can perform. */ export type RatesControllerMessenger = Messenger< diff --git a/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts b/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts index e554dc7277..7eae226d71 100644 --- a/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts +++ b/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts @@ -5,21 +5,33 @@ import type { TokenBalancesController } from './TokenBalancesController'; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenBalancesControllerGetChainPollingConfigAction = { type: `TokenBalancesController:getChainPollingConfig`; handler: TokenBalancesController['getChainPollingConfig']; }; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenBalancesControllerUpdateChainPollingConfigsAction = { type: `TokenBalancesController:updateChainPollingConfigs`; handler: TokenBalancesController['updateChainPollingConfigs']; }; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenBalancesControllerUpdateBalancesAction = { type: `TokenBalancesController:updateBalances`; handler: TokenBalancesController['updateBalances']; }; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenBalancesControllerResetStateAction = { type: `TokenBalancesController:resetState`; handler: TokenBalancesController['resetState']; diff --git a/packages/assets-controllers/src/TokenBalancesController.ts b/packages/assets-controllers/src/TokenBalancesController.ts index bc27b8e1a9..da80ade10a 100644 --- a/packages/assets-controllers/src/TokenBalancesController.ts +++ b/packages/assets-controllers/src/TokenBalancesController.ts @@ -144,19 +144,31 @@ export type TokenBalances = Record< Record> >; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenBalancesControllerState = { tokenBalances: TokenBalances; }; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenBalancesControllerGetStateAction = ControllerGetStateAction< typeof CONTROLLER, TokenBalancesControllerState >; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenBalancesControllerActions = | TokenBalancesControllerGetStateAction | TokenBalancesControllerMethodActions; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenBalancesControllerStateChangeEvent = ControllerStateChangeEvent; @@ -165,10 +177,16 @@ export type NativeBalanceEvent = { payload: unknown[]; }; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenBalancesControllerEvents = | TokenBalancesControllerStateChangeEvent | NativeBalanceEvent; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type AllowedActions = | NetworkControllerGetNetworkClientByIdAction | NetworkControllerGetStateAction @@ -185,6 +203,9 @@ export type AllowedActions = | KeyringControllerGetStateAction | AuthenticationController.AuthenticationControllerGetBearerTokenAction; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type AllowedEvents = | TokensControllerStateChangeEvent | PreferencesControllerStateChangeEvent @@ -198,6 +219,9 @@ export type AllowedEvents = | TransactionControllerTransactionConfirmedEvent | TransactionControllerIncomingTransactionsReceivedEvent; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenBalancesControllerMessenger = Messenger< typeof CONTROLLER, TokenBalancesControllerActions | AllowedActions, @@ -300,6 +324,9 @@ const MESSENGER_EXPOSED_METHODS = [ 'resetState', ] as const; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export class TokenBalancesController extends StaticIntervalPollingController<{ chainIds: ChainIdHex[]; }>()< @@ -509,6 +536,7 @@ export class TokenBalancesController extends StaticIntervalPollingController<{ } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Whether the controller is active (keyring is unlocked and user is onboarded). * When locked or not onboarded, balance updates should be skipped. * @@ -611,6 +639,9 @@ export class TokenBalancesController extends StaticIntervalPollingController<{ }; }; + /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ override _startPolling({ chainIds }: { chainIds: ChainIdHex[] }): void { this.#requestedChainIds = [...chainIds]; this.#isControllerPollingActive = true; @@ -684,6 +715,9 @@ export class TokenBalancesController extends StaticIntervalPollingController<{ this.#intervalPollingTimers.set(interval, timer); } + /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ override _stopPollingByPollingTokenSetId(tokenSetId: string): void { let chainsToStop: ChainIdHex[] = []; @@ -715,6 +749,9 @@ export class TokenBalancesController extends StaticIntervalPollingController<{ this.#intervalPollingTimers.clear(); } + /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ getChainPollingConfig(chainId: ChainIdHex): ChainPollingConfig { return ( this.#chainPollingConfig[chainId] ?? { @@ -723,6 +760,9 @@ export class TokenBalancesController extends StaticIntervalPollingController<{ ); } + /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ override async _executePoll({ chainIds, queryAllAccounts = false, @@ -733,6 +773,9 @@ export class TokenBalancesController extends StaticIntervalPollingController<{ await this.#executeUpdateBalances({ chainIds, queryAllAccounts }); } + /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ updateChainPollingConfigs( configs: Record, options: UpdateChainPollingConfigsOptions = { immediateUpdate: true }, @@ -747,6 +790,9 @@ export class TokenBalancesController extends StaticIntervalPollingController<{ } } + /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ async updateBalances(options: UpdateBalancesOptions = {}): Promise { if (!this.isActive) { return; @@ -1228,6 +1274,9 @@ export class TokenBalancesController extends StaticIntervalPollingController<{ } } + /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ resetState(): void { this.update(() => ({ tokenBalances: {} })); } @@ -1583,6 +1632,9 @@ export class TokenBalancesController extends StaticIntervalPollingController<{ } } + /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ override destroy(): void { this.#isControllerPollingActive = false; this.#intervalPollingTimers.forEach((timer) => clearInterval(timer)); diff --git a/packages/assets-controllers/src/TokenListController.ts b/packages/assets-controllers/src/TokenListController.ts index 066a24d2a2..f9b9ff788f 100644 --- a/packages/assets-controllers/src/TokenListController.ts +++ b/packages/assets-controllers/src/TokenListController.ts @@ -52,22 +52,37 @@ export type TokensChainsCache = { [chainId: Hex]: DataCache; }; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenListState = { tokensChainsCache: TokensChainsCache; }; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenListStateChange = ControllerStateChangeEvent< typeof name, TokenListState >; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenListControllerEvents = TokenListStateChange; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type GetTokenListState = ControllerGetStateAction< typeof name, TokenListState >; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenListControllerActions = GetTokenListState; type AllowedActions = @@ -78,6 +93,9 @@ type AllowedActions = type AllowedEvents = NetworkControllerStateChangeEvent; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokenListControllerMessenger = Messenger< typeof name, TokenListControllerActions | AllowedActions, @@ -93,6 +111,9 @@ const metadata: StateMetadata = { }, }; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export const getDefaultTokenListState = (): TokenListState => { return { tokensChainsCache: {}, @@ -105,6 +126,7 @@ type TokenListPollingInput = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Controller that passively polls on a set interval for the list of tokens from metaswaps api */ export class TokenListController extends StaticIntervalPollingController()< @@ -243,6 +265,7 @@ export class TokenListController extends StaticIntervalPollingController { if (this.#isDeprecated()) { @@ -546,8 +568,7 @@ export class TokenListController extends StaticIntervalPollingController { this.#stopPolling(); @@ -561,8 +582,7 @@ export class TokenListController extends StaticIntervalPollingController { // renaming this to avoid collision with base class @@ -615,6 +632,7 @@ export class TokenListController extends StaticIntervalPollingController; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The actions that can be performed using the {@link TokenRatesController}. */ export type TokenRatesControllerActions = TokenRatesControllerGetStateAction; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The event that {@link TokenRatesController} can emit. */ export type TokenRatesControllerStateChangeEvent = ControllerStateChangeEvent< @@ -142,11 +148,13 @@ export type TokenRatesControllerStateChangeEvent = ControllerStateChangeEvent< >; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The events that {@link TokenRatesController} can emit. */ export type TokenRatesControllerEvents = TokenRatesControllerStateChangeEvent; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The messenger of the {@link TokenRatesController} for communication. */ export type TokenRatesControllerMessenger = Messenger< @@ -165,6 +173,7 @@ const tokenRatesControllerMetadata: StateMetadata = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Get the default {@link TokenRatesController} state. * * @returns The default {@link TokenRatesController} state. @@ -182,6 +191,7 @@ export type TokenRatesPollingInput = { }; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Controller that passively polls on a set interval for token-to-fiat exchange rates * for tokens stored in the TokensController */ @@ -362,6 +372,7 @@ export class TokenRatesController extends StaticIntervalPollingController = { const controllerName = 'TokensController'; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokensControllerGetStateAction = ControllerGetStateAction< typeof controllerName, TokensControllerState >; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokensControllerActions = | TokensControllerGetStateAction | TokensControllerMethodActions; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The external actions available to the {@link TokensController}. */ export type AllowedActions = @@ -149,13 +157,22 @@ export type AllowedActions = | AccountsControllerGetSelectedAccountAction | AccountsControllerListAccountsAction; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokensControllerStateChangeEvent = ControllerStateChangeEvent< typeof controllerName, TokensControllerState >; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type TokensControllerEvents = TokensControllerStateChangeEvent; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export type AllowedEvents = | NetworkControllerStateChangeEvent | NetworkControllerNetworkDidChangeEvent @@ -163,6 +180,7 @@ export type AllowedEvents = | KeyringControllerAccountRemovedEvent; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * The messenger of the {@link TokensController}. */ export type TokensControllerMessenger = Messenger< @@ -171,6 +189,9 @@ export type TokensControllerMessenger = Messenger< TokensControllerEvents | AllowedEvents >; +/** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. + */ export const getDefaultTokensState = (): TokensControllerState => { return { allTokens: {}, @@ -191,6 +212,7 @@ const MESSENGER_EXPOSED_METHODS = [ ] as const; /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Controller that stores assets and exposes convenience methods */ export class TokensController extends BaseController< @@ -423,6 +445,7 @@ export class TokensController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Adds a token to the stored token list. * * @param options - The method argument object. @@ -536,6 +559,7 @@ export class TokensController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Add a batch of tokens. * * @param tokensToImport - Array of tokens to import. @@ -613,6 +637,7 @@ export class TokensController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Ignore a batch of tokens. * * @param tokenAddressesToIgnore - Array of token addresses to ignore. @@ -668,6 +693,7 @@ export class TokensController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Adds a batch of detected tokens to the stored token list. * * @param incomingDetectedTokens - Array of detected tokens to be added or updated. @@ -771,6 +797,7 @@ export class TokensController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Adds isERC721 field to token object. This is called when a user attempts to add tokens that * were previously added which do not yet had isERC721 field. * @@ -864,6 +891,7 @@ export class TokensController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Adds a new suggestedAsset to the list of watched assets. * Parameters will be validated according to the asset type being watched. * @@ -1118,6 +1146,7 @@ export class TokensController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Removes all tokens from the ignored list. */ clearIgnoredTokens() { @@ -1173,6 +1202,7 @@ export class TokensController extends BaseController< } /** + * @deprecated This is deprecated and will be removed in a future version. Use `AssetsController` from `@metamask/assets-controller` instead. * Reset the controller state to the default state. */ resetState() {