From 3844cbff9ade8aa27e0045eb12776b9704ab8197 Mon Sep 17 00:00:00 2001 From: Francis Nepomuceno Date: Tue, 25 Aug 2026 16:14:49 -0400 Subject: [PATCH] chore: update token metadata --- .../src/mappers/api-transaction-mapper.ts | 16 ++++-- .../src/mappers/helpers/transactions.test.ts | 51 ------------------- .../src/mappers/helpers/transactions.ts | 23 --------- packages/client-utils/src/types.ts | 6 +++ 4 files changed, 18 insertions(+), 78 deletions(-) diff --git a/packages/client-utils/src/mappers/api-transaction-mapper.ts b/packages/client-utils/src/mappers/api-transaction-mapper.ts index 7169eb363e..cda80effc8 100644 --- a/packages/client-utils/src/mappers/api-transaction-mapper.ts +++ b/packages/client-utils/src/mappers/api-transaction-mapper.ts @@ -23,9 +23,9 @@ import { getFees, getNftPaymentTransfer, getTokenAmountFromTransfer, - getTokenMetadataFromKnownToken, parseValueTransfers, } from './helpers/transactions.js'; +import { getKnownTokenMetadata } from './helpers/token-metadata.js'; /** * Maps an indexed API transaction into the shared activity item shape. @@ -102,9 +102,17 @@ export function mapApiTransaction({ const assetId = contractAddress ? formatAddressToAssetId(contractAddress, chainId) : undefined; - const token = - getTokenMetadataFromKnownToken(contractAddress, direction, chainId) ?? - (assetId ? { direction, assetId } : undefined); + + const tokenMetadata = getKnownTokenMetadata(chainId, contractAddress); + const token = assetId + ? { + direction, + assetType: 'erc20', + symbol: tokenMetadata?.symbol, + decimals: tokenMetadata?.decimals, + assetId: tokenMetadata?.assetId ?? assetId, + } + : undefined; return { type: 'approveSpendingCap', diff --git a/packages/client-utils/src/mappers/helpers/transactions.test.ts b/packages/client-utils/src/mappers/helpers/transactions.test.ts index a060a5fde3..09def626cb 100644 --- a/packages/client-utils/src/mappers/helpers/transactions.test.ts +++ b/packages/client-utils/src/mappers/helpers/transactions.test.ts @@ -1,11 +1,9 @@ -import * as tokenMetadata from './token-metadata.js'; import { getFees, getLocalTransactionFees, getLocalTransactionStatus, getNftPaymentTransfer, getTokenAmountFromTransfer, - getTokenMetadataFromKnownToken, isNftStandard, parseValueTransfers, } from './transactions.js'; @@ -202,55 +200,6 @@ describe('transaction helpers', () => { }); }); - describe('getTokenMetadataFromKnownToken', () => { - it('returns metadata without a symbol when it is missing', () => { - jest.spyOn(tokenMetadata, 'getKnownTokenMetadata').mockReturnValue({ - decimals: 18, - assetId: 'eip155:1/erc20:0x1111111111111111111111111111111111111111', - }); - - expect( - getTokenMetadataFromKnownToken( - '0x1111111111111111111111111111111111111111', - 'out', - 'eip155:1', - ), - ).toStrictEqual({ - direction: 'out', - decimals: 18, - assetId: 'eip155:1/erc20:0x1111111111111111111111111111111111111111', - assetType: 'erc20', - }); - }); - - it('returns partial metadata when some fields are missing', () => { - jest.spyOn(tokenMetadata, 'getKnownTokenMetadata').mockReturnValue({ - symbol: 'TKN', - }); - - expect( - getTokenMetadataFromKnownToken( - '0x1111111111111111111111111111111111111111', - 'out', - 'eip155:1', - ), - ).toMatchObject({ - direction: 'out', - symbol: 'TKN', - }); - }); - - it('returns undefined for unknown tokens', () => { - expect( - getTokenMetadataFromKnownToken( - '0x1111111111111111111111111111111111111111', - 'out', - 'eip155:1', - ), - ).toBeUndefined(); - }); - }); - describe('getLocalTransactionFees', () => { it('resolves fee assetId via ETH symbol when chainlist only has testnet slip44:1', () => { // 0x539 = Geth Testnet (1337); chainlist slip44 is 1, which we skip. diff --git a/packages/client-utils/src/mappers/helpers/transactions.ts b/packages/client-utils/src/mappers/helpers/transactions.ts index e44aba7ca2..edb6142719 100644 --- a/packages/client-utils/src/mappers/helpers/transactions.ts +++ b/packages/client-utils/src/mappers/helpers/transactions.ts @@ -25,7 +25,6 @@ import { getNativeAsset, resolveNativeAssetId, } from './caip.js'; -import { getKnownTokenMetadata } from './token-metadata.js'; // Adds optional `isSmartTransaction` to `TransactionMeta`. export type TransactionGroup = { @@ -408,25 +407,3 @@ export function getTokenAmountFromTransfer( ...(assetType ? { assetType } : {}), }; } - -export function getTokenMetadataFromKnownToken( - contractAddress: string | undefined, - direction: TokenAmount['direction'], - chainId: CaipChainId, -): TokenAmount | undefined { - const tokenMetadata = getKnownTokenMetadata(chainId, contractAddress); - - if (!tokenMetadata) { - return undefined; - } - - return { - direction, - assetType: 'erc20', - ...(tokenMetadata.symbol ? { symbol: tokenMetadata.symbol } : {}), - ...(tokenMetadata.decimals === undefined - ? {} - : { decimals: tokenMetadata.decimals }), - ...(tokenMetadata.assetId ? { assetId: tokenMetadata.assetId } : {}), - }; -} diff --git a/packages/client-utils/src/types.ts b/packages/client-utils/src/types.ts index c305e255e0..cbaf23bc2d 100644 --- a/packages/client-utils/src/types.ts +++ b/packages/client-utils/src/types.ts @@ -115,6 +115,7 @@ export type ActivityItem = 'approveSpendingCap' | 'revokeSpendingCap' | 'increaseSpendingCap', { from?: string; + to?: string; token?: TokenAmount; fees?: Fee[]; } @@ -123,6 +124,7 @@ export type ActivityItem = 'assetActivation' | 'assetDeactivation', { from?: string; + to?: string; token?: TokenAmount; fees?: Fee[]; } @@ -155,6 +157,7 @@ export type ActivityItem = | 'unwrap', { from?: string; + to?: string; sourceToken?: TokenAmount; destinationToken?: TokenAmount; fees?: Fee[]; @@ -164,6 +167,7 @@ export type ActivityItem = 'buy' | 'claim' | 'deposit' | 'claimMusdBonus', { from?: string; + to?: string; token?: TokenAmount; } > @@ -171,6 +175,7 @@ export type ActivityItem = 'perpsAddFunds' | 'perpsWithdraw', { from?: string; + to?: string; fiat?: FiatAmount; networkFee?: FiatAmount; token?: TokenAmount; @@ -225,6 +230,7 @@ export type ActivityItem = 'rampBuy' | 'rampSell', { from?: string; + to?: string; fiat?: FiatAmount; token?: TokenAmount; fees?: Fee[];