Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/api-reference/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"react-dom": "^18.3.1",
"react-markdown": "^9.0.1",
"shiki": "^1.7.0",
"viem": "^2.15.1",
"viem": "^2.21.32",
"wagmi": "^2.10.4",
"zod": "^3.23.8"
},
Expand Down
29 changes: 9 additions & 20 deletions apps/api-reference/src/components/EvmProvider/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import type { ReactNode } from "react";
import * as chains from "viem/chains";
import { WagmiProvider, createConfig, http, useChainId } from "wagmi";

import { NETWORK_IDS /*, getRpcUrl */ } from "../../evm-networks";
import { NETWORK_IDS, getRpcUrl } from "../../evm-networks";
import { metadata } from "../../metadata";

const CHAINS = NETWORK_IDS.map((id) =>
Expand All @@ -18,27 +18,16 @@ const CHAINS = NETWORK_IDS.map((id) =>
];

const TRANSPORTS = Object.fromEntries(
CHAINS.map((chain) => [chain.id, http()]),
CHAINS.map((chain) => {
const url = getRpcUrl(chain.id);
if (url) {
return [chain.id, http(url)];
} else {
throw new Error(`No rpc url found for ${chain.name}`);
}
}),
);

// TODO figure out if we should use the rpc urls from contract-manager, which
// assume use of ronin & blast and require API keys, or the ones from viem which
// require no keys.
//
// If we should use contract-manager's, uncomment this code and remove the prior
// implementation of `TRANSPORTS`.
//
// const TRANSPORTS = Object.fromEntries(
// CHAINS.map((chain) => {
// const url = getRpcUrl(chain.id);
// if (url) {
// return [chain.id, http(url)];
// } else {
// throw new Error(`No rpc url found for ${chain.name}`);
// }
// }),
// );

type EvmProviderProps = {
children: ReactNode;
walletConnectProjectId?: string | undefined;
Expand Down
164 changes: 144 additions & 20 deletions apps/api-reference/src/evm-networks.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import { BLAST_API_KEY, RONIN_API_KEY } from "./isomorphic-config";

export const getContractAddress = (networkId: number) =>
isSupportedNetwork(networkId)
? NETWORK_INFO[networkId].contractAddress
Expand Down Expand Up @@ -27,7 +25,7 @@ type NetworkInfo = {
export const NETWORK_INFO = {
[1]: {
name: "ethereum",
rpcUrl: `https://eth-mainnet.blastapi.io/${BLAST_API_KEY}`,
rpcUrl: `https://eth.llamarpc.com `,
isMainnet: true,
contractAddress: "0x4305FB66699C3B2702D4d05CF36551390A4c69C6",
},
Expand Down Expand Up @@ -297,13 +295,13 @@ export const NETWORK_INFO = {
},
[2020]: {
name: "ronin",
rpcUrl: `https://api-gateway.skymavis.com/rpc?apikey=${RONIN_API_KEY}`,
rpcUrl: `https://api.roninchain.com/rpc`,
isMainnet: true,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[2021]: {
name: "saigon",
rpcUrl: `https://api-gateway.skymavis.com/rpc/testnet?apikey=${RONIN_API_KEY}`,
rpcUrl: `https://edgeware-evm0.jelliedowl.net`,
isMainnet: false,
contractAddress: "0xEbe57e8045F2F230872523bbff7374986E45C486",
},
Expand Down Expand Up @@ -357,7 +355,7 @@ export const NETWORK_INFO = {
},
[4002]: {
name: "fantom_testnet",
rpcUrl: `https://fantom-testnet.blastapi.io/${BLAST_API_KEY}`,
rpcUrl: `https://rpc.ankr.com/fantom_testnet`,
isMainnet: false,
contractAddress: "0x5744Cbf430D99456a0A8771208b674F27f8EF0Fb",
},
Expand Down Expand Up @@ -537,7 +535,7 @@ export const NETWORK_INFO = {
},
[59_140]: {
name: "linea_goerli",
rpcUrl: `https://linea-goerli.blastapi.io/${BLAST_API_KEY}`,
rpcUrl: `https://rpc.goerli.linea.build`,
isMainnet: false,
contractAddress: "0xdF21D137Aadc95588205586636710ca2890538d5",
},
Expand All @@ -559,18 +557,6 @@ export const NETWORK_INFO = {
isMainnet: false,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[64_165]: {
name: "fantom_sonic_testnet",
rpcUrl: "https://rpc.sonic.fantom.network/",
isMainnet: false,
contractAddress: "0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320",
},
[80_001]: {
name: "mumbai",
rpcUrl: `https://polygon-testnet.blastapi.io/${BLAST_API_KEY}`,
isMainnet: false,
contractAddress: "0xFC6bd9F9f0c6481c6Af3A7Eb46b296A5B85ed379",
},
[80_002]: {
name: "polygon_amoy",
rpcUrl: "https://polygon-amoy-bor-rpc.publicnode.com",
Expand Down Expand Up @@ -699,7 +685,7 @@ export const NETWORK_INFO = {
},
[11_155_111]: {
name: "sepolia",
rpcUrl: `https://eth-sepolia.blastapi.io/${BLAST_API_KEY}`,
rpcUrl: `https://ethereum-sepolia-rpc.publicnode.com`,
isMainnet: false,
contractAddress: "0xDd24F84d36BF92C65F92307595335bdFab5Bbd21",
},
Expand Down Expand Up @@ -763,6 +749,144 @@ export const NETWORK_INFO = {
isMainnet: false,
contractAddress: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
},
[89]: {
name: "viction_testnet",
rpcUrl: "https://rpc-testnet.viction.xyz",
isMainnet: false,
contractAddress: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
},
[1663]: {
name: "horizen_gobi",
rpcUrl: "https://rpc.ankr.com/horizen_gobi_testnet",
isMainnet: false,
contractAddress: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
},
[6_038_361]: {
name: "astar_zkyoto_testnet",
rpcUrl: "https://rpc.startale.com/zkyoto",
isMainnet: false,
contractAddress: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
},
[8822]: {
name: "iota",
rpcUrl: "https://json-rpc.evm.iotaledger.net",
isMainnet: true,
contractAddress: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
},
[9789]: {
name: "tabi_testnet",
rpcUrl: "https://rpc-internal.testnet.tabichain.com/",
isMainnet: false,
contractAddress: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
},
[1993]: {
name: "b3_testnet",
rpcUrl: "https://sepolia.b3.fun/http/",
isMainnet: false,
contractAddress: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
},
[7887]: {
name: "kinto",
rpcUrl: "https://rpc.kinto-rpc.com",
isMainnet: true,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[282]: {
name: "cronos_zkevm_testnet",
rpcUrl: "https://testnet.zkevm.cronos.org",
isMainnet: false,
contractAddress: "0x67DFF3D12dFDCeC9f85fd86f4cBDb0a111fF721A",
},
[89_346_162]: {
name: "reya_testnet",
rpcUrl: "https://rpc.reya-cronos.gelato.digital",
isMainnet: false,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[8333]: {
name: "b3_mainnet",
rpcUrl: "https://mainnet-rpc.b3.fun/http",
isMainnet: true,
contractAddress: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
},
[388]: {
name: "cronos_zkevm_mainnet",
rpcUrl: "https://mainnet.zkevm.cronos.org",
isMainnet: true,
contractAddress: "0x056f829183Ec806A78c26C98961678c24faB71af",
},
[30_732]: {
name: "movement_evm_devnet_imola",
rpcUrl: "https://mevm.devnet.imola.movementlabs.xyz",
isMainnet: false,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[545]: {
name: "flow_testnet",
rpcUrl: "https://testnet.evm.nodes.onflow.org",
isMainnet: false,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[94_524]: {
name: "idex_xchain_mainnet",
rpcUrl: "https://xchain-rpc.idex.io/",
isMainnet: true,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[33_111]: {
name: "apechain_testnet",
rpcUrl: "https://curtis.rpc.caldera.xyz/http",
isMainnet: false,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[1946]: {
name: "soneium_minato_testnet",
rpcUrl: "https://rpc.minato.soneium.org/",
isMainnet: false,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[33_139]: {
name: "apechain_mainnet",
rpcUrl: "https://apechain.calderachain.xyz/http",
isMainnet: true,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[747]: {
name: "flow_mainnet",
rpcUrl: "https://mainnet.evm.nodes.onflow.org",
isMainnet: true,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[11_124]: {
name: "abstract_testnet",
rpcUrl: "https://api.testnet.abs.xyz",
isMainnet: false,
contractAddress: "0x47F2A9BDAd52d65b66287253cf5ca0D2b763b486",
},
[1996]: {
name: "sanko",
rpcUrl: "https://mainnet.sanko.xyz",
isMainnet: true,
contractAddress: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
},
[1992]: {
name: "sanko_testnet",
rpcUrl: "https://sanko-arb-sepolia.rpc.caldera.xyz",
isMainnet: false,
contractAddress: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
},
[1301]: {
name: "unichain_sepolia",
rpcUrl: "https://sepolia.unichain.org",
isMainnet: false,
contractAddress: "0x2880aB155794e7179c9eE2e38200202908C17B43",
},
[64_165]: {
name: "fantom_sonic_testnet",
rpcUrl: "https://rpc.testnet.soniclabs.com",
isMainnet: false,
contractAddress: "0x96124d1F6E44FfDf1fb5D6d74BB2DE1B7Fbe7376",
},
} satisfies Record<number, NetworkInfo>;

export const NETWORK_IDS = Object.keys(NETWORK_INFO).map((key) =>
Expand Down
3 changes: 0 additions & 3 deletions apps/api-reference/src/isomorphic-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,3 @@
* with the optimized React build, etc.
*/
export const IS_PRODUCTION_BUILD = process.env.NODE_ENV === "production";

export const BLAST_API_KEY = process.env.NEXT_PUBLIC_BLAST_API_KEY ?? "";
export const RONIN_API_KEY = process.env.NEXT_PUBLIC_RONIN_API_KEY ?? "";
Loading
Loading