UNPKG

sui-explorer-local

Version:
35 lines (27 loc) 1.16 kB
// Copyright (c) Mysten Labs, Inc. // SPDX-License-Identifier: Apache-2.0 import { SuiClient, SuiHTTPTransport, getFullnodeUrl } from '@mysten/sui.js/client'; export enum Network { LOCAL = 'LOCAL', DEVNET = 'DEVNET', TESTNET = 'TESTNET', MAINNET = 'MAINNET', } export const NetworkConfigs: Record<Network, { url: string }> = { [Network.LOCAL]: { url: getFullnodeUrl("localnet") }, [Network.DEVNET]: { url: getFullnodeUrl("devnet") }, [Network.TESTNET]: { url: getFullnodeUrl("testnet") }, [Network.MAINNET]: { url: getFullnodeUrl("mainnet") }, }; const defaultClientMap: Map<Network | string, SuiClient> = new Map(); // NOTE: This class should not be used directly in React components, prefer to use the useSuiClient() hook instead export const createSuiClient = (network: Network | string) => { const existingClient = defaultClientMap.get(network); if (existingClient) return existingClient; const networkUrl = network in Network ? NetworkConfigs[network as Network].url : network; const client = new SuiClient({ transport: new SuiHTTPTransport({ url: networkUrl }), }); defaultClientMap.set(network, client); return client; };