Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
65c376b
refactor(tron-wallet-snap): extract shared asset utils and inject Sna…
ulissesferreira Aug 10, 2026
82f1e43
chore(tron-wallet-snap): link changelog entries to #143
ulissesferreira Aug 10, 2026
f86b1f1
fix(tron-wallet-snap): format asset utils and sync manifest shasum fr…
ulissesferreira Aug 10, 2026
3287588
fix(tron-wallet-snap): split type import in isSnapOwnedAsset
ulissesferreira Aug 10, 2026
79f6a12
feat(tron-wallet-snap): add CoreAssetsAdapter and mapControllerAsset
ulissesferreira Aug 10, 2026
13bfa6c
chore(tron-wallet-snap): link changelog entry to #144
ulissesferreira Aug 10, 2026
a42b752
fix(tron-wallet-snap): sync manifest shasum after CoreAssetsAdapter r…
ulissesferreira Aug 10, 2026
c594c3b
fix(tron-wallet-snap): sync CI manifest shasum and format CoreAssetsA…
ulissesferreira Aug 10, 2026
9057509
fix(tron-wallet-snap): add test return types and sync manifest shasum…
ulissesferreira Aug 10, 2026
191ba4b
chore: prune stale eslint suppressions in AssetsService.test.ts
ulissesferreira Aug 10, 2026
c043490
chore: format eslint-suppressions.json
ulissesferreira Aug 10, 2026
98134fb
feat(tron-wallet-snap): route asset reads through Core when migration…
ulissesferreira Aug 10, 2026
fa7f893
chore(tron-wallet-snap): fix Unreleased changelog formatting
ulissesferreira Aug 10, 2026
48860e3
feat(tron-wallet-snap): route snap-owned fetch through Core when migr…
ulissesferreira Aug 10, 2026
e73dd2e
fix(tron-wallet-snap): sync manifest shasum and format tests after re…
ulissesferreira Aug 10, 2026
c0bae22
fix(tron-wallet-snap): sync manifest shasum for CI Linux build
ulissesferreira Aug 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 0 additions & 103 deletions eslint-suppressions.json
Original file line number Diff line number Diff line change
Expand Up @@ -1352,15 +1352,7 @@
"count": 20
}
},
"packages/tron-wallet-snap/src/caching/InMemoryCache.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/caching/StateCache.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
},
"no-restricted-syntax": {
"count": 1
}
Expand All @@ -1375,20 +1367,7 @@
"count": 2
}
},
"packages/tron-wallet-snap/src/clients/price-api/PriceApiClient.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/clients/price-api/types.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/clients/security-alerts-api/utils.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
},
"no-restricted-syntax": {
"count": 5
}
Expand All @@ -1401,11 +1380,6 @@
"count": 1
}
},
"packages/tron-wallet-snap/src/clients/token-api/TokenApiClient.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/clients/trongrid/TrongridApiClient.test.ts": {
"require-atomic-updates": {
"count": 1
Expand All @@ -1424,16 +1398,6 @@
"count": 42
}
},
"packages/tron-wallet-snap/src/handlers/clientRequest/clientRequest.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/handlers/clientRequest/validation.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/handlers/cronjob/cronjob.test.tsx": {
"@typescript-eslint/explicit-function-return-type": {
"count": 2
Expand All @@ -1452,34 +1416,16 @@
"count": 1
}
},
"packages/tron-wallet-snap/src/services/accounts/AccountsService.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/services/assets/AssetsRepository.test.ts": {
"@typescript-eslint/explicit-function-return-type": {
"count": 2
}
},
"packages/tron-wallet-snap/src/services/assets/AssetsService.test.ts": {
"@typescript-eslint/explicit-function-return-type": {
"count": 3
},
"@typescript-eslint/no-explicit-any": {
"count": 1
}
},
"packages/tron-wallet-snap/src/services/assets/adapters/SnapAssetsAdapter.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/services/config/ConfigProvider.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/services/send/FeeCalculatorService.ts": {
"no-restricted-syntax": {
"count": 1
Expand All @@ -1493,11 +1439,6 @@
"count": 15
}
},
"packages/tron-wallet-snap/src/services/send/SendService.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/services/send/TransactionExpirationRefresherService.test.ts": {
"@typescript-eslint/explicit-function-return-type": {
"count": 5
Expand All @@ -1508,11 +1449,6 @@
"count": 7
}
},
"packages/tron-wallet-snap/src/services/staking/StakingService.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/services/state/State.test.ts": {
"@typescript-eslint/explicit-function-return-type": {
"count": 1
Expand All @@ -1521,11 +1457,6 @@
"count": 1
}
},
"packages/tron-wallet-snap/src/services/transaction-expiration-refresher/TransactionExpirationRefresherService.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/services/transaction-scan/TransactionScanService.ts": {
"no-restricted-syntax": {
"count": 5
Expand All @@ -1542,14 +1473,6 @@
},
"@typescript-eslint/no-explicit-any": {
"count": 7
},
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/services/wallet/WalletService.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/ui/confirmation/components/TransactionAlert/TransactionAlert.test.tsx": {
Expand All @@ -1568,9 +1491,6 @@
"packages/tron-wallet-snap/src/ui/confirmation/views/ConfirmSignMessage/render.test.tsx": {
"@typescript-eslint/no-explicit-any": {
"count": 3
},
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/ui/confirmation/views/ConfirmSignTransaction/ConfirmSignTransaction.test.tsx": {
Expand All @@ -1581,14 +1501,6 @@
"packages/tron-wallet-snap/src/ui/confirmation/views/ConfirmSignTransaction/render.test.tsx": {
"@typescript-eslint/no-explicit-any": {
"count": 14
},
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/ui/confirmation/views/ConfirmSignTransaction/render.tsx": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/ui/confirmation/views/ConfirmTransactionRequest/ConfirmTransactionRequest.test.tsx": {
Expand All @@ -1604,26 +1516,11 @@
"count": 2
}
},
"packages/tron-wallet-snap/src/utils/deriveTronFromCoinTypeNode.test.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/utils/deriveTronFromCoinTypeNode.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/utils/getExplorerUrl.test.ts": {
"n/no-process-env": {
"count": 3
}
},
"packages/tron-wallet-snap/src/validation/keyring-structs.test.ts": {
"import-x/no-extraneous-dependencies": {
"count": 1
}
},
"packages/tron-wallet-snap/src/validation/transaction.test.ts": {
"@typescript-eslint/no-explicit-any": {
"count": 1
Expand Down
10 changes: 10 additions & 0 deletions packages/tron-wallet-snap/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Route fungible asset reads and snap-owned fetch/save through Core AssetsController when the Tron assets migration flag is active ([#145](https://github.com/MetaMask/internal-snaps/pull/145))
- Add `CoreAssetsAdapter` and `mapControllerAsset` for AssetsController integration (wired unused until routing lands) ([#144](https://github.com/MetaMask/internal-snaps/pull/144))

### Changed

- Extract shared asset util functions and inject `SnapAssetsAdapter` from `context` into `AssetsService` ([#143](https://github.com/MetaMask/internal-snaps/pull/143))
- Rename `getByKeyringAccountId` to `getAccountAssets` (with essential-asset synthesis) and update keyring callers ([#143](https://github.com/MetaMask/internal-snaps/pull/143))

## [3.1.0]

### Added
Expand Down
1 change: 1 addition & 0 deletions packages/tron-wallet-snap/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
"@metamask/snaps-jest": "^10.2.0",
"@metamask/snaps-sdk": "^11.2.0",
"@metamask/superstruct": "^3.4.1",
"@metamask/utils": "^11.9.0",
"@types/lodash": "^4.17.15",
"async-mutex": "^0.5.0",
"bignumber.js": "^9.3.1",
Expand Down
2 changes: 1 addition & 1 deletion packages/tron-wallet-snap/snap.manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"url": "https://github.com/MetaMask/internal-snaps.git"
},
"source": {
"shasum": "e7sZ7XY8fvO4GLcznlb5N/Fh95+ANPKS/GzYoHHz2pc=",
"shasum": "/+UBD1D/nG2/4YyYITJKLK8Nc6DcA979PExNHNV9czY=",
"location": {
"npm": {
"filePath": "dist/bundle.js",
Expand Down
19 changes: 16 additions & 3 deletions packages/tron-wallet-snap/src/context.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ import { RpcHandler } from './handlers/rpc/rpc';
import { UserInputHandler } from './handlers/user-input/userInput';
import { AccountsRepository } from './services/accounts/AccountsRepository';
import { AccountsService } from './services/accounts/AccountsService';
import { CoreAssetsAdapter } from './services/assets/adapters/CoreAssetsAdapter';
import { SnapAssetsAdapter } from './services/assets/adapters/SnapAssetsAdapter';
import { AssetsRepository } from './services/assets/AssetsRepository';
import { AssetsService } from './services/assets/AssetsService';
import { ConfigProvider } from './services/config';
Expand Down Expand Up @@ -113,8 +115,7 @@ const securityAlertsApiClient = new SecurityAlertsApiClient(
logger,
);

// Business Services
const assetsService = new AssetsService({
const snapAssetsAdapter = new SnapAssetsAdapter({
logger,
state,
assetsRepository,
Expand All @@ -123,8 +124,20 @@ const assetsService = new AssetsService({
priceApiClient,
tokenApiClient,
snapClient,
remoteFeatureFlagsProvider,
configProvider,
});
const coreAssetsAdapter = new CoreAssetsAdapter({
logger,
assetsProvider,
trongridApiClient,
tronHttpClient,
});

// Business Services
const assetsService = new AssetsService({
snapAdapter: snapAssetsAdapter,
coreAdapter: coreAssetsAdapter,
remoteFeatureFlagsProvider,
});

const transactionsService = new TransactionsService({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ describe('KeyringHandler', () => {
}),
} as unknown as jest.Mocked<AccountsService>;
mockAssetsService = {
getByKeyringAccountId: jest.fn().mockResolvedValue([]),
getAccountAssets: jest.fn().mockResolvedValue([]),
} as unknown as jest.Mocked<AssetsService>;
mockTransactionsService = {
checkAddressActivity: jest.fn(),
Expand Down Expand Up @@ -649,7 +649,7 @@ describe('KeyringHandler', () => {
const result = await keyringHandler.getAccountAssets(mockAccount.id);

expect(result).toStrictEqual([]);
expect(mockAssetsService.getByKeyringAccountId).toHaveBeenCalledWith(
expect(mockAssetsService.getAccountAssets).toHaveBeenCalledWith(
mockAccount.id,
);
});
Expand Down
5 changes: 2 additions & 3 deletions packages/tron-wallet-snap/src/handlers/keyring/keyring.ts
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ export class KeyringHandler implements KeyringSnapRpc {
this.#logger.info('Listing account assets', { accountId });

const assetEntities =
await this.#assetsService.getByKeyringAccountId(accountId);
await this.#assetsService.getAccountAssets(accountId);
const result = assetEntities
.filter(
(asset) =>
Expand Down Expand Up @@ -280,8 +280,7 @@ export class KeyringHandler implements KeyringSnapRpc {

await this.#getAccountOrThrow(accountId);

const assetsList =
await this.#assetsService.getByKeyringAccountId(accountId);
const assetsList = await this.#assetsService.getAccountAssets(accountId);

const assetsToUse = assetsList
.filter((asset) => assets.includes(asset.assetType))
Expand Down
Loading