From b045386ccd4ec3c325afffb59b2e55adc650ce2e Mon Sep 17 00:00:00 2001 From: Canh Trinh Date: Sat, 13 Jan 2024 09:46:29 -0500 Subject: [PATCH] chore: add symbol override --- .../routers/erc20/getERC20TokenDetails.ts | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/apps/maestro/src/server/routers/erc20/getERC20TokenDetails.ts b/apps/maestro/src/server/routers/erc20/getERC20TokenDetails.ts index 0cfdf8a25..025e6a6cc 100644 --- a/apps/maestro/src/server/routers/erc20/getERC20TokenDetails.ts +++ b/apps/maestro/src/server/routers/erc20/getERC20TokenDetails.ts @@ -9,6 +9,13 @@ import { ExtendedWagmiChainConfig } from "~/config/evm-chains"; import { hex40Literal } from "~/lib/utils/validation"; import { publicProcedure } from "~/server/trpc"; +//TODO: migrate to kv store? +const overrides: Record<`0x${string}`, Record> = { + "0x4200000000000000000000000000000000000042": { + symbol: "axlOP", + }, +}; + export const getERC20TokenDetails = publicProcedure .input( z.object({ @@ -32,7 +39,11 @@ export const getERC20TokenDetails = publicProcedure ); try { - const details = await getTokenPublicDetails(client, config); + const details = await getTokenPublicDetails( + client, + config, + input.tokenAddress + ); if (details) { return details; @@ -55,7 +66,7 @@ export const getERC20TokenDetails = publicProcedure input.tokenAddress ); - return getTokenPublicDetails(client, chainConfig); + return getTokenPublicDetails(client, chainConfig, input.tokenAddress); } catch (error) { // If we get a TRPC error, we throw it if (error instanceof TRPCError) { @@ -71,7 +82,8 @@ export const getERC20TokenDetails = publicProcedure async function getTokenPublicDetails( client: IERC20BurnableMintableClient, - chainConfig: ExtendedWagmiChainConfig + chainConfig: ExtendedWagmiChainConfig, + tokenAddress: `0x${string}` ) { invariant(client.chain, "client.chain must be defined"); @@ -83,13 +95,15 @@ async function getTokenPublicDetails( client.read("pendingOwner").catch(always(null)), ]); + const override = overrides[tokenAddress]; + return { chainId: client.chain.id, chainName: client.chain.name, axelarChainId: chainConfig.axelarChainId, axelarChainName: chainConfig.axelarChainName, name, - symbol, + symbol: override?.symbol ?? symbol, decimals, owner, pendingOwner,