diff --git a/src/composables/useGraphQL.ts b/src/composables/useGraphQL.ts index c38c550..288fe49 100644 --- a/src/composables/useGraphQL.ts +++ b/src/composables/useGraphQL.ts @@ -40,21 +40,8 @@ export function useGraphQL(network: Ref) { totalReleases: '0' }); - const getGraphQLUrl = () => { - const rskNetworkName = isTestnetEnvironment() ? rootstockTestnet.name : rootstock.name; - - switch (network.value.name) { - case sepolia.name: - return import.meta.env.VITE_SEPOLIA_SUBGRAPH_URL!; - case rskNetworkName: - return import.meta.env.VITE_RSK_SUBGRAPH_URL!; - default: - throw new Error(`Unsupported network: ${network.value.name}`); - } - }; - const executeQuery = async (query: string, variables: any = {}) => { - const url = getGraphQLUrl(); + const url = network.value.subgraphUrls[0]; // TODO: try all available URLs try { const response = await fetch(url, { diff --git a/src/config/networks.ts b/src/config/networks.ts index 589beaf..5ce18d3 100644 --- a/src/config/networks.ts +++ b/src/config/networks.ts @@ -1,14 +1,27 @@ -import { sepolia, rootstock, rootstockTestnet } from "viem/chains"; +import { mainnet, sepolia, rootstock, rootstockTestnet } from "viem/chains"; import { NetworkConfig } from "@/model/NetworkEnum" // TODO: import addresses from p2pix-smart-contracts deployments -export const isTestnetEnvironment = () => { - return import.meta.env.VITE_ENVIRONMENT === 'testnet' || - import.meta.env.NODE_ENV === 'development' || - import.meta.env.MODE === 'development'; +export const Networks: {[key:string]: NetworkConfig} = { + mainnet: { ...mainnet, + rpcUrls: { default: { http: [import.meta.env.VITE_MAINNET_API_URL]}}, + contracts: { ...mainnet.contracts, + p2pix: { address: import.meta.env.VITE_MAINNET_P2PIX_ADDRESS } }, + tokens: { + BRZ: { address: import.meta.env.VITE_MAINNET_TOKEN_ADDRESS } }, + subgraphUrls: [import.meta.env.VITE_MAINNET_SUBGRAPH_URL] + }, + rootstock: { ...rootstock, + rpcUrls: { default: { http: [import.meta.env.VITE_RSK_API_URL]}}, + contracts: { ...rootstock.contracts, + p2pix: { address: import.meta.env.VITE_RSK_P2PIX_ADDRESS } }, + tokens: { + BRZ: { address: import.meta.env.VITE_RSK_TOKEN_ADDRESS } }, + subgraphUrls: [import.meta.env.VITE_RSK_SUBGRAPH_URL] + }, }; -export const Networks: {[key:string]: NetworkConfig} = { +export const NetworksTestnet: {[key:string]: NetworkConfig} = { sepolia: { ...sepolia, rpcUrls: { default: { http: [import.meta.env.VITE_SEPOLIA_API_URL]}}, contracts: { ...sepolia.contracts, @@ -17,9 +30,9 @@ export const Networks: {[key:string]: NetworkConfig} = { BRZ: { address: import.meta.env.VITE_SEPOLIA_TOKEN_ADDRESS } }, subgraphUrls: [import.meta.env.VITE_SEPOLIA_SUBGRAPH_URL] }, - rootstock: { ...(isTestnetEnvironment() ? rootstockTestnet : rootstock), + rootstockTestnet: { ...rootstockTestnet, rpcUrls: { default: { http: [import.meta.env.VITE_RSK_API_URL]}}, - contracts: { ...(isTestnetEnvironment() ? rootstockTestnet.contracts : rootstock.contracts), + contracts: { ...rootstockTestnet.contracts, p2pix: { address: import.meta.env.VITE_RSK_P2PIX_ADDRESS } }, tokens: { BRZ: { address: import.meta.env.VITE_RSK_TOKEN_ADDRESS } }, @@ -27,4 +40,4 @@ export const Networks: {[key:string]: NetworkConfig} = { }, }; -export const DEFAULT_NETWORK = Networks.sepolia; +export const DEFAULT_NETWORK = Networks.mainnet;