From 34dde24da565eae22ac80084216b2c19e063237d Mon Sep 17 00:00:00 2001 From: Ulisses Ferreira Date: Wed, 2 Sep 2026 18:31:15 +0100 Subject: [PATCH 1/2] feat(tron-wallet-snap)!: remove asset handler entry points Remove the onAssetsLookup, onAssetsConversion, onAssetHistoricalPrice, and onAssetsMarketData entry points, along with the now-unused AssetsHandler and the endowment:assets permission. Closes WPN-2015 --- packages/tron-wallet-snap/CHANGELOG.md | 4 + packages/tron-wallet-snap/jest.config.mjs | 6 +- packages/tron-wallet-snap/snap.manifest.json | 5 +- packages/tron-wallet-snap/src/context.ts | 11 +-- .../src/handlers/assets/assets.ts | 80 ------------------- packages/tron-wallet-snap/src/index.ts | 25 ------ 6 files changed, 10 insertions(+), 121 deletions(-) delete mode 100644 packages/tron-wallet-snap/src/handlers/assets/assets.ts diff --git a/packages/tron-wallet-snap/CHANGELOG.md b/packages/tron-wallet-snap/CHANGELOG.md index 29b0b54d0..4ab703a96 100644 --- a/packages/tron-wallet-snap/CHANGELOG.md +++ b/packages/tron-wallet-snap/CHANGELOG.md @@ -13,6 +13,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **BREAKING** Bump `@metamask/keyring-snap-sdk` from `^9.2.1` to `^10.0.0` ([#214](https://github.com/MetaMask/internal-snaps/pull/214)) - **BREAKING** Bump `@metamask/snaps-sdk` from `^11.2.0` to `^12.0.1` ([#214](https://github.com/MetaMask/internal-snaps/pull/214)) +### Removed + +- **BREAKING** Remove the `onAssetsLookup`, `onAssetsConversion`, `onAssetHistoricalPrice`, and `onAssetsMarketData` asset handler entry points, along with the now-unused `AssetsHandler` and the `endowment:assets` permission ([#263](https://github.com/MetaMask/internal-snaps/pull/263)) + ## [3.2.0] ### Added diff --git a/packages/tron-wallet-snap/jest.config.mjs b/packages/tron-wallet-snap/jest.config.mjs index 299fdc07d..45d213642 100644 --- a/packages/tron-wallet-snap/jest.config.mjs +++ b/packages/tron-wallet-snap/jest.config.mjs @@ -24,10 +24,10 @@ const config = { // An object that configures minimum threshold enforcement for coverage results coverageThreshold: { global: { - branches: 69.96, + branches: 69.8, functions: 75.86, - lines: 82.61, - statements: 82.62, + lines: 81.19, + statements: 81.16, }, }, diff --git a/packages/tron-wallet-snap/snap.manifest.json b/packages/tron-wallet-snap/snap.manifest.json index a9fc2701f..32fd823ea 100644 --- a/packages/tron-wallet-snap/snap.manifest.json +++ b/packages/tron-wallet-snap/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/internal-snaps.git" }, "source": { - "shasum": "ywXNBsBG0fniejuwfBWRFL2c2zEFyAJWiqiIhzNKG3Q=", + "shasum": "M/mWORo7BVWapJxmx9xrCZ4ENvT7F0uVHgmTzNgoeYU=", "location": { "npm": { "filePath": "dist/bundle.js", @@ -61,9 +61,6 @@ } ] }, - "endowment:assets": { - "scopes": ["tron:728126428"] - }, "endowment:messenger": { "actions": [ "RemoteFeatureFlagController:getState", diff --git a/packages/tron-wallet-snap/src/context.ts b/packages/tron-wallet-snap/src/context.ts index c400f1444..eff133598 100644 --- a/packages/tron-wallet-snap/src/context.ts +++ b/packages/tron-wallet-snap/src/context.ts @@ -17,7 +17,7 @@ import { TokenApiClient } from './clients/token-api/TokenApiClient'; import { TronHttpClient } from './clients/tron-http/TronHttpClient'; import { TrongridApiClient } from './clients/trongrid/TrongridApiClient'; import { TronWebFactory } from './clients/tronweb/TronWebFactory'; -import { AssetsHandler } from './handlers/assets/assets'; + import { ClientRequestHandler } from './handlers/clientRequest/clientRequest'; import { CronHandler } from './handlers/cronjob/cronjob'; import { KeyringHandler } from './handlers/keyring/keyring'; @@ -54,7 +54,7 @@ import logger, { noOpLogger } from './utils/logger'; * 1. Core services (ConfigProvider, State, Connection) * 2. Repositories (AssetsRepository, TransactionsRepository, AccountsRepository) * 3. Business services (AssetsService, TransactionsService, AccountsService) - * 4. Handlers (AssetsHandler, CronHandler, KeyringHandler, RpcHandler, UserInputHandler) + * 4. Handlers (CronHandler, KeyringHandler, RpcHandler, UserInputHandler) */ export const configProvider = new ConfigProvider(); @@ -216,10 +216,6 @@ const confirmationHandler = new ConfirmationHandler({ /** * Handlers */ -const assetsHandler = new AssetsHandler({ - logger, - assetsService, -}); const clientRequestHandler = new ClientRequestHandler({ logger, snapClient, @@ -290,7 +286,6 @@ export type SnapExecutionContext = { /** * Handlers */ - assetsHandler: AssetsHandler; cronHandler: CronHandler; clientRequestHandler: ClientRequestHandler; keyringHandler: KeyringHandler; @@ -325,7 +320,6 @@ const snapContext: SnapExecutionContext = { /** * Handlers */ - assetsHandler, clientRequestHandler, cronHandler, keyringHandler, @@ -337,7 +331,6 @@ export { /** * Handlers */ - assetsHandler, clientRequestHandler, cronHandler, keyringHandler, diff --git a/packages/tron-wallet-snap/src/handlers/assets/assets.ts b/packages/tron-wallet-snap/src/handlers/assets/assets.ts deleted file mode 100644 index 5a35db6c2..000000000 --- a/packages/tron-wallet-snap/src/handlers/assets/assets.ts +++ /dev/null @@ -1,80 +0,0 @@ -import type { Logger } from '@metamask/snap-networks-utils'; -import type { - OnAssetHistoricalPriceArguments, - OnAssetHistoricalPriceResponse, - OnAssetsConversionArguments, - OnAssetsConversionResponse, - OnAssetsLookupArguments, - OnAssetsLookupResponse, - OnAssetsMarketDataArguments, - OnAssetsMarketDataResponse, -} from '@metamask/snaps-sdk'; - -import type { AssetsService } from '../../services/assets/AssetsService'; - -export class AssetsHandler { - readonly #logger: Logger; - - readonly #assetsService: AssetsService; - - constructor({ - logger, - assetsService, - }: { - logger: Logger; - assetsService: AssetsService; - }) { - this.#logger = logger.withPrefix('[🪙 AssetsHandler]'); - this.#assetsService = assetsService; - } - - async onAssetHistoricalPrice( - params: OnAssetHistoricalPriceArguments, - ): Promise { - this.#logger.log('[📈 onAssetHistoricalPrice]', params); - - const { from, to } = params; - - const historicalPrice = await this.#assetsService.getHistoricalPrice( - from, - to, - ); - - return { - historicalPrice, - }; - } - - async onAssetsConversion( - params: OnAssetsConversionArguments, - ): Promise { - this.#logger.log('[💱 onAssetsConversion]'); - - const { conversions } = params; - - const conversionRates = - await this.#assetsService.getMultipleTokenConversions(conversions); - - return { - conversionRates, - }; - } - - async onAssetsLookup( - params: OnAssetsLookupArguments, - ): Promise { - const assets = await this.#assetsService.getAssetsMetadata(params.assets); - - return { assets }; - } - - async onAssetsMarketData( - params: OnAssetsMarketDataArguments, - ): Promise { - const marketData = await this.#assetsService.getMultipleTokensMarketData( - params.assets, - ); - - return { marketData }; - } -} diff --git a/packages/tron-wallet-snap/src/index.ts b/packages/tron-wallet-snap/src/index.ts index 80fb5f84d..4493952cd 100644 --- a/packages/tron-wallet-snap/src/index.ts +++ b/packages/tron-wallet-snap/src/index.ts @@ -1,8 +1,4 @@ import type { - OnAssetHistoricalPriceHandler, - OnAssetsConversionHandler, - OnAssetsLookupHandler, - OnAssetsMarketDataHandler, OnClientRequestHandler, OnCronjobHandler, OnKeyringRequestHandler, @@ -11,7 +7,6 @@ import type { } from '@metamask/snaps-sdk'; import { - assetsHandler, clientRequestHandler, cronHandler, keyringHandler, @@ -24,26 +19,6 @@ import { withCatchAndThrowSnapError } from './utils/errors'; * Register all handlers */ -export const onAssetHistoricalPrice: OnAssetHistoricalPriceHandler = async ( - args, -) => - withCatchAndThrowSnapError(async () => - assetsHandler.onAssetHistoricalPrice(args), - ); - -export const onAssetsConversion: OnAssetsConversionHandler = async (args) => - withCatchAndThrowSnapError(async () => - assetsHandler.onAssetsConversion(args), - ); - -export const onAssetsLookup: OnAssetsLookupHandler = async (args) => - withCatchAndThrowSnapError(async () => assetsHandler.onAssetsLookup(args)); - -export const onAssetsMarketData: OnAssetsMarketDataHandler = async (args) => - withCatchAndThrowSnapError(async () => - assetsHandler.onAssetsMarketData(args), - ); - export const onClientRequest: OnClientRequestHandler = async ({ request }) => withCatchAndThrowSnapError(async () => clientRequestHandler.handle(request)); From 1920846186513ed519c911a23e0debedc58a4882 Mon Sep 17 00:00:00 2001 From: Ulisses Ferreira Date: Wed, 2 Sep 2026 18:38:03 +0100 Subject: [PATCH 2/2] chore(tron-wallet-snap): fix import formatting --- packages/tron-wallet-snap/src/context.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/tron-wallet-snap/src/context.ts b/packages/tron-wallet-snap/src/context.ts index eff133598..45aa7ec5e 100644 --- a/packages/tron-wallet-snap/src/context.ts +++ b/packages/tron-wallet-snap/src/context.ts @@ -17,7 +17,6 @@ import { TokenApiClient } from './clients/token-api/TokenApiClient'; import { TronHttpClient } from './clients/tron-http/TronHttpClient'; import { TrongridApiClient } from './clients/trongrid/TrongridApiClient'; import { TronWebFactory } from './clients/tronweb/TronWebFactory'; - import { ClientRequestHandler } from './handlers/clientRequest/clientRequest'; import { CronHandler } from './handlers/cronjob/cronjob'; import { KeyringHandler } from './handlers/keyring/keyring';