export type RecordToUnion> = T[keyof T] export type UnionToIntersection = ( U extends unknown ? (arg: U) => 0 : never ) extends (arg: infer I) => 0 ? I : never export type Method = [any, any] export type MakeRequestMethod = ( args: { method: Name } & (undefined extends T[0] ? { params?: T[0] } : { params: T[0] }), ) => Promise export type MakeRequestMethods> = UnionToIntersection< RecordToUnion<{ [K in keyof T]: K extends string ? MakeRequestMethod : never }> > export type Address = `0x${string}`