SuiRpcMethods: {
    [K in SuiRpcMethodName]: SuiClient[K] extends (
        input: infer P,
    ) => Promise<infer R>
        ? { name: K; params: P; result: R }
        : SuiClient[K] extends () => Promise<infer R>
            ? { name: K; params: undefined | object; result: R }
            : never
}