Type alias MulticallContracts<TContracts, TProperties, Result, Depth>

MulticallContracts<TContracts, TProperties, Result, Depth>: Depth["length"] extends MAXIMUM_DEPTH
    ? (ContractFunctionConfig & TProperties)[]
    : TContracts extends []
        ? []
        : TContracts extends [infer Head extends MulticallContract]
            ? [...Result, ContractFunctionConfig<Head["abi"], Head["functionName"]> & TProperties]
            : TContracts extends [infer Head extends MulticallContract, ...(infer Tail extends readonly MulticallContract[])]
                ? MulticallContracts<[...Tail], TProperties, [...Result, ContractFunctionConfig<Head["abi"], Head["functionName"]> & TProperties], [...Depth, 1]>
                : unknown[] extends TContracts
                    ? TContracts
                    : TContracts extends ContractFunctionConfig<infer TAbi, infer TFunctionName>[]
                        ? (ContractFunctionConfig<TAbi, TFunctionName> & TProperties)[]
                        : (ContractFunctionConfig & TProperties)[]

Type Parameters

  • TContracts extends readonly MulticallContract[]

  • TProperties extends Record<string, any> = object

  • Result extends any[] = []

  • Depth extends readonly number[] = []

Generated using TypeDoc