From d393adf31aaeda56bf47d6e1aa21b02c1e0f1dd5 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Thu, 6 Aug 2020 11:13:54 +0200 Subject: [PATCH] Add StargateClient --- packages/stargate/src/index.spec.ts | 5 ----- packages/stargate/src/index.ts | 1 + packages/stargate/src/stargateclient.spec.ts | 13 +++++++++++++ packages/stargate/src/stargateclient.ts | 18 ++++++++++++++++++ packages/stargate/src/testutils.spec.ts | 10 ++++++++++ packages/stargate/types/index.d.ts | 1 + packages/stargate/types/stargateclient.d.ts | 6 ++++++ 7 files changed, 49 insertions(+), 5 deletions(-) delete mode 100644 packages/stargate/src/index.spec.ts create mode 100644 packages/stargate/src/stargateclient.spec.ts create mode 100644 packages/stargate/src/stargateclient.ts create mode 100644 packages/stargate/src/testutils.spec.ts create mode 100644 packages/stargate/types/stargateclient.d.ts diff --git a/packages/stargate/src/index.spec.ts b/packages/stargate/src/index.spec.ts deleted file mode 100644 index 9d23c3f1..00000000 --- a/packages/stargate/src/index.spec.ts +++ /dev/null @@ -1,5 +0,0 @@ -describe("dummy", () => { - it("has at least one test", () => { - expect(2).toEqual(2); - }); -}); diff --git a/packages/stargate/src/index.ts b/packages/stargate/src/index.ts index e69de29b..abb21525 100644 --- a/packages/stargate/src/index.ts +++ b/packages/stargate/src/index.ts @@ -0,0 +1 @@ +export { StargateClient } from "./stargateclient"; diff --git a/packages/stargate/src/stargateclient.spec.ts b/packages/stargate/src/stargateclient.spec.ts new file mode 100644 index 00000000..da09f08a --- /dev/null +++ b/packages/stargate/src/stargateclient.spec.ts @@ -0,0 +1,13 @@ +import { StargateClient } from "./stargateclient"; +import { pendingWithoutSimapp, simapp } from "./testutils.spec"; + +describe("StargateClient", () => { + describe("connect", () => { + it("works", async () => { + pendingWithoutSimapp(); + const client = await StargateClient.connect(simapp.tendermintUrl); + expect(client).toBeTruthy(); + client.disconnect(); + }); + }); +}); diff --git a/packages/stargate/src/stargateclient.ts b/packages/stargate/src/stargateclient.ts new file mode 100644 index 00000000..40ea0342 --- /dev/null +++ b/packages/stargate/src/stargateclient.ts @@ -0,0 +1,18 @@ +import { Client as TendermintClient } from "@cosmjs/tendermint-rpc"; + +export class StargateClient { + private readonly tmClient: TendermintClient; + + public static async connect(endpoint: string): Promise { + const tmClient = await TendermintClient.connect(endpoint); + return new StargateClient(tmClient); + } + + private constructor(tmClient: TendermintClient) { + this.tmClient = tmClient; + } + + public disconnect(): void { + this.tmClient.disconnect(); + } +} diff --git a/packages/stargate/src/testutils.spec.ts b/packages/stargate/src/testutils.spec.ts new file mode 100644 index 00000000..b02e5526 --- /dev/null +++ b/packages/stargate/src/testutils.spec.ts @@ -0,0 +1,10 @@ +export function pendingWithoutSimapp(): void { + if (!process.env.SIMAPP_ENABLED) { + return pending("Set SIMAPP_ENABLED to enable Simapp based tests"); + } +} + +export const simapp = { + tendermintUrl: "localhost:26657", + chainId: "simd-testing", +}; diff --git a/packages/stargate/types/index.d.ts b/packages/stargate/types/index.d.ts index e69de29b..abb21525 100644 --- a/packages/stargate/types/index.d.ts +++ b/packages/stargate/types/index.d.ts @@ -0,0 +1 @@ +export { StargateClient } from "./stargateclient"; diff --git a/packages/stargate/types/stargateclient.d.ts b/packages/stargate/types/stargateclient.d.ts new file mode 100644 index 00000000..f65d2e29 --- /dev/null +++ b/packages/stargate/types/stargateclient.d.ts @@ -0,0 +1,6 @@ +export declare class StargateClient { + private readonly tmClient; + static connect(endpoint: string): Promise; + private constructor(); + disconnect(): void; +}