sui-explorer-local
Version:
Local Sui Explorer
35 lines (27 loc) • 1.16 kB
text/typescript
// 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;
};