UNPKG

@roochnetwork/rooch-sdk-kit

Version:
46 lines (34 loc) 1.11 kB
// Copyright (c) RoochNetwork // SPDX-License-Identifier: Apache-2.0 import type { RoochClientOptions } from '@roochnetwork/rooch-sdk' import { useRoochContext } from './useRoochContext.js' export type NetworkConfig<T extends object = object> = RoochClientOptions & { variables?: T } export function createNetworkConfig< const T extends Record<string, Config>, Config extends NetworkConfig<Variables> = T[keyof T], Variables extends object = NonNullable<Config['variables']>, >(networkConfig: T) { function useNetworkConfig(): Config { const { config } = useRoochContext() if (!config) { throw new Error('No network config found') } return config as T[keyof T] } function useNetworkVariables(): Variables { const { variables } = useNetworkConfig() return (variables ?? {}) as Variables } function useNetworkVariable<K extends keyof Variables>(name: K): Variables[K] { const variables = useNetworkVariables() return variables[name] } return { networkConfig, useNetworkConfig, useNetworkVariables, useNetworkVariable, } }