mirror of
https://github.com/cosmos/cosmjs.git
synced 2025-03-10 21:49:15 +00:00
Organize adaptor exports
This commit is contained in:
parent
e4d1fd1425
commit
bfd9ebeeed
@ -20,6 +20,8 @@
|
|||||||
optional adaptor.
|
optional adaptor.
|
||||||
- @cosmjs/tendermint-rpc: Add an optional adaptor argument to `Client.connect`
|
- @cosmjs/tendermint-rpc: Add an optional adaptor argument to `Client.connect`
|
||||||
which allows skipping the auto-detection.
|
which allows skipping the auto-detection.
|
||||||
|
- @cosmjs/tendermint-rpc: Remove export `v0_33` in favour of `adaptor33` and
|
||||||
|
`adaptor34`. Export the `Adaptor` type.
|
||||||
|
|
||||||
## 0.23.1 (2020-10-27)
|
## 0.23.1 (2020-10-27)
|
||||||
|
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
// This module exposes translators for multiple tendermint versions
|
|
||||||
// Pick a version that matches the server to properly encode the data types
|
|
||||||
import { Adaptor } from "./adaptor";
|
|
||||||
import { v0_33 } from "./v0-33";
|
|
||||||
|
|
||||||
const hashes = {
|
|
||||||
v0_34: [
|
|
||||||
"ca2c9df", // v0.34.0-rc6
|
|
||||||
"", // See https://github.com/cosmos/cosmos-sdk/issues/7963
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns an Adaptor implementation for a given tendermint version.
|
|
||||||
* Throws when version is not supported.
|
|
||||||
*
|
|
||||||
* @param version full Tendermint version string, e.g. "0.20.1"
|
|
||||||
*/
|
|
||||||
export function adaptorForVersion(version: string): Adaptor {
|
|
||||||
if (version.startsWith("0.33.") || version.startsWith("0.34.") || hashes.v0_34.includes(version)) {
|
|
||||||
return v0_33;
|
|
||||||
} else {
|
|
||||||
throw new Error(`Unsupported tendermint version: ${version}`);
|
|
||||||
}
|
|
||||||
}
|
|
50
packages/tendermint-rpc/src/adaptors/index.ts
Normal file
50
packages/tendermint-rpc/src/adaptors/index.ts
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/* eslint-disable @typescript-eslint/naming-convention */
|
||||||
|
import { Adaptor } from "../adaptor";
|
||||||
|
import { v0_33 } from "./v0-33";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adaptor for Tendermint 0.33.
|
||||||
|
*
|
||||||
|
* Use this to skip auto-detection:
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* import { adaptor33, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
|
||||||
|
* // ...
|
||||||
|
* const client = await TendermintClient.connect(url, adaptor33);
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
export const adaptor33 = v0_33;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adaptor for Tendermint 0.34.
|
||||||
|
*
|
||||||
|
* Use this to skip auto-detection:
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
|
||||||
|
* // ...
|
||||||
|
* const client = await TendermintClient.connect(url, adaptor34);
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
export const adaptor34 = v0_33; // With this alias we can swap out the implementation without affecting caller code.
|
||||||
|
|
||||||
|
const hashes = {
|
||||||
|
v0_34: [
|
||||||
|
"ca2c9df", // v0.34.0-rc6
|
||||||
|
"", // See https://github.com/cosmos/cosmos-sdk/issues/7963
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an Adaptor implementation for a given tendermint version.
|
||||||
|
* Throws when version is not supported.
|
||||||
|
*
|
||||||
|
* @param version full Tendermint version string, e.g. "0.20.1"
|
||||||
|
*/
|
||||||
|
export function adaptorForVersion(version: string): Adaptor {
|
||||||
|
if (version.startsWith("0.33.") || version.startsWith("0.34.") || hashes.v0_34.includes(version)) {
|
||||||
|
return v0_33;
|
||||||
|
} else {
|
||||||
|
throw new Error(`Unsupported tendermint version: ${version}`);
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,8 @@
|
|||||||
import { fromBase64, fromHex } from "@cosmjs/encoding";
|
import { fromBase64, fromHex } from "@cosmjs/encoding";
|
||||||
import { ReadonlyDate } from "readonly-date";
|
import { ReadonlyDate } from "readonly-date";
|
||||||
|
|
||||||
import { ReadonlyDateWithNanoseconds } from "../responses";
|
import { ReadonlyDateWithNanoseconds } from "../../responses";
|
||||||
import { TxBytes } from "../types";
|
import { TxBytes } from "../../types";
|
||||||
import { hashBlock, hashTx } from "./hasher";
|
import { hashBlock, hashTx } from "./hasher";
|
||||||
|
|
||||||
describe("Hasher", () => {
|
describe("Hasher", () => {
|
@ -1,8 +1,15 @@
|
|||||||
import { Sha256 } from "@cosmjs/crypto";
|
import { Sha256 } from "@cosmjs/crypto";
|
||||||
|
|
||||||
import { encodeBlockId, encodeBytes, encodeInt, encodeString, encodeTime, encodeVersion } from "../encodings";
|
import {
|
||||||
import { Header } from "../responses";
|
encodeBlockId,
|
||||||
import { BlockHash, TxBytes, TxHash } from "../types";
|
encodeBytes,
|
||||||
|
encodeInt,
|
||||||
|
encodeString,
|
||||||
|
encodeTime,
|
||||||
|
encodeVersion,
|
||||||
|
} from "../../encodings";
|
||||||
|
import { Header } from "../../responses";
|
||||||
|
import { BlockHash, TxBytes, TxHash } from "../../types";
|
||||||
|
|
||||||
// hash is sha256
|
// hash is sha256
|
||||||
// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260
|
// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260
|
@ -1,5 +1,5 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
/* eslint-disable @typescript-eslint/naming-convention */
|
||||||
import { Adaptor } from "../adaptor";
|
import { Adaptor } from "../../adaptor";
|
||||||
import { hashBlock, hashTx } from "./hasher";
|
import { hashBlock, hashTx } from "./hasher";
|
||||||
import { Params } from "./requests";
|
import { Params } from "./requests";
|
||||||
import { Responses } from "./responses";
|
import { Responses } from "./responses";
|
@ -2,9 +2,17 @@
|
|||||||
import { toHex } from "@cosmjs/encoding";
|
import { toHex } from "@cosmjs/encoding";
|
||||||
import { JsonRpcRequest } from "@cosmjs/json-rpc";
|
import { JsonRpcRequest } from "@cosmjs/json-rpc";
|
||||||
|
|
||||||
import { assertNotEmpty, Base64, Base64String, HexString, Integer, IntegerString, may } from "../encodings";
|
import {
|
||||||
import { createJsonRpcRequest } from "../jsonrpc";
|
assertNotEmpty,
|
||||||
import * as requests from "../requests";
|
Base64,
|
||||||
|
Base64String,
|
||||||
|
HexString,
|
||||||
|
Integer,
|
||||||
|
IntegerString,
|
||||||
|
may,
|
||||||
|
} from "../../encodings";
|
||||||
|
import { createJsonRpcRequest } from "../../jsonrpc";
|
||||||
|
import * as requests from "../../requests";
|
||||||
|
|
||||||
interface HeightParam {
|
interface HeightParam {
|
||||||
readonly height?: number;
|
readonly height?: number;
|
@ -20,10 +20,10 @@ import {
|
|||||||
IntegerString,
|
IntegerString,
|
||||||
may,
|
may,
|
||||||
optional,
|
optional,
|
||||||
} from "../encodings";
|
} from "../../encodings";
|
||||||
import * as responses from "../responses";
|
import * as responses from "../../responses";
|
||||||
import { SubscriptionEvent } from "../rpcclients";
|
import { SubscriptionEvent } from "../../rpcclients";
|
||||||
import { IpPortString, TxBytes, TxHash, ValidatorPubkey, ValidatorSignature } from "../types";
|
import { IpPortString, TxBytes, TxHash, ValidatorPubkey, ValidatorSignature } from "../../types";
|
||||||
import { hashTx } from "./hasher";
|
import { hashTx } from "./hasher";
|
||||||
|
|
||||||
interface AbciInfoResult {
|
interface AbciInfoResult {
|
@ -6,7 +6,7 @@ import { ReadonlyDate } from "readonly-date";
|
|||||||
import { Stream } from "xstream";
|
import { Stream } from "xstream";
|
||||||
|
|
||||||
import { Adaptor } from "./adaptor";
|
import { Adaptor } from "./adaptor";
|
||||||
import { adaptorForVersion } from "./adaptorforversion";
|
import { adaptorForVersion } from "./adaptors";
|
||||||
import { Client } from "./client";
|
import { Client } from "./client";
|
||||||
import { ExpectedValues, tendermintInstances } from "./config.spec";
|
import { ExpectedValues, tendermintInstances } from "./config.spec";
|
||||||
import { buildQuery } from "./requests";
|
import { buildQuery } from "./requests";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Stream } from "xstream";
|
import { Stream } from "xstream";
|
||||||
|
|
||||||
import { Adaptor, Decoder, Encoder, Params, Responses } from "./adaptor";
|
import { Adaptor, Decoder, Encoder, Params, Responses } from "./adaptor";
|
||||||
import { adaptorForVersion } from "./adaptorforversion";
|
import { adaptorForVersion } from "./adaptors";
|
||||||
import { createJsonRpcRequest } from "./jsonrpc";
|
import { createJsonRpcRequest } from "./jsonrpc";
|
||||||
import * as requests from "./requests";
|
import * as requests from "./requests";
|
||||||
import * as responses from "./responses";
|
import * as responses from "./responses";
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
export { Adaptor } from "./adaptor";
|
||||||
// exported to access version-specific hashing
|
export { adaptor33, adaptor34 } from "./adaptors";
|
||||||
export { v0_33 } from "./v0-33";
|
|
||||||
|
|
||||||
export { Client } from "./client";
|
export { Client } from "./client";
|
||||||
export {
|
export {
|
||||||
AbciInfoRequest,
|
AbciInfoRequest,
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
import { Adaptor } from "./adaptor";
|
|
||||||
/**
|
|
||||||
* Returns an Adaptor implementation for a given tendermint version.
|
|
||||||
* Throws when version is not supported.
|
|
||||||
*
|
|
||||||
* @param version full Tendermint version string, e.g. "0.20.1"
|
|
||||||
*/
|
|
||||||
export declare function adaptorForVersion(version: string): Adaptor;
|
|
32
packages/tendermint-rpc/types/adaptors/index.d.ts
vendored
Normal file
32
packages/tendermint-rpc/types/adaptors/index.d.ts
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import { Adaptor } from "../adaptor";
|
||||||
|
/**
|
||||||
|
* Adaptor for Tendermint 0.33.
|
||||||
|
*
|
||||||
|
* Use this to skip auto-detection:
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* import { adaptor33, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
|
||||||
|
* // ...
|
||||||
|
* const client = await TendermintClient.connect(url, adaptor33);
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
export declare const adaptor33: Adaptor;
|
||||||
|
/**
|
||||||
|
* Adaptor for Tendermint 0.34.
|
||||||
|
*
|
||||||
|
* Use this to skip auto-detection:
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
|
||||||
|
* // ...
|
||||||
|
* const client = await TendermintClient.connect(url, adaptor34);
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
export declare const adaptor34: Adaptor;
|
||||||
|
/**
|
||||||
|
* Returns an Adaptor implementation for a given tendermint version.
|
||||||
|
* Throws when version is not supported.
|
||||||
|
*
|
||||||
|
* @param version full Tendermint version string, e.g. "0.20.1"
|
||||||
|
*/
|
||||||
|
export declare function adaptorForVersion(version: string): Adaptor;
|
@ -1,4 +1,4 @@
|
|||||||
import { Header } from "../responses";
|
import { Header } from "../../responses";
|
||||||
import { BlockHash, TxBytes, TxHash } from "../types";
|
import { BlockHash, TxBytes, TxHash } from "../../types";
|
||||||
export declare function hashTx(tx: TxBytes): TxHash;
|
export declare function hashTx(tx: TxBytes): TxHash;
|
||||||
export declare function hashBlock(header: Header): BlockHash;
|
export declare function hashBlock(header: Header): BlockHash;
|
1
packages/tendermint-rpc/types/adaptors/v0-33/hasher.spec.d.ts
vendored
Normal file
1
packages/tendermint-rpc/types/adaptors/v0-33/hasher.spec.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
export {};
|
2
packages/tendermint-rpc/types/adaptors/v0-33/index.d.ts
vendored
Normal file
2
packages/tendermint-rpc/types/adaptors/v0-33/index.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import { Adaptor } from "../../adaptor";
|
||||||
|
export declare const v0_33: Adaptor;
|
@ -1,5 +1,5 @@
|
|||||||
import { JsonRpcRequest } from "@cosmjs/json-rpc";
|
import { JsonRpcRequest } from "@cosmjs/json-rpc";
|
||||||
import * as requests from "../requests";
|
import * as requests from "../../requests";
|
||||||
export declare class Params {
|
export declare class Params {
|
||||||
static encodeAbciInfo(req: requests.AbciInfoRequest): JsonRpcRequest;
|
static encodeAbciInfo(req: requests.AbciInfoRequest): JsonRpcRequest;
|
||||||
static encodeAbciQuery(req: requests.AbciQueryRequest): JsonRpcRequest;
|
static encodeAbciQuery(req: requests.AbciQueryRequest): JsonRpcRequest;
|
@ -1,7 +1,7 @@
|
|||||||
import { JsonRpcSuccessResponse } from "@cosmjs/json-rpc";
|
import { JsonRpcSuccessResponse } from "@cosmjs/json-rpc";
|
||||||
import { Base64String } from "../encodings";
|
import { Base64String } from "../../encodings";
|
||||||
import * as responses from "../responses";
|
import * as responses from "../../responses";
|
||||||
import { SubscriptionEvent } from "../rpcclients";
|
import { SubscriptionEvent } from "../../rpcclients";
|
||||||
export interface RpcProofOp {
|
export interface RpcProofOp {
|
||||||
readonly type: string;
|
readonly type: string;
|
||||||
readonly key: Base64String;
|
readonly key: Base64String;
|
3
packages/tendermint-rpc/types/index.d.ts
vendored
3
packages/tendermint-rpc/types/index.d.ts
vendored
@ -1,4 +1,5 @@
|
|||||||
export { v0_33 } from "./v0-33";
|
export { Adaptor } from "./adaptor";
|
||||||
|
export { adaptor33, adaptor34 } from "./adaptors";
|
||||||
export { Client } from "./client";
|
export { Client } from "./client";
|
||||||
export {
|
export {
|
||||||
AbciInfoRequest,
|
AbciInfoRequest,
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
import { Adaptor } from "../adaptor";
|
|
||||||
export declare const v0_33: Adaptor;
|
|
Loading…
x
Reference in New Issue
Block a user