UNPKG

@ssv-labs/bapps-sdk

Version:
22 lines (21 loc) 1.57 kB
import { AbiType, AbiTypeToPrimitiveType, ExtractAbiFunction } from 'abitype'; import { AbiFunction, AbiParameter, AbiParameterToPrimitiveType, DecodeEventLogReturnType } from 'viem'; import { MainnetV4SetterABI } from '../abi/mainnet/v4/setter'; import { TokenABI } from '../abi/token'; export type MainnetEvent = DecodeEventLogReturnType<typeof MainnetV4SetterABI>; export type TokenEvent = DecodeEventLogReturnType<typeof TokenABI>; export type ValidatorAddedEvent = Extract<MainnetEvent, { eventName: 'ValidatorAdded'; }>; type DepositFN = ExtractAbiFunction<typeof MainnetV4SetterABI, 'deposit'>; export type ClusterSnapshot = AbiParameterToPrimitiveType<Extract<DepositFN['inputs'][number], { internalType: 'struct ISSVNetworkCore.Cluster'; }>>; export type AbiInputsToParams<T extends readonly AbiParameter[]> = { [K in T[number] as K['name'] extends string ? K['name'] : never]: AbiParameterToPrimitiveType<K>; }; export declare const paramsToArray: <Fn extends AbiFunction, Params extends Record<string, AbiTypeToPrimitiveType<AbiType>>>({ params, abiFunction, }: { params: Params; abiFunction: Fn; }) => (Fn["inputs"] extends infer T_2 extends readonly AbiParameter[] ? { [key_1 in keyof T_2]: AbiParameterToPrimitiveType<Fn["inputs"][key_1], import('abitype').AbiParameterKind>; } : never) extends infer T ? { [key in keyof T]: (Fn["inputs"] extends infer T_1 extends readonly AbiParameter[] ? { [key_1 in keyof T_1]: AbiParameterToPrimitiveType<Fn["inputs"][key_1], import('abitype').AbiParameterKind>; } : never)[key]; } : never; export {};