diff --git a/packages/stargate/src/queryclient.ts b/packages/stargate/src/queryclient.ts new file mode 100644 index 00000000..fedc9a0f --- /dev/null +++ b/packages/stargate/src/queryclient.ts @@ -0,0 +1,183 @@ +/* eslint-disable no-dupe-class-members, @typescript-eslint/ban-types, @typescript-eslint/naming-convention */ +import { toHex } from "@cosmjs/encoding"; +import { Client as TendermintClient } from "@cosmjs/tendermint-rpc"; +import { arrayContentEquals, assert, isNonNullObject } from "@cosmjs/utils"; + +type QueryExtensionSetup
= (base: QueryClient) => P;
+
+export class QueryClient {
+ /** Constructs a QueryClient with 0 extensions */
+ public static withExtensions(tmClient: TendermintClient): QueryClient;
+
+ /** Constructs a QueryClient with 1 extension */
+ public static withExtensions(
+ tmClient: TendermintClient,
+ setupExtensionA: QueryExtensionSetup,
+ ): QueryClient & A;
+
+ /** Constructs a QueryClient with 2 extensions */
+ public static withExtensions(
+ tmClient: TendermintClient,
+ setupExtensionA: QueryExtensionSetup,
+ setupExtensionB: QueryExtensionSetup,
+ ): QueryClient & A & B;
+
+ /** Constructs a QueryClient with 3 extensions */
+ public static withExtensions(
+ tmClient: TendermintClient,
+ setupExtensionA: QueryExtensionSetup,
+ setupExtensionB: QueryExtensionSetup,
+ setupExtensionC: QueryExtensionSetup = (base: QueryClient) => P;
+export declare class QueryClient {
+ /** Constructs a QueryClient with 0 extensions */
+ static withExtensions(tmClient: TendermintClient): QueryClient;
+ /** Constructs a QueryClient with 1 extension */
+ static withExtensions(
+ tmClient: TendermintClient,
+ setupExtensionA: QueryExtensionSetup,
+ ): QueryClient & A;
+ /** Constructs a QueryClient with 2 extensions */
+ static withExtensions(
+ tmClient: TendermintClient,
+ setupExtensionA: QueryExtensionSetup,
+ setupExtensionB: QueryExtensionSetup,
+ ): QueryClient & A & B;
+ /** Constructs a QueryClient with 3 extensions */
+ static withExtensions(
+ tmClient: TendermintClient,
+ setupExtensionA: QueryExtensionSetup,
+ setupExtensionB: QueryExtensionSetup,
+ setupExtensionC: QueryExtensionSetup