unified networks list
This commit is contained in:
parent
2b707e81c2
commit
3ef1694217
24
src/App.vue
24
src/App.vue
@ -5,8 +5,8 @@ import SpinnerComponent from "@/components/SpinnerComponent.vue";
|
|||||||
import ToasterComponent from "@/components/ToasterComponent.vue";
|
import ToasterComponent from "@/components/ToasterComponent.vue";
|
||||||
import { init, useOnboard } from "@web3-onboard/vue";
|
import { init, useOnboard } from "@web3-onboard/vue";
|
||||||
import injectedModule from "@web3-onboard/injected-wallets";
|
import injectedModule from "@web3-onboard/injected-wallets";
|
||||||
import { Networks } from "./model/Networks";
|
import { Networks } from "@/model/Networks";
|
||||||
import { NetworkEnum } from "./model/NetworkEnum";
|
import { NetworkEnum } from "@/model/NetworkEnum";
|
||||||
import { ref } from "vue";
|
import { ref } from "vue";
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
@ -15,20 +15,12 @@ const targetNetwork = ref(NetworkEnum.sepolia);
|
|||||||
|
|
||||||
const web3Onboard = init({
|
const web3Onboard = init({
|
||||||
wallets: [injected],
|
wallets: [injected],
|
||||||
chains: [
|
chains: Object.entries(Networks).map(([, network]) => ({
|
||||||
{
|
id: network.chainId,
|
||||||
id: Networks[NetworkEnum.sepolia].chainId,
|
token: network.token,
|
||||||
token: "ETH",
|
label: network.chainName,
|
||||||
label: "Sepolia",
|
rpcUrl: network.rpcUrl,
|
||||||
rpcUrl: import.meta.env.VITE_SEPOLIA_API_URL,
|
})),
|
||||||
},
|
|
||||||
{
|
|
||||||
id: Networks[NetworkEnum.rootstock].chainId,
|
|
||||||
token: "tRBTC",
|
|
||||||
label: "Rootstock Testnet",
|
|
||||||
rpcUrl: import.meta.env.VITE_ROOTSTOCK_API_URL,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
connect: {
|
connect: {
|
||||||
autoConnectLastWallet: true,
|
autoConnectLastWallet: true,
|
||||||
},
|
},
|
||||||
|
@ -2,7 +2,6 @@ import { ref } from "vue";
|
|||||||
import { NetworkEnum, TokenEnum } from "../model/NetworkEnum";
|
import { NetworkEnum, TokenEnum } from "../model/NetworkEnum";
|
||||||
import type { ValidDeposit } from "@/model/ValidDeposit";
|
import type { ValidDeposit } from "@/model/ValidDeposit";
|
||||||
import type { Participant } from "../utils/bbPay";
|
import type { Participant } from "../utils/bbPay";
|
||||||
import { NetworkById } from "@/model/Networks";
|
|
||||||
import type { Address } from "viem"
|
import type { Address } from "viem"
|
||||||
|
|
||||||
const walletAddress = ref<Address | null>(null);
|
const walletAddress = ref<Address | null>(null);
|
||||||
@ -33,7 +32,7 @@ export function useUser() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const setNetworkId = (network: string | number) => {
|
const setNetworkId = (network: string | number) => {
|
||||||
networkName.value = NetworkById(network) || NetworkEnum.sepolia;
|
networkName.value = Number(network) as NetworkEnum || NetworkEnum.sepolia;
|
||||||
networkId.value = Number(network);
|
networkId.value = Number(network);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,37 +1,26 @@
|
|||||||
import { NetworkEnum } from "@/model/NetworkEnum";
|
import { NetworkEnum } from "@/model/NetworkEnum";
|
||||||
|
|
||||||
export const NetworkById = (
|
export interface NetworkConfig {
|
||||||
chainId: string | number
|
chainId: string;
|
||||||
): NetworkEnum | undefined => {
|
chainName: string;
|
||||||
const normalizedChainId =
|
token: string;
|
||||||
typeof chainId === "number" ? chainId : Number(chainId);
|
rpcUrl?: string;
|
||||||
|
blockExplorerUrl?: string;
|
||||||
for (const [network, details] of Object.entries(Networks)) {
|
|
||||||
if (Number(details.chainId) === normalizedChainId) {
|
|
||||||
return network as unknown as NetworkEnum;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return undefined;
|
export const Networks: { [key in NetworkEnum]: NetworkConfig } = {
|
||||||
};
|
|
||||||
|
|
||||||
export const Networks = {
|
|
||||||
[NetworkEnum.sepolia]: {
|
[NetworkEnum.sepolia]: {
|
||||||
chainId: "0xAA36A7",
|
chainId: "0xAA36A7",
|
||||||
chainName: "Sepolia Testnet",
|
chainName: "Sepolia Testnet",
|
||||||
|
token: "ETH",
|
||||||
|
rpcUrl: import.meta.env.VITE_SEPOLIA_API_URL,
|
||||||
|
blockExplorerUrl: "https://sepolia.etherscan.io",
|
||||||
},
|
},
|
||||||
[NetworkEnum.rootstock]: {
|
[NetworkEnum.rootstock]: {
|
||||||
chainId: "0x1F",
|
chainId: "0x1F",
|
||||||
chainName: "Rootstock Testnet",
|
chainName: "Rootstock Testnet",
|
||||||
rpcUrls: ["https://public-node.testnet.rsk.co/"],
|
token: "tRBTC",
|
||||||
iconUrls: [
|
rpcUrl: import.meta.env.VITE_ROOTSTOCK_API_URL,
|
||||||
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAYAAACWwljjAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPOSURBVHgBxVhNUhpBFH6vGdxp4S4LoSYnEE8gnEA4AbpMJUQ4gXgCRJK1egLxBOIJJCdwJElVllMu49Cd1z04zD/dY1H5qihmut/M93VPv59uhHdAXFaPAaEDgA2/BaeA4hq/zG+gIBAKQoyr9yshid4Jdn+2oQAYFIC4rA2zxUhgS3yrDqEAjGdIDD/YYG09aRl7L7vYd10wgPkMlcoNfdvtFhjCXJBAeyO2S5gLQuFo25bEIxjCCt8oN2Z46I+Mu4A4SbjwojQBi1+BDl5LP+JNYlhtQRmPsjjQN1ILldwY7JTXOuD9bWL/jxO8dFy7oL9TyMcIu/PeSghxlLduQUA9jwPXiAk98HLw5jFiaFfAEjRLImPR0qi7z+2VmArZ7zzqcDAS01ljCKqf7QSjxb7jKkIhTohu6rOCq64RjsNiFEo7x7ocSNMvlddhPWb0CQ6gAAw4HKZpKGFDcWhzSEG6kbQCm4dLbi9m+XlpBTHea2D31zTSNtxrAGMNdcP5FPuxfhlKdCHgASUJxcd7zUcobkAPXvkzWGyf7uVCt2M2DtkMljaHSxu92WWLAz8OjWsD+juD/4tzcpqBSh3yQrmwoNFFMZNuDB7bJRsp/hzMMQqeT+NQ96KtNEBK+SG+23XgHgUyy8FPjpPozy3M4sZwh1/nLRMOK26Mn50Z5IHjA6XkBugJSn1XHkeBbK8dJsxsl0jMEOUpm0o9+gkX+7+TI0E+0x6Hsk0ijyNYQ/4OAqWn2aF+5cLxEoRq6idqtyEPtFhp/XyMNI2p9ADFUc/iYL5h7YzEXEEyptj04mvVHxkGP4F8MS4sWDsqRr4DbyGZRiIcqCKtpRMYeTMcpVVAFewqMVPSjUkMVQTBp6BPVKeiTqN65E0qP1AvIArWC98qcQsms39oDeBEtoXFKFgLbQ76ZKiXiRH2E01UF9Go+kGDh32/LWHZAD2OQ7mGdLO4ndrqWaHZyNyD6XJUWEq6yIQqReOweCe49ivD2DNUIutjJgXpHwyUtyPbY/IMWehfBA0IZxQSQoW9rKXL+ltq0oKqYC+RB6yLKys4xEw/Idde5R02cTGOcgh1LSNnid+nihIqcN0tr48MhL89L2uoG+Dqv5Px/IwqAhkqnEi296M1OyLPqVCgdKhcuKNjlUnQL4X78cRk1E1JlMkBME1sFE0gRrRJZGs3iT44bRZP5z0wQJHzIZMMbpztN1t+FDhsMBe0YNfatimHDetgLGiZGkYapqPwYt6YIAWPDYI9fSrETfjkwwSFT2EVrV/USY+r+/GGNp2I7zoW/gdR9aOdZ/lPGgAAAABJRU5ErkJggg==",
|
blockExplorerUrl: "https://explorer.testnet.rsk.co",
|
||||||
],
|
|
||||||
nativeCurrency: {
|
|
||||||
name: "tRBTC",
|
|
||||||
symbol: "tRBTC",
|
|
||||||
decimals: 18,
|
|
||||||
},
|
|
||||||
blockExplorerUrls: ["https://explorer.testnet.rootstock.io/"],
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user