UNPKG

@silvana-one/coordination

Version:

Silvana Coordination Client

55 lines (48 loc) 1.57 kB
import { getFullnodeUrl, SuiClient, SuiEvent } from "@mysten/sui/client"; import { namedPackagesPlugin, Transaction } from "@mysten/sui/transactions"; export type SuiNetwork = "testnet" | "devnet" | "localnet" | "mainnet"; export const network: SuiNetwork = (process.env.NEXT_PUBLIC_SUI_CHAIN || process.env.SUI_CHAIN || "testnet") as SuiNetwork; if (!network) { throw new Error("SUI_CHAIN is not set"); } if (network === "testnet") { const plugin = namedPackagesPlugin({ url: "https://testnet.mvr.mystenlabs.com", }); Transaction.registerGlobalSerializationPlugin("namedPackagesPlugin", plugin); } if (network === "mainnet") { // TODO: use @mysten/mvr-static const plugin = namedPackagesPlugin({ url: "https://mainnet.mvr.mystenlabs.com", }); Transaction.registerGlobalSerializationPlugin("namedPackagesPlugin", plugin); } export const suiClient = new SuiClient({ url: getUrl(network), }); function getUrl(network: SuiNetwork) { if (network === "testnet") { return ( process.env.SUI_TESTNET_URL || process.env.NEXT_PUBLIC_SUI_TESTNET_URL || "https://rpc-testnet.suiscan.xyz:443" ); } else if (network === "devnet") { return ( process.env.SUI_DEVNET_URL || process.env.NEXT_PUBLIC_SUI_DEVNET_URL || "https://rpc-ws-devnet.suiscan.xyz" ); } else if (network === "mainnet") { return ( process.env.SUI_MAINNET_URL || process.env.NEXT_PUBLIC_SUI_MAINNET_URL || "https://rpc-mainnet.suiscan.xyz:443" ); } else { return getFullnodeUrl(network); } }