trufflesuite/truffle

View on GitHub
packages/codec-components/src/react/contexts/custom-components.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { createContext, useContext } from "react";
import type Codec from "@truffle/codec";
import type { AbiArgumentsProps } from "../components/common/abi-arguments";
import type { CodeProps } from "../components/common/code";
import type { CodecErrorProps } from "../components/common/codec-error";
import type { ContainerProps } from "../components/common/container";

export type CustomComponent<P> = (props: P) => JSX.Element;
export type CustomCodecComponent<D> = CustomComponent<{ data: D }>;
type CustomCodecComponents<T> = {
  [componentName in keyof T]: CustomCodecComponent<T[componentName]>;
};
type CustomCommonComponents<T> = {
  [componentName in keyof T]: CustomComponent<T[componentName]>;
};
export interface CustomComponentsContextValue {
  codec?: Partial<
    CustomCodecComponents<{
      AbiArgument: Codec.AbiArgument;
      AccessListForAddress: Codec.AccessListForAddress;
      AccessList: Codec.AccessList;
      AnonymousDecoding: Codec.AnonymousDecoding;
      BytecodeDecoding: Codec.BytecodeDecoding;
      CalldataDecoding: Codec.CalldataDecoding;
      ConstructorDecoding: Codec.ConstructorDecoding;
      EmptyFailureDecoding: Codec.EmptyFailureDecoding;
      EventDecoding: Codec.EventDecoding;
      AbiErrorResult: Codec.Format.Errors.AbiErrorResult;
      AddressErrorResult: Codec.Format.Errors.AddressErrorResult;
      AddressError: Codec.Format.Errors.AddressError;
      AddressPaddingError: Codec.Format.Errors.AddressPaddingError;
      ArrayErrorResult: Codec.Format.Errors.ArrayErrorResult;
      ArrayError: Codec.Format.Errors.ArrayError;
      BoolErrorResult: Codec.Format.Errors.BoolErrorResult;
      BoolError: Codec.Format.Errors.BoolError;
      BoolOutOfRangeError: Codec.Format.Errors.BoolOutOfRangeError;
      BoolPaddingError: Codec.Format.Errors.BoolPaddingError;
      BuiltInValueErrorResult: Codec.Format.Errors.BuiltInValueErrorResult;
      BytesDynamicErrorResult: Codec.Format.Errors.BytesDynamicErrorResult;
      BytesDynamicError: Codec.Format.Errors.BytesDynamicError;
      BytesErrorResult: Codec.Format.Errors.BytesErrorResult;
      BytesLocation: Codec.Format.Errors.BytesLocation;
      BytesPaddingError: Codec.Format.Errors.BytesPaddingError;
      BytesStaticErrorResult: Codec.Format.Errors.BytesStaticErrorResult;
      BytesStaticError: Codec.Format.Errors.BytesStaticError;
      CodeNotSuppliedError: Codec.Format.Errors.CodeNotSuppliedError;
      ContractErrorResult: Codec.Format.Errors.ContractErrorResult;
      ContractError: Codec.Format.Errors.ContractError;
      ContractPaddingError: Codec.Format.Errors.ContractPaddingError;
      DecoderError: Codec.Format.Errors.DecoderError;
      DeployedFunctionInConstructorError: Codec.Format.Errors.DeployedFunctionInConstructorError;
      DynamicDataImplementationError: Codec.Format.Errors.DynamicDataImplementationError;
      ElementaryErrorResult: Codec.Format.Errors.ElementaryErrorResult;
      EnumErrorResult: Codec.Format.Errors.EnumErrorResult;
      EnumError: Codec.Format.Errors.EnumError;
      EnumNotFoundDecodingError: Codec.Format.Errors.EnumNotFoundDecodingError;
      EnumOutOfRangeError: Codec.Format.Errors.EnumOutOfRangeError;
      EnumPaddingError: Codec.Format.Errors.EnumPaddingError;
      ErrorForThrowing: Codec.Format.Errors.ErrorForThrowing;
      ErrorResult: Codec.Format.Errors.ErrorResult;
      FixedErrorResult: Codec.Format.Errors.FixedErrorResult;
      FixedError: Codec.Format.Errors.FixedError;
      FixedPaddingError: Codec.Format.Errors.FixedPaddingError;
      FunctionExternalErrorResult: Codec.Format.Errors.FunctionExternalErrorResult;
      FunctionExternalError: Codec.Format.Errors.FunctionExternalError;
      FunctionExternalNonStackPaddingError: Codec.Format.Errors.FunctionExternalNonStackPaddingError;
      FunctionExternalStackPaddingError: Codec.Format.Errors.FunctionExternalStackPaddingError;
      FunctionInternalErrorResult: Codec.Format.Errors.FunctionInternalErrorResult;
      FunctionInternalError: Codec.Format.Errors.FunctionInternalError;
      FunctionInternalPaddingError: Codec.Format.Errors.FunctionInternalPaddingError;
      GenericError: Codec.Format.Errors.GenericError;
      IndexedReferenceTypeError: Codec.Format.Errors.IndexedReferenceTypeError;
      IntErrorResult: Codec.Format.Errors.IntErrorResult;
      IntError: Codec.Format.Errors.IntError;
      IntPaddingError: Codec.Format.Errors.IntPaddingError;
      InternalFunctionInABIError: Codec.Format.Errors.InternalFunctionInABIError;
      InternalUseError: Codec.Format.Errors.InternalUseError;
      MappingErrorResult: Codec.Format.Errors.MappingErrorResult;
      MagicError: Codec.Format.Errors.MagicError;
      MalformedInternalFunctionError: Codec.Format.Errors.MalformedInternalFunctionError;
      MagicErrorResult: Codec.Format.Errors.MagicErrorResult;
      MappingError: Codec.Format.Errors.MappingError;
      NoSuchInternalFunctionError: Codec.Format.Errors.NoSuchInternalFunctionError;
      OptionsErrorResult: Codec.Format.Errors.OptionsErrorResult;
      OptionsError: Codec.Format.Errors.OptionsError;
      OverlargePointersNotImplementedError: Codec.Format.Errors.OverlargePointersNotImplementedError;
      OverlongArrayOrStringStrictModeError: Codec.Format.Errors.OverlongArrayOrStringStrictModeError;
      OverlongArraysAndStringsNotImplementedError: Codec.Format.Errors.OverlongArraysAndStringsNotImplementedError;
      ReEncodingMismatchError: Codec.Format.Errors.ReEncodingMismatchError;
      ReadErrorBytes: Codec.Format.Errors.ReadErrorBytes;
      ReadErrorStack: Codec.Format.Errors.ReadErrorStack;
      ReadErrorStorage: Codec.Format.Errors.ReadErrorStorage;
      ReadError: Codec.Format.Errors.ReadError;
      StorageNotSuppliedError: Codec.Format.Errors.StorageNotSuppliedError;
      StringErrorResult: Codec.Format.Errors.StringErrorResult;
      StringError: Codec.Format.Errors.StringError;
      StructErrorResult: Codec.Format.Errors.StructErrorResult;
      StructError: Codec.Format.Errors.StructError;
      TupleErrorResult: Codec.Format.Errors.TupleErrorResult;
      TupleError: Codec.Format.Errors.TupleError;
      TypeErrorResult: Codec.Format.Errors.TypeErrorResult;
      TypeErrorUnion: Codec.Format.Errors.TypeErrorUnion;
      UfixedErrorResult: Codec.Format.Errors.UfixedErrorResult;
      UfixedError: Codec.Format.Errors.UfixedError;
      UfixedPaddingError: Codec.Format.Errors.UfixedPaddingError;
      UintErrorResult: Codec.Format.Errors.UintErrorResult;
      UintError: Codec.Format.Errors.UintError;
      UintPaddingError: Codec.Format.Errors.UintPaddingError;
      UnsupportedConstantError: Codec.Format.Errors.UnsupportedConstantError;
      UnusedImmutableError: Codec.Format.Errors.UnusedImmutableError;
      UserDefinedTypeNotFoundError: Codec.Format.Errors.UserDefinedTypeNotFoundError;
      UserDefinedValueTypeErrorResult: Codec.Format.Errors.UserDefinedValueTypeErrorResult;
      UserDefinedValueTypeError: Codec.Format.Errors.UserDefinedValueTypeError;
      WrappedError: Codec.Format.Errors.WrappedError;
      Range: Codec.Storage.Range;
      Slot: Codec.Storage.Slot;
      StoragePosition: Codec.Storage.StoragePosition;
      AbiResult: Codec.Format.Values.AbiResult;
      AbiValue: Codec.Format.Values.AbiValue;
      AddressResult: Codec.Format.Values.AddressResult;
      AddressValue: Codec.Format.Values.AddressValue;
      ArrayResult: Codec.Format.Values.ArrayResult;
      ArrayValue: Codec.Format.Values.ArrayValue;
      BoolResult: Codec.Format.Values.BoolResult;
      BoolValue: Codec.Format.Values.BoolValue;
      BuiltInValueValue: Codec.Format.Values.BuiltInValueValue;
      BytesDynamicResult: Codec.Format.Values.BytesDynamicResult;
      BytesDynamicValue: Codec.Format.Values.BytesDynamicValue;
      BytesResult: Codec.Format.Values.BytesResult;
      BytesStaticResult: Codec.Format.Values.BytesStaticResult;
      BytesStaticValue: Codec.Format.Values.BytesStaticValue;
      BytesValue: Codec.Format.Values.BytesValue;
      ContractResult: Codec.Format.Values.ContractResult;
      ContractValueInfoKnown: Codec.Format.Values.ContractValueInfoKnown;
      ContractValueInfoUnknown: Codec.Format.Values.ContractValueInfoUnknown;
      ContractValueInfo: Codec.Format.Values.ContractValueInfo;
      ContractValue: Codec.Format.Values.ContractValue;
      ElementaryResult: Codec.Format.Values.ElementaryResult;
      ElementaryValue: Codec.Format.Values.ElementaryValue;
      EnumResult: Codec.Format.Values.EnumResult;
      EnumValue: Codec.Format.Values.EnumValue;
      FixedResult: Codec.Format.Values.FixedResult;
      FixedValue: Codec.Format.Values.FixedValue;
      FunctionExternalResult: Codec.Format.Values.FunctionExternalResult;
      FunctionExternalValueInfoInvalid: Codec.Format.Values.FunctionExternalValueInfoInvalid;
      FunctionExternalValueInfoKnown: Codec.Format.Values.FunctionExternalValueInfoKnown;
      FunctionExternalValueInfoUnknown: Codec.Format.Values.FunctionExternalValueInfoUnknown;
      FunctionExternalValueInfo: Codec.Format.Values.FunctionExternalValueInfo;
      FunctionExternalValue: Codec.Format.Values.FunctionExternalValue;
      FunctionInternalRawInfo: Codec.Format.Values.FunctionInternalRawInfo;
      FunctionInternalRawInfoPcPair: Codec.Format.Values.FunctionInternalRawInfoPcPair;
      FunctionInternalRawInfoIndex: Codec.Format.Values.FunctionInternalRawInfoIndex;
      FunctionInternalResult: Codec.Format.Values.FunctionInternalResult;
      FunctionInternalValueInfoException: Codec.Format.Values.FunctionInternalValueInfoException;
      FunctionInternalValueInfoKnown: Codec.Format.Values.FunctionInternalValueInfoKnown;
      FunctionInternalValueInfoUnknown: Codec.Format.Values.FunctionInternalValueInfoUnknown;
      FunctionInternalValueInfo: Codec.Format.Values.FunctionInternalValueInfo;
      FunctionInternalValue: Codec.Format.Values.FunctionInternalValue;
      IntResult: Codec.Format.Values.IntResult;
      IntValue: Codec.Format.Values.IntValue;
      KeyValuePair: Codec.Format.Values.KeyValuePair;
      MagicResult: Codec.Format.Values.MagicResult;
      MagicValue: Codec.Format.Values.MagicValue;
      MappingResult: Codec.Format.Values.MappingResult;
      MappingValue: Codec.Format.Values.MappingValue;
      NameValuePair: Codec.Format.Values.NameValuePair;
      OptionallyNamedValue: Codec.Format.Values.OptionallyNamedValue;
      OptionsResult: Codec.Format.Values.OptionsResult;
      OptionsValue: Codec.Format.Values.OptionsValue;
      Result: Codec.Format.Values.Result;
      StringResult: Codec.Format.Values.StringResult;
      StringValueInfoMalformed: Codec.Format.Values.StringValueInfoMalformed;
      StringValueInfoValid: Codec.Format.Values.StringValueInfoValid;
      StringValueInfo: Codec.Format.Values.StringValueInfo;
      StringValue: Codec.Format.Values.StringValue;
      StructResult: Codec.Format.Values.StructResult;
      StructValue: Codec.Format.Values.StructValue;
      TupleResult: Codec.Format.Values.TupleResult;
      TupleValue: Codec.Format.Values.TupleValue;
      TypeResult: Codec.Format.Values.TypeResult;
      TypeValueContract: Codec.Format.Values.TypeValueContract;
      TypeValueEnum: Codec.Format.Values.TypeValueEnum;
      TypeValue: Codec.Format.Values.TypeValue;
      UfixedResult: Codec.Format.Values.UfixedResult;
      UfixedValue: Codec.Format.Values.UfixedValue;
      UintResult: Codec.Format.Values.UintResult;
      UintValue: Codec.Format.Values.UintValue;
      UserDefinedValueTypeResult: Codec.Format.Values.UserDefinedValueTypeResult;
      UserDefinedValueTypeValue: Codec.Format.Values.UserDefinedValueTypeValue;
      Value: Codec.Format.Values.Value;
      FunctionDecoding: Codec.FunctionDecoding;
      LogDecoding: Codec.LogDecoding;
      MessageDecoding: Codec.MessageDecoding;
      Options: Codec.Options;
      RawReturnDecoding: Codec.RawReturnDecoding;
      ReturnDecoding: Codec.ReturnDecoding;
      ReturndataDecoding: Codec.ReturndataDecoding;
      RevertMessageDecoding: Codec.RevertMessageDecoding;
      SelfDestructDecoding: Codec.SelfDestructDecoding;
      StateVariable: Codec.StateVariable;
      UnknownBytecodeDecoding: Codec.UnknownBytecodeDecoding;
      UnknownCallDecoding: Codec.UnknownCallDecoding;
      UnknownCreationDecoding: Codec.UnknownCreationDecoding;
    }>
  >;
  common?: Partial<
    CustomCommonComponents<{
      AbiArguments: AbiArgumentsProps;
      Code: CodeProps;
      CodecError: CodecErrorProps;
      Container: ContainerProps;
    }>
  >;
}
export const CustomComponentsContext =
  createContext<CustomComponentsContextValue>({});
export const useCustomComponents = () => useContext(CustomComponentsContext);