Create LcdClientBaseOptions
This commit is contained in:
parent
dd5ef76a44
commit
e6ac24a301
@ -9,7 +9,7 @@ import { LcdApiArray, LcdClient, normalizeArray } from "./lcdclient";
|
||||
import { parseLogs } from "./logs";
|
||||
import { MsgSend } from "./msgs";
|
||||
import { makeCosmoshubPath, Secp256k1Pen } from "./pen";
|
||||
import { BroadcastMode, TxsResponse } from "./restclient";
|
||||
import { TxsResponse } from "./restclient";
|
||||
import { SigningCosmosClient } from "./signingcosmosclient";
|
||||
import cosmoshub from "./testdata/cosmoshub.json";
|
||||
import {
|
||||
@ -83,7 +83,7 @@ describe("LcdClient", () => {
|
||||
}
|
||||
|
||||
it("works for no modules", async () => {
|
||||
const client = LcdClient.withModules(wasmd.endpoint, BroadcastMode.Sync);
|
||||
const client = LcdClient.withModules({ apiUrl: wasmd.endpoint });
|
||||
expect(client).toBeTruthy();
|
||||
});
|
||||
|
||||
@ -99,7 +99,7 @@ describe("LcdClient", () => {
|
||||
};
|
||||
}
|
||||
|
||||
const client = LcdClient.withModules(wasmd.endpoint, BroadcastMode.Sync, wasmClientRegisterer);
|
||||
const client = LcdClient.withModules({ apiUrl: wasmd.endpoint }, wasmClientRegisterer);
|
||||
const codes = await client.listCodeInfo();
|
||||
expect(codes.length).toBeGreaterThanOrEqual(3);
|
||||
expect(codes[0].id).toEqual(deployedErc20.codeId);
|
||||
@ -136,8 +136,7 @@ describe("LcdClient", () => {
|
||||
}
|
||||
|
||||
const client = LcdClient.withModules(
|
||||
wasmd.endpoint,
|
||||
BroadcastMode.Sync,
|
||||
{ apiUrl: wasmd.endpoint },
|
||||
registerWasmModule,
|
||||
registerSupplyModule,
|
||||
);
|
||||
|
||||
@ -25,6 +25,11 @@ type LcdModule = Record<string, () => any>;
|
||||
|
||||
type LcdModuleSetup<M> = (base: LcdClient) => M;
|
||||
|
||||
export interface LcdClientBaseOptions {
|
||||
readonly apiUrl: string;
|
||||
readonly broadcastMode?: BroadcastMode;
|
||||
}
|
||||
|
||||
// We want to get message data from 500 errors
|
||||
// https://stackoverflow.com/questions/56577124/how-to-handle-500-error-message-with-axios
|
||||
// this should be chained to catch one error and throw a more informative one
|
||||
@ -49,27 +54,24 @@ function parseAxiosError(err: AxiosError): never {
|
||||
|
||||
export class LcdClient {
|
||||
/** Constructs an LCD client with 0 modules */
|
||||
public static withModules(apiUrl: string, broadcastMode: BroadcastMode): LcdClient;
|
||||
public static withModules(options: LcdClientBaseOptions): LcdClient;
|
||||
|
||||
/** Constructs an LCD client with 1 modules */
|
||||
/** Constructs an LCD client with 1 module */
|
||||
public static withModules<A extends LcdModule>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
): LcdClient & A;
|
||||
|
||||
/** Constructs an LCD client with 2 modules */
|
||||
public static withModules<A extends LcdModule, B extends LcdModule>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
): LcdClient & A & B;
|
||||
|
||||
/** Constructs an LCD client with 3 modules */
|
||||
public static withModules<A extends LcdModule, B extends LcdModule, C extends LcdModule>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
@ -82,8 +84,7 @@ export class LcdClient {
|
||||
C extends LcdModule,
|
||||
D extends LcdModule
|
||||
>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
@ -98,8 +99,7 @@ export class LcdClient {
|
||||
D extends LcdModule,
|
||||
E extends LcdModule
|
||||
>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
@ -116,8 +116,7 @@ export class LcdClient {
|
||||
E extends LcdModule,
|
||||
F extends LcdModule
|
||||
>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
@ -136,8 +135,7 @@ export class LcdClient {
|
||||
F extends LcdModule,
|
||||
G extends LcdModule
|
||||
>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
@ -158,8 +156,7 @@ export class LcdClient {
|
||||
G extends LcdModule,
|
||||
H extends LcdModule
|
||||
>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
@ -180,8 +177,7 @@ export class LcdClient {
|
||||
G extends LcdModule,
|
||||
H extends LcdModule
|
||||
>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA?: LcdModuleSetup<A>,
|
||||
setupModuleB?: LcdModuleSetup<B>,
|
||||
setupModuleC?: LcdModuleSetup<C>,
|
||||
@ -191,7 +187,7 @@ export class LcdClient {
|
||||
setupModuleG?: LcdModuleSetup<G>,
|
||||
setupModuleH?: LcdModuleSetup<H>,
|
||||
): any {
|
||||
const client = new LcdClient(apiUrl, broadcastMode);
|
||||
const client = new LcdClient(options.apiUrl, options.broadcastMode);
|
||||
|
||||
const modules = new Array<LcdModule>();
|
||||
if (setupModuleA) modules.push(setupModuleA(client));
|
||||
|
||||
32
packages/sdk38/types/lcdclient.d.ts
vendored
32
packages/sdk38/types/lcdclient.d.ts
vendored
@ -14,34 +14,34 @@ export declare type LcdApiArray<T> = ReadonlyArray<T> | null;
|
||||
export declare function normalizeArray<T>(backend: LcdApiArray<T>): ReadonlyArray<T>;
|
||||
declare type LcdModule = Record<string, () => any>;
|
||||
declare type LcdModuleSetup<M> = (base: LcdClient) => M;
|
||||
export interface LcdClientBaseOptions {
|
||||
readonly apiUrl: string;
|
||||
readonly broadcastMode?: BroadcastMode;
|
||||
}
|
||||
export declare class LcdClient {
|
||||
/** Constructs an LCD client with 0 modules */
|
||||
static withModules(apiUrl: string, broadcastMode: BroadcastMode): LcdClient;
|
||||
/** Constructs an LCD client with 1 modules */
|
||||
static withModules(options: LcdClientBaseOptions): LcdClient;
|
||||
/** Constructs an LCD client with 1 module */
|
||||
static withModules<A extends LcdModule>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
): LcdClient & A;
|
||||
/** Constructs an LCD client with 2 modules */
|
||||
static withModules<A extends LcdModule, B extends LcdModule>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
): LcdClient & A & B;
|
||||
/** Constructs an LCD client with 3 modules */
|
||||
static withModules<A extends LcdModule, B extends LcdModule, C extends LcdModule>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
): LcdClient & A & B & C;
|
||||
/** Constructs an LCD client with 4 modules */
|
||||
static withModules<A extends LcdModule, B extends LcdModule, C extends LcdModule, D extends LcdModule>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
@ -55,8 +55,7 @@ export declare class LcdClient {
|
||||
D extends LcdModule,
|
||||
E extends LcdModule
|
||||
>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
@ -72,8 +71,7 @@ export declare class LcdClient {
|
||||
E extends LcdModule,
|
||||
F extends LcdModule
|
||||
>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
@ -91,8 +89,7 @@ export declare class LcdClient {
|
||||
F extends LcdModule,
|
||||
G extends LcdModule
|
||||
>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
@ -112,8 +109,7 @@ export declare class LcdClient {
|
||||
G extends LcdModule,
|
||||
H extends LcdModule
|
||||
>(
|
||||
apiUrl: string,
|
||||
broadcastMode: BroadcastMode,
|
||||
options: LcdClientBaseOptions,
|
||||
setupModuleA: LcdModuleSetup<A>,
|
||||
setupModuleB: LcdModuleSetup<B>,
|
||||
setupModuleC: LcdModuleSetup<C>,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user