diff --git a/packages/tendermint-rpc/src/index.ts b/packages/tendermint-rpc/src/index.ts index 6b87b4e2..8ab2c890 100644 --- a/packages/tendermint-rpc/src/index.ts +++ b/packages/tendermint-rpc/src/index.ts @@ -1,39 +1,8 @@ -export { Adaptor } from "./adaptor"; -export { adaptor33, adaptor34 } from "./adaptors"; -export { Client } from "./client"; -export { - DateTime, - ReadonlyDateWithNanoseconds, - fromRfc3339WithNanoseconds, - fromSeconds, - toRfc3339WithNanoseconds, - toSeconds, -} from "./dates"; -export { - AbciInfoRequest, - AbciQueryParams, - AbciQueryRequest, - BlockRequest, - BlockchainRequest, - BlockResultsRequest, - BroadcastTxRequest, - BroadcastTxParams, - CommitRequest, - GenesisRequest, - HealthRequest, - Method, - Request, - QueryTag, - StatusRequest, - SubscriptionEventType, - TxParams, - TxRequest, - TxSearchParams, - TxSearchRequest, - ValidatorsRequest, - ValidatorsParams, -} from "./requests"; export { + adaptor33, + adaptor34, + Adaptor, + Client, AbciInfoResponse, AbciQueryResponse, Attribute, @@ -78,6 +47,36 @@ export { Version, Vote, VoteType, -} from "./responses"; + AbciInfoRequest, + AbciQueryParams, + AbciQueryRequest, + BlockRequest, + BlockchainRequest, + BlockResultsRequest, + BroadcastTxRequest, + BroadcastTxParams, + CommitRequest, + GenesisRequest, + HealthRequest, + Method, + Request, + QueryTag, + StatusRequest, + SubscriptionEventType, + TxParams, + TxRequest, + TxSearchParams, + TxSearchRequest, + ValidatorsRequest, + ValidatorsParams, +} from "./legacy"; +export { + DateTime, + ReadonlyDateWithNanoseconds, + fromRfc3339WithNanoseconds, + fromSeconds, + toRfc3339WithNanoseconds, + toSeconds, +} from "./dates"; export { HttpClient, WebsocketClient } from "./rpcclients"; // TODO: Why do we export those outside of this package? export { BlockIdFlag, CommitSignature, ValidatorEd25519Pubkey, ValidatorPubkey } from "./types"; diff --git a/packages/tendermint-rpc/src/adaptor.ts b/packages/tendermint-rpc/src/legacy/adaptor.ts similarity index 98% rename from packages/tendermint-rpc/src/adaptor.ts rename to packages/tendermint-rpc/src/legacy/adaptor.ts index 27c9e4f3..7248942d 100644 --- a/packages/tendermint-rpc/src/adaptor.ts +++ b/packages/tendermint-rpc/src/legacy/adaptor.ts @@ -1,8 +1,8 @@ import { JsonRpcRequest, JsonRpcSuccessResponse } from "@cosmjs/json-rpc"; +import { SubscriptionEvent } from "../rpcclients"; import * as requests from "./requests"; import * as responses from "./responses"; -import { SubscriptionEvent } from "./rpcclients"; export interface Adaptor { readonly params: Params; diff --git a/packages/tendermint-rpc/src/adaptors/index.ts b/packages/tendermint-rpc/src/legacy/adaptors/index.ts similarity index 100% rename from packages/tendermint-rpc/src/adaptors/index.ts rename to packages/tendermint-rpc/src/legacy/adaptors/index.ts diff --git a/packages/tendermint-rpc/src/adaptors/v0-33/index.ts b/packages/tendermint-rpc/src/legacy/adaptors/v0-33/index.ts similarity index 100% rename from packages/tendermint-rpc/src/adaptors/v0-33/index.ts rename to packages/tendermint-rpc/src/legacy/adaptors/v0-33/index.ts diff --git a/packages/tendermint-rpc/src/adaptors/v0-33/requests.ts b/packages/tendermint-rpc/src/legacy/adaptors/v0-33/requests.ts similarity index 98% rename from packages/tendermint-rpc/src/adaptors/v0-33/requests.ts rename to packages/tendermint-rpc/src/legacy/adaptors/v0-33/requests.ts index 0ec03de3..54436f7a 100644 --- a/packages/tendermint-rpc/src/adaptors/v0-33/requests.ts +++ b/packages/tendermint-rpc/src/legacy/adaptors/v0-33/requests.ts @@ -2,8 +2,8 @@ import { toBase64, toHex } from "@cosmjs/encoding"; import { JsonRpcRequest } from "@cosmjs/json-rpc"; +import { createJsonRpcRequest } from "../../../jsonrpc"; import { assertNotEmpty, Integer, may } from "../../encodings"; -import { createJsonRpcRequest } from "../../jsonrpc"; import * as requests from "../../requests"; interface HeightParam { diff --git a/packages/tendermint-rpc/src/adaptors/v0-33/responses.ts b/packages/tendermint-rpc/src/legacy/adaptors/v0-33/responses.ts similarity index 99% rename from packages/tendermint-rpc/src/adaptors/v0-33/responses.ts rename to packages/tendermint-rpc/src/legacy/adaptors/v0-33/responses.ts index 9893ab0d..9feb8c2e 100644 --- a/packages/tendermint-rpc/src/adaptors/v0-33/responses.ts +++ b/packages/tendermint-rpc/src/legacy/adaptors/v0-33/responses.ts @@ -3,7 +3,9 @@ import { fromBase64, fromHex } from "@cosmjs/encoding"; import { JsonRpcSuccessResponse } from "@cosmjs/json-rpc"; import { assert } from "@cosmjs/utils"; -import { fromRfc3339WithNanoseconds } from "../../dates"; +import { fromRfc3339WithNanoseconds } from "../../../dates"; +import { SubscriptionEvent } from "../../../rpcclients"; +import { BlockIdFlag, CommitSignature, ValidatorPubkey } from "../../../types"; import { assertArray, assertBoolean, @@ -19,8 +21,6 @@ import { } from "../../encodings"; import { hashTx } from "../../hasher"; import * as responses from "../../responses"; -import { SubscriptionEvent } from "../../rpcclients"; -import { BlockIdFlag, CommitSignature, ValidatorPubkey } from "../../types"; interface AbciInfoResult { readonly response: RpcAbciInfoResponse; diff --git a/packages/tendermint-rpc/src/client.spec.ts b/packages/tendermint-rpc/src/legacy/client.spec.ts similarity index 99% rename from packages/tendermint-rpc/src/client.spec.ts rename to packages/tendermint-rpc/src/legacy/client.spec.ts index c9b523ea..b8d47aa3 100644 --- a/packages/tendermint-rpc/src/client.spec.ts +++ b/packages/tendermint-rpc/src/legacy/client.spec.ts @@ -5,14 +5,14 @@ import { sleep } from "@cosmjs/utils"; import { ReadonlyDate } from "readonly-date"; import { Stream } from "xstream"; +import { ExpectedValues, tendermintInstances } from "../config.spec"; +import { HttpClient, RpcClient, WebsocketClient } from "../rpcclients"; +import { chainIdMatcher } from "../testutil.spec"; import { Adaptor } from "./adaptor"; import { adaptorForVersion } from "./adaptors"; import { Client } from "./client"; -import { ExpectedValues, tendermintInstances } from "./config.spec"; import { buildQuery } from "./requests"; import * as responses from "./responses"; -import { HttpClient, RpcClient, WebsocketClient } from "./rpcclients"; -import { chainIdMatcher } from "./testutil.spec"; function tendermintEnabled(): boolean { return !!process.env.TENDERMINT_ENABLED; diff --git a/packages/tendermint-rpc/src/client.ts b/packages/tendermint-rpc/src/legacy/client.ts similarity index 99% rename from packages/tendermint-rpc/src/client.ts rename to packages/tendermint-rpc/src/legacy/client.ts index 945db730..7d5ce30f 100644 --- a/packages/tendermint-rpc/src/client.ts +++ b/packages/tendermint-rpc/src/legacy/client.ts @@ -1,18 +1,18 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { Stream } from "xstream"; -import { Adaptor, Decoder, Encoder, Params, Responses } from "./adaptor"; -import { adaptorForVersion } from "./adaptors"; -import { createJsonRpcRequest } from "./jsonrpc"; -import * as requests from "./requests"; -import * as responses from "./responses"; +import { createJsonRpcRequest } from "../jsonrpc"; import { HttpClient, instanceOfRpcStreamingClient, RpcClient, SubscriptionEvent, WebsocketClient, -} from "./rpcclients"; +} from "../rpcclients"; +import { Adaptor, Decoder, Encoder, Params, Responses } from "./adaptor"; +import { adaptorForVersion } from "./adaptors"; +import * as requests from "./requests"; +import * as responses from "./responses"; export class Client { /** diff --git a/packages/tendermint-rpc/src/encodings.spec.ts b/packages/tendermint-rpc/src/legacy/encodings.spec.ts similarity index 100% rename from packages/tendermint-rpc/src/encodings.spec.ts rename to packages/tendermint-rpc/src/legacy/encodings.spec.ts diff --git a/packages/tendermint-rpc/src/encodings.ts b/packages/tendermint-rpc/src/legacy/encodings.ts similarity index 99% rename from packages/tendermint-rpc/src/encodings.ts rename to packages/tendermint-rpc/src/legacy/encodings.ts index ef7727ee..f950fd17 100644 --- a/packages/tendermint-rpc/src/encodings.ts +++ b/packages/tendermint-rpc/src/legacy/encodings.ts @@ -1,7 +1,7 @@ import { toUtf8 } from "@cosmjs/encoding"; import { Int53 } from "@cosmjs/math"; -import { ReadonlyDateWithNanoseconds } from "./dates"; +import { ReadonlyDateWithNanoseconds } from "../dates"; import { BlockId, Version } from "./responses"; /** diff --git a/packages/tendermint-rpc/src/hasher.spec.ts b/packages/tendermint-rpc/src/legacy/hasher.spec.ts similarity index 98% rename from packages/tendermint-rpc/src/hasher.spec.ts rename to packages/tendermint-rpc/src/legacy/hasher.spec.ts index 43b02203..c6644875 100644 --- a/packages/tendermint-rpc/src/hasher.spec.ts +++ b/packages/tendermint-rpc/src/legacy/hasher.spec.ts @@ -1,7 +1,7 @@ import { fromBase64, fromHex } from "@cosmjs/encoding"; import { ReadonlyDate } from "readonly-date"; -import { ReadonlyDateWithNanoseconds } from "./dates"; +import { ReadonlyDateWithNanoseconds } from "../dates"; import { hashBlock, hashTx } from "./hasher"; describe("Hasher", () => { diff --git a/packages/tendermint-rpc/src/hasher.ts b/packages/tendermint-rpc/src/legacy/hasher.ts similarity index 100% rename from packages/tendermint-rpc/src/hasher.ts rename to packages/tendermint-rpc/src/legacy/hasher.ts diff --git a/packages/tendermint-rpc/src/legacy/index.ts b/packages/tendermint-rpc/src/legacy/index.ts new file mode 100644 index 00000000..cc946896 --- /dev/null +++ b/packages/tendermint-rpc/src/legacy/index.ts @@ -0,0 +1,73 @@ +export { adaptor33, adaptor34 } from "./adaptors"; +export { Adaptor } from "./adaptor"; +export { Client } from "./client"; +export { + AbciInfoRequest, + AbciQueryParams, + AbciQueryRequest, + BlockRequest, + BlockchainRequest, + BlockResultsRequest, + BroadcastTxRequest, + BroadcastTxParams, + CommitRequest, + GenesisRequest, + HealthRequest, + Method, + Request, + QueryTag, + StatusRequest, + SubscriptionEventType, + TxParams, + TxRequest, + TxSearchParams, + TxSearchRequest, + ValidatorsRequest, + ValidatorsParams, +} from "./requests"; +export { + AbciInfoResponse, + AbciQueryResponse, + Attribute, + Block, + BlockchainResponse, + BlockGossipParams, + BlockId, + BlockMeta, + BlockParams, + BlockResponse, + BlockResultsResponse, + BroadcastTxAsyncResponse, + BroadcastTxCommitResponse, + broadcastTxCommitSuccess, + BroadcastTxSyncResponse, + broadcastTxSyncSuccess, + Commit, + CommitResponse, + ConsensusParams, + Event, + Evidence, + EvidenceParams, + GenesisResponse, + Header, + HealthResponse, + NewBlockEvent, + NewBlockHeaderEvent, + NodeInfo, + ProofOp, + QueryProof, + Response, + StatusResponse, + SyncInfo, + TxData, + TxEvent, + TxProof, + TxResponse, + TxSearchResponse, + TxSizeParams, + Validator, + ValidatorsResponse, + Version, + Vote, + VoteType, +} from "./responses"; diff --git a/packages/tendermint-rpc/src/requests.spec.ts b/packages/tendermint-rpc/src/legacy/requests.spec.ts similarity index 100% rename from packages/tendermint-rpc/src/requests.spec.ts rename to packages/tendermint-rpc/src/legacy/requests.spec.ts diff --git a/packages/tendermint-rpc/src/requests.ts b/packages/tendermint-rpc/src/legacy/requests.ts similarity index 100% rename from packages/tendermint-rpc/src/requests.ts rename to packages/tendermint-rpc/src/legacy/requests.ts diff --git a/packages/tendermint-rpc/src/responses.ts b/packages/tendermint-rpc/src/legacy/responses.ts similarity index 98% rename from packages/tendermint-rpc/src/responses.ts rename to packages/tendermint-rpc/src/legacy/responses.ts index 5706726a..55f1dbcd 100644 --- a/packages/tendermint-rpc/src/responses.ts +++ b/packages/tendermint-rpc/src/legacy/responses.ts @@ -1,7 +1,7 @@ import { ReadonlyDate } from "readonly-date"; -import { ReadonlyDateWithNanoseconds } from "./dates"; -import { CommitSignature, ValidatorPubkey } from "./types"; +import { ReadonlyDateWithNanoseconds } from "../dates"; +import { CommitSignature, ValidatorPubkey } from "../types"; export type Response = | AbciInfoResponse diff --git a/packages/tendermint-rpc/src/rpcclients/httpclient.spec.ts b/packages/tendermint-rpc/src/rpcclients/httpclient.spec.ts index 0b5a707e..a1bcbb4f 100644 --- a/packages/tendermint-rpc/src/rpcclients/httpclient.spec.ts +++ b/packages/tendermint-rpc/src/rpcclients/httpclient.spec.ts @@ -1,6 +1,5 @@ import { defaultInstance } from "../config.spec"; import { createJsonRpcRequest } from "../jsonrpc"; -import { Method } from "../requests"; import { HttpClient } from "./httpclient"; function pendingWithoutTendermint(): void { @@ -16,10 +15,10 @@ describe("HttpClient", () => { pendingWithoutTendermint(); const client = new HttpClient(tendermintUrl); - const healthResponse = await client.execute(createJsonRpcRequest(Method.Health)); + const healthResponse = await client.execute(createJsonRpcRequest("health")); expect(healthResponse.result).toEqual({}); - const statusResponse = await client.execute(createJsonRpcRequest(Method.Status)); + const statusResponse = await client.execute(createJsonRpcRequest("status")); expect(statusResponse.result).toBeTruthy(); expect(statusResponse.result.node_info).toBeTruthy(); diff --git a/packages/tendermint-rpc/src/rpcclients/rpcclient.spec.ts b/packages/tendermint-rpc/src/rpcclients/rpcclient.spec.ts index 751f4b5b..d45eb118 100644 --- a/packages/tendermint-rpc/src/rpcclients/rpcclient.spec.ts +++ b/packages/tendermint-rpc/src/rpcclients/rpcclient.spec.ts @@ -1,6 +1,5 @@ import { defaultInstance } from "../config.spec"; import { createJsonRpcRequest } from "../jsonrpc"; -import { Method } from "../requests"; import { HttpClient } from "./httpclient"; import { instanceOfRpcStreamingClient } from "./rpcclient"; import { WebsocketClient } from "./websocketclient"; @@ -31,7 +30,7 @@ describe("RpcClient", () => { it("should also work with trailing slashes", async () => { pendingWithoutTendermint(); - const statusRequest = createJsonRpcRequest(Method.Status); + const statusRequest = createJsonRpcRequest("status"); const httpClient = new HttpClient(tendermintUrl + "/"); expect(await httpClient.execute(statusRequest)).toBeDefined(); diff --git a/packages/tendermint-rpc/src/rpcclients/websocketclient.spec.ts b/packages/tendermint-rpc/src/rpcclients/websocketclient.spec.ts index 2b3f366a..a493e1ad 100644 --- a/packages/tendermint-rpc/src/rpcclients/websocketclient.spec.ts +++ b/packages/tendermint-rpc/src/rpcclients/websocketclient.spec.ts @@ -1,10 +1,9 @@ +import { Uint53 } from "@cosmjs/math"; import { toListPromise } from "@cosmjs/stream"; import { Stream } from "xstream"; import { defaultInstance } from "../config.spec"; -import { Integer } from "../encodings"; import { createJsonRpcRequest } from "../jsonrpc"; -import { Method } from "../requests"; import { SubscriptionEvent } from "./rpcclient"; import { WebsocketClient } from "./websocketclient"; @@ -22,10 +21,10 @@ describe("WebsocketClient", () => { const client = new WebsocketClient(tendermintUrl); - const healthResponse = await client.execute(createJsonRpcRequest(Method.Health)); + const healthResponse = await client.execute(createJsonRpcRequest("health")); expect(healthResponse.result).toEqual({}); - const statusResponse = await client.execute(createJsonRpcRequest(Method.Status)); + const statusResponse = await client.execute(createJsonRpcRequest("status")); expect(statusResponse.result).toBeTruthy(); expect(statusResponse.result.node_info).toBeTruthy(); @@ -57,8 +56,9 @@ describe("WebsocketClient", () => { if (events.length === 2) { // make sure they are consequtive heights - const height = (i: number): number => Integer.parse(events[i].data.value.header.height); - expect(height(1)).toEqual(height(0) + 1); + const eventHeight = (index: number): number => + Uint53.fromString(events[index].data.value.header.height).toNumber(); + expect(eventHeight(1)).toEqual(eventHeight(0) + 1); subscription.unsubscribe(); @@ -132,7 +132,7 @@ describe("WebsocketClient", () => { }); client - .execute(createJsonRpcRequest(Method.Status)) + .execute(createJsonRpcRequest("status")) .then((startusResponse) => expect(startusResponse).toBeTruthy()) .catch(done.fail); }); @@ -165,12 +165,12 @@ describe("WebsocketClient", () => { const client = new WebsocketClient(tendermintUrl); // dummy command to ensure client is connected - await client.execute(createJsonRpcRequest(Method.Health)); + await client.execute(createJsonRpcRequest("health")); client.disconnect(); await client - .execute(createJsonRpcRequest(Method.Health)) + .execute(createJsonRpcRequest("health")) .then(() => fail("must not resolve")) .catch((error) => expect(error).toMatch(/socket has disconnected/i)); }); @@ -182,7 +182,7 @@ describe("WebsocketClient", () => { (async () => { const client = new WebsocketClient(tendermintUrl); // dummy command to ensure client is connected - await client.execute(createJsonRpcRequest(Method.Health)); + await client.execute(createJsonRpcRequest("health")); client.disconnect(); @@ -198,7 +198,7 @@ describe("WebsocketClient", () => { const client = new WebsocketClient(tendermintUrl); - const req = createJsonRpcRequest(Method.Health); + const req = createJsonRpcRequest("health"); expect(() => client.listen(req)).toThrowError(/request method must be "subscribe"/i); await client.connected();