Skip to content

Commit

Permalink
feat(website): RPC connect Metamask Networks (#14070)
Browse files Browse the repository at this point in the history
Co-authored-by: dave | d1onys1us <[email protected]>
  • Loading branch information
MarcusWentz and dionysuzx authored Jul 1, 2023
1 parent 99c3980 commit 1ef2126
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 1 deletion.
50 changes: 50 additions & 0 deletions packages/website/components/ConnectToMetamaskButton.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import { taikoChainConfig } from "../constants/taikoChainConfig";

type ConnectButtonProps = {
network: "Sepolia" | "Taiko";
};

async function ConnectToMetamask(network: ConnectButtonProps["network"]) {
if (!(window as any).ethereum) {
alert("Metamask not detected! Install Metamask then try again.");
}
if (
(window as any).ethereum.networkVersion ==
(network === "Sepolia" ? 11155111 : 167005)
) {
alert(`You are already connected to ${network}.`);
}
try {
if (network === "Sepolia") {
await (window as any).ethereum.request({
method: "wallet_switchEthereumChain",
params: [
{
chainId: "0xaa36a7",
},
],
});
} else {
await (window as any).ethereum.request({
method: "wallet_addEthereumChain",
params: [taikoChainConfig],
});
}
} catch (error) {
alert(
"Failed to add the network with wallet_addEthereumChain request. Add the network with https://chainlist.org/ or do it manually. Error log: " +
error.message
);
}
}

export default function ConnectToMetamaskButton(props: ConnectButtonProps) {
return (
<div
onClick={() => ConnectToMetamask(props.network)}
className="hover:cursor-pointer text-neutral-100 bg-[#E81899] hover:bg-[#d1168a] border-solid border-neutral-200 focus:ring-4 focus:outline-none focus:ring-neutral-100 font-medium rounded-lg text-sm px-3 py-2 text-center inline-flex items-center"
>
Connect to {props.network}
</div>
);
}
25 changes: 25 additions & 0 deletions packages/website/constants/taikoChainConfig.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
interface AddEthereumChainParameter {
chainId: string; // A 0x-prefixed hexadecimal string
chainName: string;
nativeCurrency: {
name: string;
symbol: string; // 2-6 characters long
decimals: 18;
};
rpcUrls: string[];
blockExplorerUrls?: string[];
iconUrls?: string[]; // Currently ignored.
}

export const taikoChainConfig: AddEthereumChainParameter = {
chainId: "0x28c5d",
chainName: "Taiko (Alpha-3 Testnet)",
nativeCurrency: {
name: "ETH",
symbol: "ETH",
decimals: 18,
},
rpcUrls: ["https://rpc.test.taiko.xyz"],
blockExplorerUrls: ["https://explorer.test.taiko.xyz/"],
iconUrls: [],
};
6 changes: 5 additions & 1 deletion packages/website/pages/docs/guides/configure-your-wallet.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,14 @@ This guide help you connect your wallet to Taiko (Alpha-3 testnet). There are tw
Visit [https://chainlist.org/](https://chainlist.org/) and check the box for "Include Testnets".

### Add the Sepolia testnet
Search for "Sepolia", and click the "Add Chain" button.
Search for "Sepolia", and click the "Add Chain" button.

You can also connect to Sepolia at [Sepolia RPC configuration](../reference/rpc-configuration#sepolia).

### Add the Taiko testnet
Search for "Taiko", and click the "Add Chain" button for Taiko (Alpha-3 testnet).

You can also connect to Taiko at [Taiko RPC configuration](../reference/rpc-configuration#taiko).

### Add tokens to your wallet
Use your wallet (e.g., Metamask) to [import the tokens](https://support.ledger.com/hc/en-us/articles/6375103346077-Add-custom-tokens-to-MetaMask?docs=true) with these [contract addresses](/docs/reference/contract-addresses#erc-20-token-contracts) (HORSE, BLL, and TTKO).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import ConnectToMetamaskButton from 'components/ConnectToMetamaskButton';

# RPC configuration

## Sepolia
<br/>
<ConnectToMetamaskButton network="Sepolia" />

| Name | Value |
| ------------------ | ---------------------------- |
Expand All @@ -10,6 +14,8 @@
| Block Explorer URL | https://sepolia.etherscan.io |

## Taiko
<br/>
<ConnectToMetamaskButton network="Taiko" />

| Name | Value |
| ------------------ | ------------------------------- |
Expand Down

0 comments on commit 1ef2126

Please sign in to comment.