type ReadContractResult<abiFn extends AbiFunction> = abiFn["outputs"] extends { length: 0;} ? never : abiFn["outputs"] extends { length: 1 } ? AbiParametersToPrimitiveTypes<abiFn["outputs"]>[0] : AbiParametersToPrimitiveTypes<abiFn["outputs"]>;