Skip to content

Commit

Permalink
use wallet connect metadata to show actual wallet
Browse files Browse the repository at this point in the history
  • Loading branch information
toddkao committed Feb 7, 2025
1 parent f0f8df8 commit 54706cf
Showing 1 changed file with 43 additions and 12 deletions.
55 changes: 43 additions & 12 deletions packages/widget/src/hooks/useCreateEvmWallets.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,18 @@ import { ChainType } from "@skip-go/client";
import { walletConnectLogo } from "@/constants/wagmi";
import { callbacksAtom } from "@/state/callbacks";

type WalletConnectMetaData = {
name: string;
description: string;
icons: string[];
redirect: {
native: string;
universal: string;
};
url: string;
publicKey: string;
};

export const useCreateEvmWallets = () => {
const { data: chains } = useAtomValue(skipChainsAtom);
const { data: assets } = useAtomValue(skipAssetsAtom);
Expand Down Expand Up @@ -68,18 +80,25 @@ export const useCreateEvmWallets = () => {
chainId: Number(chainID),
});

updateWalletState(res.accounts[0]);
const provider = await connector.getProvider();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const walletConnectMetadata = (provider as any).session?.peer?.metadata;

updateWalletState(res.accounts[0], walletConnectMetadata);
return res.accounts[0];
}
};

const updateWalletState = (address: string) => {
const updateWalletState = (
address: string,
walletConnectMetadata: WalletConnectMetaData,
) => {
console.log({

Check failure on line 96 in packages/widget/src/hooks/useCreateEvmWallets.tsx

View workflow job for this annotation

GitHub Actions / eslint

Unexpected console statement
walletName: connector.id,
walletPrettyName: connector.name,
walletName: walletConnectMetadata?.name ?? connector.id,
walletPrettyName: walletConnectMetadata?.name ?? connector.name,
walletChainType: ChainType.EVM,
walletInfo: {
logo: isWalletConnect ? walletConnectLogo : connector.icon,
logo: walletConnectMetadata?.icons[0] ?? connector.icon,
},
address: address,
});
Expand Down Expand Up @@ -114,15 +133,23 @@ export const useCreateEvmWallets = () => {
chainId: Number(1),
});
const account = await connector.getAccounts();
updateWalletState(account[0]);
const provider = await connector.getProvider();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const walletConnectMetadata = (provider as any).session?.peer?.metadata;

updateWalletState(account[0], walletConnectMetadata);
return;
}
if (isEvmConnected && connector.id !== currentEvmConnector?.id) {
await currentConnector?.disconnect();
}
try {
const response = await connectAsync({ connector });
updateWalletState(response.accounts[0]);
const provider = await connector.getProvider();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const walletConnectMetadata = (provider as any).session?.peer?.metadata;

updateWalletState(response.accounts[0], walletConnectMetadata);
const chain = chains?.find((x) => x.chainID === "1");
const asset = assets?.find((x) => x.denom === "ethereum-native");
setSourceAsset({
Expand Down Expand Up @@ -151,7 +178,12 @@ export const useCreateEvmWallets = () => {
chainId: Number(chainID),
});
const account = await connector.getAccounts();
updateWalletState(account[0]);

const provider = await connector.getProvider();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const walletConnectMetadata = (provider as any).session?.peer?.metadata;

updateWalletState(account[0], walletConnectMetadata);
return;
}
if (isEvmConnected && connector.id !== currentEvmConnector?.id) {
Expand All @@ -160,13 +192,12 @@ export const useCreateEvmWallets = () => {

try {
const response = await connectAsync({ connector, chainId: Number(chainID) });
updateWalletState(response.accounts[0]);
const account = await connector.getAccounts();

const provider = await connector.getProvider();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const walletInfo = (provider as any).session?.peer;
console.log(walletInfo);
const walletConnectMetadata = (provider as any).session?.peer?.metadata;

updateWalletState(response.accounts[0], walletConnectMetadata);

callbacks?.onWalletConnected?.({
walletName: connector.name,
Expand Down

0 comments on commit 54706cf

Please sign in to comment.