Skip to content

Commit

Permalink
chore: add USDT (#804)
Browse files Browse the repository at this point in the history
* chore: add USDT

* chore: add USDT to modal

* chore: remove USDT on base

* chore: filter based on the token network support

* chore: remove .env
  • Loading branch information
lukaisailovic authored Jan 15, 2025
1 parent 01e8ed9 commit 41b888a
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 19 deletions.
1 change: 1 addition & 0 deletions advanced/dapps/chain-abstraction-demo/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
NEXT_PUBLIC_PROJECT_ID=
1 change: 1 addition & 0 deletions advanced/dapps/chain-abstraction-demo/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ yarn-error.log*

# local env files
.env*.local
.env

# vercel
.vercel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
Expand All @@ -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<Network | undefined>(
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 (
<div className={cn("flex flex-col items-start gap-4", className)}>
{supportedNetworks.map((networkItem, index) => (
<div key={index} className="flex items-center flex-col gap-4 w-full">
<NetworkItem
network={networkItem}
selected={network?.chainId === networkItem.chainId}
onClick={() => setSelectedNetwork(networkItem)}
/>
{supportedNetworks.length - 1 !== index && <Separator />}
</div>
))}
{supportedNetworks
.filter((network) => tokenSupportedNetworks.includes(network.chainId))
.map((networkItem, index) => (
<div key={index} className="flex items-center flex-col gap-4 w-full">
<NetworkItem
network={networkItem}
selected={network?.chainId === networkItem.chainId}
onClick={() => setSelectedNetwork(networkItem)}
/>
{supportedNetworks.length - 1 !== index && <Separator />}
</div>
))}
</div>
);
}
Expand Down
15 changes: 15 additions & 0 deletions advanced/dapps/chain-abstraction-demo/consts/tokens.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,22 @@ export const usdcTokenAddresses: Record<number, Hex> = {
10: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", // Optimism
8453: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // Base
};
export const usdtTokenAddresses: Record<number, Hex> = {
42161: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9", // Arbitrum
10: "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58", // Optimism
// 8453: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2", // Base - No liqiduty
};

export const tokenAddresses: Record<string, Record<string, Hex>> = {
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);
};
10 changes: 5 additions & 5 deletions advanced/dapps/chain-abstraction-demo/data/EIP155Data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
},
];

0 comments on commit 41b888a

Please sign in to comment.