XYOracleNetwork/sdk-xyo-react-js

View on GitHub
packages/modules/packages/witness/src/hooks/node/useWitnessFromNode.tsx

Summary

Maintainability
B
6 hrs
Test Coverage
// eslint-disable-next-line import/no-deprecated
import { ModuleFromNodeConfig, useModuleFromNode } from '@xyo-network/react-node'
import { asWitnessInstance, WitnessInstance } from '@xyo-network/witness-model'

export const useWitnessFromNode = (
  nameOrAddressOrInstance?: string | WitnessInstance,
  config?: ModuleFromNodeConfig,
): [WitnessInstance | undefined, Error | undefined] => {
  // eslint-disable-next-line deprecation/deprecation, import/no-deprecated
  const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config)
  const instance = asWitnessInstance(mod)
  if (mod && !instance) {
    const error = new Error(`Resolved module is not a WitnessInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`)
    console.error(error.message)
    return [undefined, error]
  }
  return [instance, error]
}