From 41b888a5ccc9c568377f39d29bd783f8db96da46 Mon Sep 17 00:00:00 2001 From: Luka Isailovic Date: Wed, 15 Jan 2025 15:06:19 +0100 Subject: [PATCH] chore: add USDT (#804) * chore: add USDT * chore: add USDT to modal * chore: remove USDT on base * chore: filter based on the token network support * chore: remove .env --- .../dapps/chain-abstraction-demo/.env.example | 1 + .../dapps/chain-abstraction-demo/.gitignore | 1 + .../ChooseNetworkView.tsx | 36 +++++++++++-------- .../chain-abstraction-demo/consts/tokens.ts | 15 ++++++++ .../chain-abstraction-demo/data/EIP155Data.ts | 10 +++--- 5 files changed, 44 insertions(+), 19 deletions(-) create mode 100644 advanced/dapps/chain-abstraction-demo/.env.example diff --git a/advanced/dapps/chain-abstraction-demo/.env.example b/advanced/dapps/chain-abstraction-demo/.env.example new file mode 100644 index 000000000..a4dcc56df --- /dev/null +++ b/advanced/dapps/chain-abstraction-demo/.env.example @@ -0,0 +1 @@ +NEXT_PUBLIC_PROJECT_ID= \ No newline at end of file diff --git a/advanced/dapps/chain-abstraction-demo/.gitignore b/advanced/dapps/chain-abstraction-demo/.gitignore index fd3dbb571..00bba9bb2 100644 --- a/advanced/dapps/chain-abstraction-demo/.gitignore +++ b/advanced/dapps/chain-abstraction-demo/.gitignore @@ -27,6 +27,7 @@ yarn-error.log* # local env files .env*.local +.env # vercel .vercel diff --git a/advanced/dapps/chain-abstraction-demo/components/gift-donut-modal-views/ChooseNetworkView.tsx b/advanced/dapps/chain-abstraction-demo/components/gift-donut-modal-views/ChooseNetworkView.tsx index 32d110dfe..5f1235afe 100644 --- a/advanced/dapps/chain-abstraction-demo/components/gift-donut-modal-views/ChooseNetworkView.tsx +++ b/advanced/dapps/chain-abstraction-demo/components/gift-donut-modal-views/ChooseNetworkView.tsx @@ -10,8 +10,9 @@ import { GiftDonutModalViewProps, } from "@/controllers/GiftDonutModalManager"; import { Button } from "../ui/button"; -import { useAppKitAccount, useAppKitNetwork } from "@reown/appkit/react"; +import { useAppKitNetwork } from "@reown/appkit/react"; import { toast } from "sonner"; +import { getSupportedNetworks } from "@/consts/tokens"; function ChooseNetworkView({ onViewChange, onClose }: GiftDonutModalViewProps) { return ( @@ -38,32 +39,39 @@ function ChooseNetworkView({ onViewChange, onClose }: GiftDonutModalViewProps) { function NetworkList({ className }: React.ComponentProps<"form">) { const selectedNetwork = giftDonutModalManager.getNetwork(); + const selectedToken = giftDonutModalManager.getToken(); + const tokenSupportedNetworks = getSupportedNetworks(selectedToken.name); + const { switchNetwork, caipNetwork } = useAppKitNetwork(); const [network, setNetwork] = React.useState( - selectedNetwork, + selectedNetwork ); const setSelectedNetwork = (network: Network) => { setNetwork(network); giftDonutModalManager.setNetwork(network); - if(caipNetwork?.id !== network.chainId){ + if (caipNetwork?.id !== network.chainId) { switchNetwork(network.chain); - toast.info("Switching Network from " + caipNetwork?.name + " to " + network.name,) + toast.info( + "Switching Network from " + caipNetwork?.name + " to " + network.name + ); } }; return (
- {supportedNetworks.map((networkItem, index) => ( -
- setSelectedNetwork(networkItem)} - /> - {supportedNetworks.length - 1 !== index && } -
- ))} + {supportedNetworks + .filter((network) => tokenSupportedNetworks.includes(network.chainId)) + .map((networkItem, index) => ( +
+ setSelectedNetwork(networkItem)} + /> + {supportedNetworks.length - 1 !== index && } +
+ ))}
); } diff --git a/advanced/dapps/chain-abstraction-demo/consts/tokens.ts b/advanced/dapps/chain-abstraction-demo/consts/tokens.ts index af443e024..ae1f907a9 100644 --- a/advanced/dapps/chain-abstraction-demo/consts/tokens.ts +++ b/advanced/dapps/chain-abstraction-demo/consts/tokens.ts @@ -5,7 +5,22 @@ export const usdcTokenAddresses: Record = { 10: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", // Optimism 8453: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // Base }; +export const usdtTokenAddresses: Record = { + 42161: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9", // Arbitrum + 10: "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58", // Optimism + // 8453: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2", // Base - No liqiduty +}; export const tokenAddresses: Record> = { USDC: usdcTokenAddresses, + USDT: usdtTokenAddresses +}; + +export const getSupportedNetworks = (token: string): number[] => { + const tokenNetworks = tokenAddresses[token]; + if (!tokenNetworks) { + throw new Error(`Token ${token} not found`); + } + + return Object.keys(tokenNetworks).map(Number); }; diff --git a/advanced/dapps/chain-abstraction-demo/data/EIP155Data.ts b/advanced/dapps/chain-abstraction-demo/data/EIP155Data.ts index 003cadf3b..1e57644e3 100644 --- a/advanced/dapps/chain-abstraction-demo/data/EIP155Data.ts +++ b/advanced/dapps/chain-abstraction-demo/data/EIP155Data.ts @@ -40,9 +40,9 @@ export const supportedTokens: Token[] = [ icon: "/token-images/USDC.png", address: "0x1", }, - // { - // name: "USDT", - // icon: "/token-images/USDT.png", - // address: "0x2", - // }, + { + name: "USDT", + icon: "/token-images/USDT.png", + address: "0x2", + }, ];