From 4f4d1537bd0fe67872b23e9536d56b4a9fbadfcd Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Wed, 26 May 2021 13:45:02 +0200 Subject: [PATCH 01/15] Upgrade Tendermint version in tests to 0.34.10 and adapt code --- .../src/legacy/adaptors/index.ts | 18 +++++------------- .../tendermint-rpc/src/legacy/client.spec.ts | 2 +- .../tendermint34/tendermint34client.spec.ts | 2 +- packages/tendermint-rpc/src/testutil.spec.ts | 9 +++++---- scripts/tendermint/all_start.sh | 2 +- scripts/tendermint/all_stop.sh | 2 +- 6 files changed, 14 insertions(+), 21 deletions(-) diff --git a/packages/tendermint-rpc/src/legacy/adaptors/index.ts b/packages/tendermint-rpc/src/legacy/adaptors/index.ts index 51223aba..7097e36a 100644 --- a/packages/tendermint-rpc/src/legacy/adaptors/index.ts +++ b/packages/tendermint-rpc/src/legacy/adaptors/index.ts @@ -28,23 +28,15 @@ export const adaptor33 = v0_33; */ 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 - "182fa32", // v0.34.0 - ], -}; - /** * 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}`); - } +export function adaptorForVersion(_version: string): Adaptor { + // Note: In some cases, Tendermint 0.34 returns an empty version value. + // This supports 0.33 and 0.34 now, no matter which version you provide. + // Very soon this function becomes obsolete (https://github.com/cosmos/cosmjs/issues/789). + return v0_33; } diff --git a/packages/tendermint-rpc/src/legacy/client.spec.ts b/packages/tendermint-rpc/src/legacy/client.spec.ts index a3c290a5..eda05c4a 100644 --- a/packages/tendermint-rpc/src/legacy/client.spec.ts +++ b/packages/tendermint-rpc/src/legacy/client.spec.ts @@ -167,7 +167,7 @@ function defaultTestSuite(rpcFactory: () => RpcClient, adaptor: Adaptor, expecte const status = await client.status(); // node info - expect(status.nodeInfo.version).toEqual(expected.version); + expect(status.nodeInfo.version).toMatch(expected.version); expect(status.nodeInfo.protocolVersion).toEqual({ p2p: expected.p2pVersion, block: expected.blockVersion, diff --git a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts index 1f5b1666..2c33d216 100644 --- a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts +++ b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts @@ -166,7 +166,7 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) const status = await client.status(); // node info - expect(status.nodeInfo.version).toEqual(expected.version); + expect(status.nodeInfo.version).toMatch(expected.version); expect(status.nodeInfo.protocolVersion).toEqual({ p2p: expected.p2pVersion, block: expected.blockVersion, diff --git a/packages/tendermint-rpc/src/testutil.spec.ts b/packages/tendermint-rpc/src/testutil.spec.ts index c7315bf5..353dd26f 100644 --- a/packages/tendermint-rpc/src/testutil.spec.ts +++ b/packages/tendermint-rpc/src/testutil.spec.ts @@ -1,9 +1,12 @@ import { toAscii } from "@cosmjs/encoding"; import { sleep } from "@cosmjs/utils"; +export const chainIdMatcher = /^[-a-zA-Z0-9]{3,30}$/; +export const anyMatcher = /^.*$/; // Any string, including empty. Does not do more than a type check. + export interface ExpectedValues { /** The Tendermint version as reported by Tendermint itself */ - readonly version: string; + readonly version: string | RegExp; readonly appCreator: string; readonly p2pVersion: number; readonly blockVersion: number; @@ -49,7 +52,7 @@ export const tendermintInstances: readonly TendermintInstance[] = [ version: "0.34.x", blockTime: 500, expected: { - version: "182fa32", // srsly? + version: anyMatcher, appCreator: "Cosmoshi Netowoko", p2pVersion: 8, blockVersion: 11, @@ -60,8 +63,6 @@ export const tendermintInstances: readonly TendermintInstance[] = [ export const defaultInstance: TendermintInstance = tendermintInstances[0]; -export const chainIdMatcher = /^[-a-zA-Z0-9]{3,30}$/; - export function tendermintEnabled(): boolean { return !!process.env.TENDERMINT_ENABLED; } diff --git a/scripts/tendermint/all_start.sh b/scripts/tendermint/all_start.sh index bbe27ca1..37a87fa8 100755 --- a/scripts/tendermint/all_start.sh +++ b/scripts/tendermint/all_start.sh @@ -5,7 +5,7 @@ command -v shellcheck >/dev/null && shellcheck "$0" # Find latest patch releases at https://hub.docker.com/r/tendermint/tendermint/tags/ declare -a TM_VERSIONS TM_VERSIONS[33]=v0.33.8 -TM_VERSIONS[34]=v0.34.0 +TM_VERSIONS[34]=v0.34.10 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" diff --git a/scripts/tendermint/all_stop.sh b/scripts/tendermint/all_stop.sh index a2ccd3e2..e77084df 100755 --- a/scripts/tendermint/all_stop.sh +++ b/scripts/tendermint/all_stop.sh @@ -4,7 +4,7 @@ command -v shellcheck >/dev/null && shellcheck "$0" declare -a TM_VERSIONS TM_VERSIONS[33]=v0.33.8 -TM_VERSIONS[34]=v0.34.0 +TM_VERSIONS[34]=v0.34.10 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" From be241df2d06d0d04f17250d651f76013c1e7f54c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 May 2021 02:30:22 +0000 Subject: [PATCH 02/15] Bump browserslist from 4.16.4 to 4.16.6 Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.16.4 to 4.16.6. - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](https://github.com/browserslist/browserslist/compare/4.16.4...4.16.6) Signed-off-by: dependabot[bot] --- yarn.lock | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/yarn.lock b/yarn.lock index c236b523..3626a0c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2315,13 +2315,13 @@ browserify-sign@^4.0.0: safe-buffer "^5.2.0" browserslist@^4.14.5: - version "4.16.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.4.tgz#7ebf913487f40caf4637b892b268069951c35d58" - integrity sha512-d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ== + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== dependencies: - caniuse-lite "^1.0.30001208" + caniuse-lite "^1.0.30001219" colorette "^1.2.2" - electron-to-chromium "^1.3.712" + electron-to-chromium "^1.3.723" escalade "^3.1.1" node-releases "^1.1.71" @@ -2452,10 +2452,10 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001208: - version "1.0.30001208" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz#a999014a35cebd4f98c405930a057a0d75352eb9" - integrity sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA== +caniuse-lite@^1.0.30001219: + version "1.0.30001230" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz#8135c57459854b2240b57a4a6786044bdc5a9f71" + integrity sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ== caseless@~0.12.0: version "0.12.0" @@ -3217,10 +3217,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.712: - version "1.3.717" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.717.tgz#78d4c857070755fb58ab64bcc173db1d51cbc25f" - integrity sha512-OfzVPIqD1MkJ7fX+yTl2nKyOE4FReeVfMCzzxQS+Kp43hZYwHwThlGP+EGIZRXJsxCM7dqo8Y65NOX/HP12iXQ== +electron-to-chromium@^1.3.723: + version "1.3.740" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.740.tgz#e38b7d2b848f632191b643e6dabca51be2162922" + integrity sha512-Mi2m55JrX2BFbNZGKYR+2ItcGnR4O5HhrvgoRRyZQlaMGQULqDhoGkLWHzJoshSzi7k1PUofxcDbNhlFrDZNhg== elliptic@^6.5.3: version "6.5.4" @@ -5696,9 +5696,9 @@ node-preload@^0.2.1: process-on-spawn "^1.0.0" node-releases@^1.1.71: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== + version "1.1.72" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" + integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== noop-logger@^0.1.1: version "0.1.1" From 961b46d36ef81eb5590b20fce5dd0de20a2a8a66 Mon Sep 17 00:00:00 2001 From: Riccardo Montagnin Date: Tue, 25 May 2021 12:20:51 +0200 Subject: [PATCH 03/15] Added the support for block_search RPC endpoint --- .../src/tendermint34/adaptor.ts | 2 + .../tendermint34/adaptors/v0-34/requests.ts | 19 +++++++++ .../tendermint34/adaptors/v0-34/responses.ts | 16 ++++++++ .../src/tendermint34/requests.ts | 17 ++++++++ .../src/tendermint34/responses.ts | 5 +++ .../src/tendermint34/tendermint34client.ts | 41 +++++++++++++++++++ 6 files changed, 100 insertions(+) diff --git a/packages/tendermint-rpc/src/tendermint34/adaptor.ts b/packages/tendermint-rpc/src/tendermint34/adaptor.ts index 7248942d..44c06917 100644 --- a/packages/tendermint-rpc/src/tendermint34/adaptor.ts +++ b/packages/tendermint-rpc/src/tendermint34/adaptor.ts @@ -23,6 +23,7 @@ export interface Params { readonly encodeBlock: (req: requests.BlockRequest) => JsonRpcRequest; readonly encodeBlockchain: (req: requests.BlockchainRequest) => JsonRpcRequest; readonly encodeBlockResults: (req: requests.BlockResultsRequest) => JsonRpcRequest; + readonly encodeBlockSearch: (req: requests.BlockSearchRequest) => JsonRpcRequest; readonly encodeBroadcastTx: (req: requests.BroadcastTxRequest) => JsonRpcRequest; readonly encodeCommit: (req: requests.CommitRequest) => JsonRpcRequest; readonly encodeGenesis: (req: requests.GenesisRequest) => JsonRpcRequest; @@ -39,6 +40,7 @@ export interface Responses { readonly decodeAbciQuery: (response: JsonRpcSuccessResponse) => responses.AbciQueryResponse; readonly decodeBlock: (response: JsonRpcSuccessResponse) => responses.BlockResponse; readonly decodeBlockResults: (response: JsonRpcSuccessResponse) => responses.BlockResultsResponse; + readonly decodeBlockSearch: (response: JsonRpcSuccessResponse) => responses.BlockSearchResponse; readonly decodeBlockchain: (response: JsonRpcSuccessResponse) => responses.BlockchainResponse; readonly decodeBroadcastTxSync: (response: JsonRpcSuccessResponse) => responses.BroadcastTxSyncResponse; readonly decodeBroadcastTxAsync: (response: JsonRpcSuccessResponse) => responses.BroadcastTxAsyncResponse; diff --git a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/requests.ts b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/requests.ts index 54436f7a..1dc11c4c 100644 --- a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/requests.ts +++ b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/requests.ts @@ -30,6 +30,21 @@ function encodeBlockchainRequestParams(param: requests.BlockchainRequestParams): }; } +interface RpcBlockSearchParams { + readonly query: string; + readonly page?: string; + readonly per_page?: string; + readonly order_by?: string; +} +function encodeBlockSearchParams(params: requests.BlockSearchParams): RpcBlockSearchParams { + return { + query: params.query, + page: may(Integer.encode, params.page), + per_page: may(Integer.encode, params.per_page), + order_by: params.order_by, + }; +} + interface RpcAbciQueryParams { readonly path: string; /** hex encoded */ @@ -118,6 +133,10 @@ export class Params { return createJsonRpcRequest(req.method, encodeHeightParam(req.params)); } + public static encodeBlockSearch(req: requests.BlockSearchRequest): JsonRpcRequest { + return createJsonRpcRequest(req.method, encodeBlockSearchParams(req.params)); + } + public static encodeBroadcastTx(req: requests.BroadcastTxRequest): JsonRpcRequest { return createJsonRpcRequest(req.method, encodeBroadcastTxParams(req.params)); } diff --git a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts index 5386c7e1..7f5ffa0e 100644 --- a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts @@ -783,6 +783,18 @@ function decodeBlockResponse(data: RpcBlockResponse): responses.BlockResponse { }; } +interface RpcBlockSearchResponse { + readonly blocks: readonly RpcBlockResponse[]; + readonly total_count: string; +} + +function decodeBlockSearch(data: RpcBlockSearchResponse): responses.BlockSearchResponse { + return { + totalCount: Integer.parse(assertNotEmpty(data.total_count)), + blocks: assertArray(data.blocks).map(decodeBlockResponse), + }; +} + export class Responses { public static decodeAbciInfo(response: JsonRpcSuccessResponse): responses.AbciInfoResponse { return decodeAbciInfo(assertObject((response.result as AbciInfoResult).response)); @@ -800,6 +812,10 @@ export class Responses { return decodeBlockResults(response.result as RpcBlockResultsResponse); } + public static decodeBlockSearch(response: JsonRpcSuccessResponse): responses.BlockSearchResponse { + return decodeBlockSearch(response.result as RpcBlockSearchResponse); + } + public static decodeBlockchain(response: JsonRpcSuccessResponse): responses.BlockchainResponse { return decodeBlockchain(response.result as RpcBlockchainResponse); } diff --git a/packages/tendermint-rpc/src/tendermint34/requests.ts b/packages/tendermint-rpc/src/tendermint34/requests.ts index d985b8e6..75690766 100644 --- a/packages/tendermint-rpc/src/tendermint34/requests.ts +++ b/packages/tendermint-rpc/src/tendermint34/requests.ts @@ -12,6 +12,7 @@ export enum Method { /** Get block headers for minHeight <= height <= maxHeight. */ Blockchain = "blockchain", BlockResults = "block_results", + BlockSearch = "block_search", BroadcastTxAsync = "broadcast_tx_async", BroadcastTxSync = "broadcast_tx_sync", BroadcastTxCommit = "broadcast_tx_commit", @@ -30,6 +31,7 @@ export type Request = | AbciInfoRequest | AbciQueryRequest | BlockRequest + | BlockSearchRequest | BlockchainRequest | BlockResultsRequest | BroadcastTxRequest @@ -60,6 +62,7 @@ export interface AbciQueryRequest { readonly method: Method.AbciQuery; readonly params: AbciQueryParams; } + export interface AbciQueryParams { readonly path: string; readonly data: Uint8Array; @@ -97,10 +100,23 @@ export interface BlockResultsRequest { }; } +export interface BlockSearchRequest { + readonly method: Method.BlockSearch; + readonly params: BlockSearchParams; +} + +export interface BlockSearchParams { + readonly query: string; + readonly page?: number; + readonly per_page?: number; + readonly order_by?: string; +} + export interface BroadcastTxRequest { readonly method: Method.BroadcastTxAsync | Method.BroadcastTxSync | Method.BroadcastTxCommit; readonly params: BroadcastTxParams; } + export interface BroadcastTxParams { readonly tx: Uint8Array; } @@ -141,6 +157,7 @@ export interface TxRequest { readonly method: Method.Tx; readonly params: TxParams; } + export interface TxParams { readonly hash: Uint8Array; readonly prove?: boolean; diff --git a/packages/tendermint-rpc/src/tendermint34/responses.ts b/packages/tendermint-rpc/src/tendermint34/responses.ts index ba7d3970..b71c4826 100644 --- a/packages/tendermint-rpc/src/tendermint34/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/responses.ts @@ -60,6 +60,11 @@ export interface BlockResultsResponse { readonly endBlockEvents: readonly Event[]; } +export interface BlockSearchResponse { + readonly blocks: readonly BlockResponse[]; + readonly totalCount: number; +} + export interface BlockchainResponse { readonly lastHeight: number; readonly blockMetas: readonly BlockMeta[]; diff --git a/packages/tendermint-rpc/src/tendermint34/tendermint34client.ts b/packages/tendermint-rpc/src/tendermint34/tendermint34client.ts index 42d20c4a..3b5335e7 100644 --- a/packages/tendermint-rpc/src/tendermint34/tendermint34client.ts +++ b/packages/tendermint-rpc/src/tendermint34/tendermint34client.ts @@ -98,6 +98,47 @@ export class Tendermint34Client { return this.doCall(query, this.p.encodeBlockResults, this.r.decodeBlockResults); } + /** + * Search for events that are in a block + * + * @see https://docs.tendermint.com/master/rpc/#/Info/block_search + */ + public async blockSearch(params: requests.BlockSearchParams): Promise { + const query: requests.BlockSearchRequest = { params: params, method: requests.Method.BlockSearch }; + const resp = await this.doCall(query, this.p.encodeBlockSearch, this.r.decodeBlockSearch); + return { + ...resp, + // make sure we sort by height, as tendermint may be sorting by string value of the height + blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height), + }; + } + + // this should paginate through all blockSearch options to ensure it returns all results. + // starts with page 1 or whatever was provided (eg. to start on page 7) + public async blockSearchAll(params: requests.BlockSearchParams): Promise { + let page = params.page || 1; + const blocks: responses.BlockResponse[] = []; + let done = false; + + while (!done) { + const resp = await this.blockSearch({ ...params, page: page }); + blocks.push(...resp.blocks); + if (blocks.length < resp.totalCount) { + page++; + } else { + done = true; + } + } + // make sure we sort by height, as tendermint may be sorting by string value of the height + // and the earlier items may be in a higher page than the later items + blocks.sort((a, b) => a.block.header.height - b.block.header.height); + + return { + totalCount: blocks.length, + blocks: blocks, + }; + } + /** * Queries block headers filtered by minHeight <= height <= maxHeight. * From 859b4ec19f45b93b09710d350e80bdf00f412dc0 Mon Sep 17 00:00:00 2001 From: Riccardo Montagnin Date: Wed, 26 May 2021 11:45:41 +0200 Subject: [PATCH 04/15] Tests - Added block search tests - Incremented v0.34 Tendermint version to 0.34.9 --- .../tendermint34/tendermint34client.spec.ts | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts index 2c33d216..abb58468 100644 --- a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts +++ b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts @@ -204,6 +204,72 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) }); }); + describe("blockSearch", () => { + const key = randomString(); + + beforeAll(async () => { + if (tendermintEnabled()) { + const client = await Tendermint34Client.create(rpcFactory()); + + // eslint-disable-next-line no-inner-declarations + async function sendTx(): Promise { + const me = randomString(); + const tx = buildKvTx(key, me); + + const txRes = await client.broadcastTxCommit({ tx: tx }); + expect(responses.broadcastTxCommitSuccess(txRes)).toEqual(true); + expect(txRes.height).toBeTruthy(); + expect(txRes.hash.length).not.toEqual(0); + } + + // send 3 txs + await sendTx(); + await sendTx(); + await sendTx(); + + client.disconnect(); + + await tendermintSearchIndexUpdated(); + } + }); + + it("can paginate over txSearch results", async () => { + pendingWithoutTendermint(); + const client = await Tendermint34Client.create(rpcFactory()); + + const query = buildQuery({ raw: "block.height >= 1 AND block.height <= 5" }); + + // expect one page of results + const s1 = await client.blockSearch({ query: query, page: 1, per_page: 2 }); + expect(s1.totalCount).toEqual(5); + expect(s1.blocks.length).toEqual(2); + + // second page + const s2 = await client.blockSearch({ query: query, page: 2, per_page: 2 }); + expect(s2.totalCount).toEqual(5); + expect(s2.blocks.length).toEqual(2); + + client.disconnect(); + }); + + it("can get all search results in one call", async () => { + pendingWithoutTendermint(); + const client = await Tendermint34Client.create(rpcFactory()); + + const query = buildQuery({ raw: "block.height >= 1 AND block.height <= 3" }); + + const sall = await client.blockSearchAll({ query: query, per_page: 2 }); + expect(sall.totalCount).toEqual(5); + expect(sall.blocks.length).toEqual(5); + // make sure there are in order from lowest to highest height + const [b1, b2, b3] = sall.blocks; + expect(b2.block.header.height).toEqual(b1.block.header.height + 1); + expect(b3.block.header.height).toEqual(b2.block.header.height + 1); + + client.disconnect(); + }); + }); + describe("blockchain", () => { it("returns latest in descending order by default", async () => { pendingWithoutTendermint(); From 36c7a01e523386b799f491881fb7a409b3e0580e Mon Sep 17 00:00:00 2001 From: Riccardo Montagnin Date: Thu, 27 May 2021 07:23:59 +0200 Subject: [PATCH 05/15] Fixed tests and response parser --- .../src/tendermint34/adaptors/v0-34/responses.ts | 8 ++++---- .../src/tendermint34/tendermint34client.spec.ts | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts index 7f5ffa0e..1260b805 100644 --- a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts @@ -284,10 +284,10 @@ interface RpcBlockId { function decodeBlockId(data: RpcBlockId): responses.BlockId { return { - hash: fromHex(assertNotEmpty(data.hash)), + hash: fromHex(data.hash), parts: { - total: assertNotEmpty(data.parts.total), - hash: fromHex(assertNotEmpty(data.parts.hash)), + total: data.parts.total, + hash: fromHex(data.parts.hash), }, }; } @@ -349,7 +349,7 @@ function decodeHeader(data: RpcHeader): responses.Header { validatorsHash: fromHex(assertNotEmpty(data.validators_hash)), nextValidatorsHash: fromHex(assertNotEmpty(data.next_validators_hash)), consensusHash: fromHex(assertNotEmpty(data.consensus_hash)), - appHash: fromHex(assertNotEmpty(data.app_hash)), + appHash: fromHex(data.app_hash), lastResultsHash: fromHex(assertSet(data.last_results_hash)), evidenceHash: fromHex(assertSet(data.evidence_hash)), diff --git a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts index abb58468..e03d5cd2 100644 --- a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts +++ b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts @@ -259,8 +259,8 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) const query = buildQuery({ raw: "block.height >= 1 AND block.height <= 3" }); const sall = await client.blockSearchAll({ query: query, per_page: 2 }); - expect(sall.totalCount).toEqual(5); - expect(sall.blocks.length).toEqual(5); + expect(sall.totalCount).toEqual(3); + expect(sall.blocks.length).toEqual(3); // make sure there are in order from lowest to highest height const [b1, b2, b3] = sall.blocks; expect(b2.block.header.height).toEqual(b1.block.header.height + 1); From be6b56b0785459d0ca8ddca65fda0ee951a7bd2b Mon Sep 17 00:00:00 2001 From: Riccardo Montagnin Date: Thu, 27 May 2021 09:18:09 +0200 Subject: [PATCH 06/15] Applied fixes --- .../src/tendermint34/tendermint34client.spec.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts index e03d5cd2..3b94bbb2 100644 --- a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts +++ b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts @@ -205,16 +205,13 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) }); describe("blockSearch", () => { - const key = randomString(); - beforeAll(async () => { if (tendermintEnabled()) { const client = await Tendermint34Client.create(rpcFactory()); // eslint-disable-next-line no-inner-declarations async function sendTx(): Promise { - const me = randomString(); - const tx = buildKvTx(key, me); + const tx = buildKvTx(randomString(), randomString()); const txRes = await client.broadcastTxCommit({ tx: tx }); expect(responses.broadcastTxCommitSuccess(txRes)).toEqual(true); @@ -233,20 +230,20 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) } }); - it("can paginate over txSearch results", async () => { + it("can paginate over blockSearch results", async () => { pendingWithoutTendermint(); const client = await Tendermint34Client.create(rpcFactory()); - const query = buildQuery({ raw: "block.height >= 1 AND block.height <= 5" }); + const query = buildQuery({ raw: "block.height >= 1 AND block.height <= 3" }); // expect one page of results const s1 = await client.blockSearch({ query: query, page: 1, per_page: 2 }); - expect(s1.totalCount).toEqual(5); + expect(s1.totalCount).toEqual(3); expect(s1.blocks.length).toEqual(2); // second page const s2 = await client.blockSearch({ query: query, page: 2, per_page: 2 }); - expect(s2.totalCount).toEqual(5); + expect(s2.totalCount).toEqual(3); expect(s2.blocks.length).toEqual(2); client.disconnect(); From cd74f2523ba5ff0891cf4f73da32e2c2c414961f Mon Sep 17 00:00:00 2001 From: Riccardo Montagnin Date: Thu, 27 May 2021 13:40:23 +0200 Subject: [PATCH 07/15] Added Tendermint version notes and fixed tests --- .../src/tendermint34/tendermint34client.spec.ts | 2 +- .../tendermint-rpc/src/tendermint34/tendermint34client.ts | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts index 3b94bbb2..006b33a3 100644 --- a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts +++ b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts @@ -244,7 +244,7 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) // second page const s2 = await client.blockSearch({ query: query, page: 2, per_page: 2 }); expect(s2.totalCount).toEqual(3); - expect(s2.blocks.length).toEqual(2); + expect(s2.blocks.length).toEqual(1); client.disconnect(); }); diff --git a/packages/tendermint-rpc/src/tendermint34/tendermint34client.ts b/packages/tendermint-rpc/src/tendermint34/tendermint34client.ts index 3b5335e7..f528c2dd 100644 --- a/packages/tendermint-rpc/src/tendermint34/tendermint34client.ts +++ b/packages/tendermint-rpc/src/tendermint34/tendermint34client.ts @@ -99,7 +99,10 @@ export class Tendermint34Client { } /** - * Search for events that are in a block + * Search for events that are in a block. + * + * NOTE + * This method will error on any node that is running a Tendermint version lower than 0.34.9. * * @see https://docs.tendermint.com/master/rpc/#/Info/block_search */ @@ -115,6 +118,9 @@ export class Tendermint34Client { // this should paginate through all blockSearch options to ensure it returns all results. // starts with page 1 or whatever was provided (eg. to start on page 7) + // + // NOTE + // This method will error on any node that is running a Tendermint version lower than 0.34.9. public async blockSearchAll(params: requests.BlockSearchParams): Promise { let page = params.page || 1; const blocks: responses.BlockResponse[] = []; From 2389601783dba1fe906cf4b9ebf15dc6a980f9d3 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Thu, 27 May 2021 16:09:33 +0200 Subject: [PATCH 08/15] Export missing types --- packages/tendermint-rpc/src/tendermint34/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/tendermint-rpc/src/tendermint34/index.ts b/packages/tendermint-rpc/src/tendermint34/index.ts index f67990c2..324bae5a 100644 --- a/packages/tendermint-rpc/src/tendermint34/index.ts +++ b/packages/tendermint-rpc/src/tendermint34/index.ts @@ -8,6 +8,8 @@ export { AbciQueryRequest, BlockRequest, BlockchainRequest, + BlockSearchParams, + BlockSearchRequest, BlockResultsRequest, BroadcastTxRequest, BroadcastTxParams, @@ -38,6 +40,7 @@ export { BlockParams, BlockResponse, BlockResultsResponse, + BlockSearchResponse, BroadcastTxAsyncResponse, BroadcastTxCommitResponse, broadcastTxCommitSuccess, From 69a47c0065c0520f9207c0417f66eb37cb09d32e Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Thu, 27 May 2021 16:31:26 +0200 Subject: [PATCH 09/15] Add CHANGELOG entry for blockSearch/blockSearchAll --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 332afabc..3088a7b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to ## [Unreleased] +### Added + +- @cosmjs/tendermint-rpc: `Tendermint34Client.blockSearch` and + `Tendermint34Client.blockSearchAll` were added to allow searching blocks in + Tendermint 0.34.9+ backends. + ## [0.25.3] - 2021-05-18 ### Fixed From 2701acf37e722336e1145a85cdb60a0bb2682551 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Thu, 27 May 2021 17:00:46 +0200 Subject: [PATCH 10/15] Make lastBlockId and lastCommit optional --- CHANGELOG.md | 6 ++++++ packages/stargate/src/queries/queryclient.ts | 10 +++++----- .../src/tendermint34/adaptors/v0-34/responses.ts | 14 +++++++++----- packages/tendermint-rpc/src/tendermint34/hasher.ts | 6 ++++++ .../tendermint-rpc/src/tendermint34/responses.ts | 11 ++++++++--- 5 files changed, 34 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3088a7b2..bbf645f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,12 @@ and this project adheres to `Tendermint34Client.blockSearchAll` were added to allow searching blocks in Tendermint 0.34.9+ backends. +### Changes + +- @cosmjs/tendermint-rpc: Make `tendermint34.Header.lastBlockId` and + `tendermint34.Block.lastCommit` optional to better handle the case of height 1 + where there is no previous block. + ## [0.25.3] - 2021-05-18 ### Fixed diff --git a/packages/stargate/src/queries/queryclient.ts b/packages/stargate/src/queries/queryclient.ts index 834bc65c..a7a7a87a 100644 --- a/packages/stargate/src/queries/queryclient.ts +++ b/packages/stargate/src/queries/queryclient.ts @@ -2,7 +2,7 @@ import { iavlSpec, ics23, tendermintSpec, verifyExistence, verifyNonExistence } from "@confio/ics23"; import { toAscii, toHex } from "@cosmjs/encoding"; import { firstEvent } from "@cosmjs/stream"; -import { Header, NewBlockHeaderEvent, ProofOp, Tendermint34Client } from "@cosmjs/tendermint-rpc"; +import { tendermint34, Tendermint34Client } from "@cosmjs/tendermint-rpc"; import { arrayContentEquals, assert, assertDefined, isNonNullObject, sleep } from "@cosmjs/utils"; import { Stream } from "xstream"; @@ -10,7 +10,7 @@ import { ProofOps } from "../codec/tendermint/crypto/proof"; type QueryExtensionSetup

= (base: QueryClient) => P; -function checkAndParseOp(op: ProofOp, kind: string, key: Uint8Array): ics23.CommitmentProof { +function checkAndParseOp(op: tendermint34.ProofOp, kind: string, key: Uint8Array): ics23.CommitmentProof { if (op.type !== kind) { throw new Error(`Op expected to be ${kind}, got "${op.type}`); } @@ -587,15 +587,15 @@ export class QueryClient { // this must return the header for height+1 // throws an error if height is 0 or undefined - private async getNextHeader(height?: number): Promise

{ + private async getNextHeader(height?: number): Promise { assertDefined(height); if (height === 0) { throw new Error("Query returned height 0, cannot prove it"); } const searchHeight = height + 1; - let nextHeader: Header | undefined; - let headersSubscription: Stream | undefined; + let nextHeader: tendermint34.Header | undefined; + let headersSubscription: Stream | undefined; try { headersSubscription = this.tmClient.subscribeNewBlockHeader(); } catch { diff --git a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts index 1260b805..7a9888a8 100644 --- a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts @@ -284,10 +284,10 @@ interface RpcBlockId { function decodeBlockId(data: RpcBlockId): responses.BlockId { return { - hash: fromHex(data.hash), + hash: fromHex(assertNotEmpty(data.hash)), parts: { - total: data.parts.total, - hash: fromHex(data.parts.hash), + total: assertNotEmpty(data.parts.total), + hash: fromHex(assertNotEmpty(data.parts.hash)), }, }; } @@ -341,7 +341,9 @@ function decodeHeader(data: RpcHeader): responses.Header { height: Integer.parse(assertNotEmpty(data.height)), time: fromRfc3339WithNanoseconds(assertNotEmpty(data.time)), - lastBlockId: decodeBlockId(data.last_block_id), + // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this: + // { hash: '', parts: { total: 0, hash: '' } } + lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null, lastCommitHash: fromHex(assertNotEmpty(data.last_commit_hash)), dataHash: fromHex(assertSet(data.data_hash)), @@ -765,7 +767,9 @@ interface RpcBlock { function decodeBlock(data: RpcBlock): responses.Block { return { header: decodeHeader(assertObject(data.header)), - lastCommit: decodeCommit(assertObject(data.last_commit)), + // For the block at height 1, last commit is not set. This is represented in an empty object like this: + // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] } + lastCommit: data.last_commit.block_id.hash ? decodeCommit(assertObject(data.last_commit)) : null, txs: data.data.txs ? assertArray(data.data.txs).map(fromBase64) : [], evidence: data.evidence && may(decodeEvidences, data.evidence.evidence), }; diff --git a/packages/tendermint-rpc/src/tendermint34/hasher.ts b/packages/tendermint-rpc/src/tendermint34/hasher.ts index 75d9f484..65ba6627 100644 --- a/packages/tendermint-rpc/src/tendermint34/hasher.ts +++ b/packages/tendermint-rpc/src/tendermint34/hasher.ts @@ -46,6 +46,12 @@ function hashTree(hashes: readonly Uint8Array[]): Uint8Array { } export function hashBlock(header: Header): Uint8Array { + if (!header.lastBlockId) { + throw new Error( + "Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case.", + ); + } + const encodedFields: readonly Uint8Array[] = [ encodeVersion(header.version), encodeString(header.chainId), diff --git a/packages/tendermint-rpc/src/tendermint34/responses.ts b/packages/tendermint-rpc/src/tendermint34/responses.ts index b71c4826..79067189 100644 --- a/packages/tendermint-rpc/src/tendermint34/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/responses.ts @@ -217,7 +217,10 @@ export interface BlockId { export interface Block { readonly header: Header; - readonly lastCommit: Commit; + /** + * For the block at height 1, last commit is not set. + */ + readonly lastCommit: Commit | null; readonly txs: readonly Uint8Array[]; readonly evidence?: readonly Evidence[]; } @@ -269,8 +272,10 @@ export interface Header { readonly height: number; readonly time: ReadonlyDateWithNanoseconds; - // prev block info - readonly lastBlockId: BlockId; + /** + * Block ID of the previous block. This can be `null` when the currect block is height 1. + */ + readonly lastBlockId: BlockId | null; // hashes of block data readonly lastCommitHash: Uint8Array; From 8d3c93a44c443ec22347fef5765a29b42634d453 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Thu, 27 May 2021 17:17:16 +0200 Subject: [PATCH 11/15] Use assertSet consistently to check the hashes --- .../tendermint34/adaptors/v0-34/responses.ts | 10 +++++----- .../src/tendermint34/responses.ts | 20 +++++++++++++++++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts index 7a9888a8..90be82da 100644 --- a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts @@ -345,13 +345,13 @@ function decodeHeader(data: RpcHeader): responses.Header { // { hash: '', parts: { total: 0, hash: '' } } lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null, - lastCommitHash: fromHex(assertNotEmpty(data.last_commit_hash)), + lastCommitHash: fromHex(assertSet(data.last_commit_hash)), dataHash: fromHex(assertSet(data.data_hash)), - validatorsHash: fromHex(assertNotEmpty(data.validators_hash)), - nextValidatorsHash: fromHex(assertNotEmpty(data.next_validators_hash)), - consensusHash: fromHex(assertNotEmpty(data.consensus_hash)), - appHash: fromHex(data.app_hash), + validatorsHash: fromHex(assertSet(data.validators_hash)), + nextValidatorsHash: fromHex(assertSet(data.next_validators_hash)), + consensusHash: fromHex(assertSet(data.consensus_hash)), + appHash: fromHex(assertSet(data.app_hash)), lastResultsHash: fromHex(assertSet(data.last_results_hash)), evidenceHash: fromHex(assertSet(data.evidence_hash)), diff --git a/packages/tendermint-rpc/src/tendermint34/responses.ts b/packages/tendermint-rpc/src/tendermint34/responses.ts index 79067189..926178a6 100644 --- a/packages/tendermint-rpc/src/tendermint34/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/responses.ts @@ -277,18 +277,34 @@ export interface Header { */ readonly lastBlockId: BlockId | null; - // hashes of block data + /** + * Hashes of block data. + * + * This is `sha256("")` for height 1 🤷‍ + */ readonly lastCommitHash: Uint8Array; - readonly dataHash: Uint8Array; // empty when number of transaction is 0 + /** + * This is `sha256("")` as long as there is no data 🤷‍ + */ + readonly dataHash: Uint8Array; // hashes from the app output from the prev block readonly validatorsHash: Uint8Array; readonly nextValidatorsHash: Uint8Array; readonly consensusHash: Uint8Array; + /** + * This can be an empty string for height 1 and turn into "0000000000000000" later on 🤷‍ + */ readonly appHash: Uint8Array; + /** + * This is `sha256("")` as long as there is no data 🤷‍ + */ readonly lastResultsHash: Uint8Array; // consensus info + /** + * This is `sha256("")` as long as there is no data 🤷‍ + */ readonly evidenceHash: Uint8Array; readonly proposerAddress: Uint8Array; } From de0753a59ce0601878d8fcc0bd2e5b8d73b5f6c5 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Mon, 31 May 2021 12:21:03 +0200 Subject: [PATCH 12/15] Upgrade ws to version 7 --- CHANGELOG.md | 8 ++++++++ packages/socket/package.json | 2 +- yarn.lock | 20 ++++---------------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 332afabc..8a7f4e2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ and this project adheres to ## [Unreleased] +## [0.25.4] - 2021-05-31 + +### Fixed + +- @cosmjs/socket: Upgrade dependency "ws" to version 7 to avoid potential + security problems. + ## [0.25.3] - 2021-05-18 ### Fixed @@ -474,6 +481,7 @@ CHANGELOG entries missing. Please see [the diff][0.24.1]. - @cosmjs/sdk38: Rename package to @cosmjs/launchpad. [unreleased]: https://github.com/cosmos/cosmjs/compare/v0.25.3...HEAD +[0.25.4]: https://github.com/cosmos/cosmjs/compare/v0.25.3...v0.25.4 [0.25.3]: https://github.com/cosmos/cosmjs/compare/v0.25.2...v0.25.3 [0.25.2]: https://github.com/cosmos/cosmjs/compare/v0.25.1...v0.25.2 [0.25.1]: https://github.com/cosmos/cosmjs/compare/v0.25.0...v0.25.1 diff --git a/packages/socket/package.json b/packages/socket/package.json index f05b042d..849d8f52 100644 --- a/packages/socket/package.json +++ b/packages/socket/package.json @@ -44,7 +44,7 @@ "dependencies": { "@cosmjs/stream": "^0.25.3", "isomorphic-ws": "^4.0.1", - "ws": "^6.2.0", + "ws": "^7", "xstream": "^11.14.0" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index c236b523..0dc47276 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2097,11 +2097,6 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -8327,17 +8322,10 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -ws@~7.4.2: - version "7.4.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" - integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== +ws@^7, ws@~7.4.2: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== xstream@^11.14.0: version "11.14.0" From 28fedac69c830ca8bdda5bac4ee33b65baa3cb82 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Mon, 31 May 2021 14:54:00 +0200 Subject: [PATCH 13/15] Add nonces --- packages/amino/nonces/1622465640 | 0 packages/cli/nonces/1622465640 | 0 packages/cosmwasm-launchpad/nonces/1622465640 | 0 packages/cosmwasm-stargate/nonces/1622465640 | 0 packages/cosmwasm/nonces/1622465640 | 0 packages/crypto/nonces/1622465640 | 0 packages/encoding/nonces/1622465640 | 0 packages/faucet-client/nonces/1622465640 | 0 packages/faucet/nonces/1622465640 | 0 packages/json-rpc/nonces/1622465640 | 0 packages/launchpad/nonces/1622465640 | 0 packages/ledger-amino/nonces/1622465640 | 0 packages/math/nonces/1622465640 | 0 packages/proto-signing/nonces/1622465640 | 0 packages/socket/nonces/1622465640 | 0 packages/stargate/nonces/1622465640 | 0 packages/stream/nonces/1622465640 | 0 packages/tendermint-rpc/nonces/1622465640 | 0 packages/utils/nonces/1622465640 | 0 19 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/amino/nonces/1622465640 create mode 100644 packages/cli/nonces/1622465640 create mode 100644 packages/cosmwasm-launchpad/nonces/1622465640 create mode 100644 packages/cosmwasm-stargate/nonces/1622465640 create mode 100644 packages/cosmwasm/nonces/1622465640 create mode 100644 packages/crypto/nonces/1622465640 create mode 100644 packages/encoding/nonces/1622465640 create mode 100644 packages/faucet-client/nonces/1622465640 create mode 100644 packages/faucet/nonces/1622465640 create mode 100644 packages/json-rpc/nonces/1622465640 create mode 100644 packages/launchpad/nonces/1622465640 create mode 100644 packages/ledger-amino/nonces/1622465640 create mode 100644 packages/math/nonces/1622465640 create mode 100644 packages/proto-signing/nonces/1622465640 create mode 100644 packages/socket/nonces/1622465640 create mode 100644 packages/stargate/nonces/1622465640 create mode 100644 packages/stream/nonces/1622465640 create mode 100644 packages/tendermint-rpc/nonces/1622465640 create mode 100644 packages/utils/nonces/1622465640 diff --git a/packages/amino/nonces/1622465640 b/packages/amino/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/cli/nonces/1622465640 b/packages/cli/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/cosmwasm-launchpad/nonces/1622465640 b/packages/cosmwasm-launchpad/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/cosmwasm-stargate/nonces/1622465640 b/packages/cosmwasm-stargate/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/cosmwasm/nonces/1622465640 b/packages/cosmwasm/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/crypto/nonces/1622465640 b/packages/crypto/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/encoding/nonces/1622465640 b/packages/encoding/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/faucet-client/nonces/1622465640 b/packages/faucet-client/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/faucet/nonces/1622465640 b/packages/faucet/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/json-rpc/nonces/1622465640 b/packages/json-rpc/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/launchpad/nonces/1622465640 b/packages/launchpad/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/ledger-amino/nonces/1622465640 b/packages/ledger-amino/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/math/nonces/1622465640 b/packages/math/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/proto-signing/nonces/1622465640 b/packages/proto-signing/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/socket/nonces/1622465640 b/packages/socket/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/stargate/nonces/1622465640 b/packages/stargate/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/stream/nonces/1622465640 b/packages/stream/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/tendermint-rpc/nonces/1622465640 b/packages/tendermint-rpc/nonces/1622465640 new file mode 100644 index 00000000..e69de29b diff --git a/packages/utils/nonces/1622465640 b/packages/utils/nonces/1622465640 new file mode 100644 index 00000000..e69de29b From 72a27e9969aa49d3bf1c56428992b4fc04039089 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Mon, 31 May 2021 14:54:24 +0200 Subject: [PATCH 14/15] v0.25.4 --- lerna.json | 2 +- packages/amino/package.json | 10 ++++----- packages/cli/package.json | 26 ++++++++++++------------ packages/cosmwasm-launchpad/package.json | 12 +++++------ packages/cosmwasm-stargate/package.json | 20 +++++++++--------- packages/cosmwasm/package.json | 4 ++-- packages/crypto/package.json | 8 ++++---- packages/encoding/package.json | 2 +- packages/faucet-client/package.json | 2 +- packages/faucet/package.json | 16 +++++++-------- packages/json-rpc/package.json | 4 ++-- packages/launchpad/package.json | 12 +++++------ packages/ledger-amino/package.json | 10 ++++----- packages/math/package.json | 2 +- packages/proto-signing/package.json | 8 ++++---- packages/socket/package.json | 4 ++-- packages/stargate/package.json | 16 +++++++-------- packages/stream/package.json | 2 +- packages/tendermint-rpc/package.json | 16 +++++++-------- packages/utils/package.json | 2 +- 20 files changed, 89 insertions(+), 89 deletions(-) diff --git a/lerna.json b/lerna.json index 14e5694a..7f662180 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.25.3", + "version": "0.25.4", "useWorkspaces": true, "npmClient": "yarn" } diff --git a/packages/amino/package.json b/packages/amino/package.json index 864cd94b..5a389944 100644 --- a/packages/amino/package.json +++ b/packages/amino/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/amino", - "version": "0.25.3", + "version": "0.25.4", "description": "Helpers for Amino based signing which are shared between @cosmjs/launchpad and @cosmjs/stargate.", "contributors": [ "Simon Warta " @@ -40,9 +40,9 @@ "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, "dependencies": { - "@cosmjs/crypto": "^0.25.3", - "@cosmjs/encoding": "^0.25.3", - "@cosmjs/math": "^0.25.3", - "@cosmjs/utils": "^0.25.3" + "@cosmjs/crypto": "^0.25.4", + "@cosmjs/encoding": "^0.25.4", + "@cosmjs/math": "^0.25.4", + "@cosmjs/utils": "^0.25.4" } } diff --git a/packages/cli/package.json b/packages/cli/package.json index 83775994..c5a40cb7 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/cli", - "version": "0.25.3", + "version": "0.25.4", "description": "Command line interface", "contributors": [ "IOV SAS ", @@ -39,18 +39,18 @@ "!**/testdata/" ], "dependencies": { - "@cosmjs/amino": "^0.25.3", - "@cosmjs/cosmwasm-launchpad": "^0.25.3", - "@cosmjs/cosmwasm-stargate": "^0.25.3", - "@cosmjs/crypto": "^0.25.3", - "@cosmjs/encoding": "^0.25.3", - "@cosmjs/faucet-client": "^0.25.3", - "@cosmjs/launchpad": "^0.25.3", - "@cosmjs/math": "^0.25.3", - "@cosmjs/proto-signing": "^0.25.3", - "@cosmjs/stargate": "^0.25.3", - "@cosmjs/tendermint-rpc": "^0.25.3", - "@cosmjs/utils": "^0.25.3", + "@cosmjs/amino": "^0.25.4", + "@cosmjs/cosmwasm-launchpad": "^0.25.4", + "@cosmjs/cosmwasm-stargate": "^0.25.4", + "@cosmjs/crypto": "^0.25.4", + "@cosmjs/encoding": "^0.25.4", + "@cosmjs/faucet-client": "^0.25.4", + "@cosmjs/launchpad": "^0.25.4", + "@cosmjs/math": "^0.25.4", + "@cosmjs/proto-signing": "^0.25.4", + "@cosmjs/stargate": "^0.25.4", + "@cosmjs/tendermint-rpc": "^0.25.4", + "@cosmjs/utils": "^0.25.4", "axios": "^0.21.1", "babylon": "^6.18.0", "colors": "^1.3.3", diff --git a/packages/cosmwasm-launchpad/package.json b/packages/cosmwasm-launchpad/package.json index 033bd755..2a530b23 100644 --- a/packages/cosmwasm-launchpad/package.json +++ b/packages/cosmwasm-launchpad/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/cosmwasm-launchpad", - "version": "0.25.3", + "version": "0.25.4", "description": "CosmWasm SDK for Launchpad", "contributors": [ "Ethan Frey ", @@ -39,11 +39,11 @@ "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, "dependencies": { - "@cosmjs/crypto": "^0.25.3", - "@cosmjs/encoding": "^0.25.3", - "@cosmjs/launchpad": "^0.25.3", - "@cosmjs/math": "^0.25.3", - "@cosmjs/utils": "^0.25.3", + "@cosmjs/crypto": "^0.25.4", + "@cosmjs/encoding": "^0.25.4", + "@cosmjs/launchpad": "^0.25.4", + "@cosmjs/math": "^0.25.4", + "@cosmjs/utils": "^0.25.4", "pako": "^2.0.2" }, "devDependencies": { diff --git a/packages/cosmwasm-stargate/package.json b/packages/cosmwasm-stargate/package.json index 14bd823d..305c052e 100644 --- a/packages/cosmwasm-stargate/package.json +++ b/packages/cosmwasm-stargate/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/cosmwasm-stargate", - "version": "0.25.3", + "version": "0.25.4", "description": "CosmWasm SDK", "contributors": [ "Will Clark " @@ -42,15 +42,15 @@ "postdefine-proto": "prettier --write \"src/codec/**/*.ts\"" }, "dependencies": { - "@cosmjs/amino": "^0.25.3", - "@cosmjs/cosmwasm-launchpad": "^0.25.3", - "@cosmjs/crypto": "^0.25.3", - "@cosmjs/encoding": "^0.25.3", - "@cosmjs/math": "^0.25.3", - "@cosmjs/proto-signing": "^0.25.3", - "@cosmjs/stargate": "^0.25.3", - "@cosmjs/tendermint-rpc": "^0.25.3", - "@cosmjs/utils": "^0.25.3", + "@cosmjs/amino": "^0.25.4", + "@cosmjs/cosmwasm-launchpad": "^0.25.4", + "@cosmjs/crypto": "^0.25.4", + "@cosmjs/encoding": "^0.25.4", + "@cosmjs/math": "^0.25.4", + "@cosmjs/proto-signing": "^0.25.4", + "@cosmjs/stargate": "^0.25.4", + "@cosmjs/tendermint-rpc": "^0.25.4", + "@cosmjs/utils": "^0.25.4", "long": "^4.0.0", "pako": "^2.0.2", "protobufjs": "~6.10.2" diff --git a/packages/cosmwasm/package.json b/packages/cosmwasm/package.json index 181d268f..cfcaaf2f 100644 --- a/packages/cosmwasm/package.json +++ b/packages/cosmwasm/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/cosmwasm", - "version": "0.25.3", + "version": "0.25.4", "description": "CosmWasm SDK", "contributors": [ "Ethan Frey ", @@ -33,6 +33,6 @@ "build-or-skip": "[ -n \"$SKIP_BUILD\" ] || yarn build" }, "dependencies": { - "@cosmjs/cosmwasm-launchpad": "^0.25.3" + "@cosmjs/cosmwasm-launchpad": "^0.25.4" } } diff --git a/packages/crypto/package.json b/packages/crypto/package.json index 4a301c29..f4c38a59 100644 --- a/packages/crypto/package.json +++ b/packages/crypto/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/crypto", - "version": "0.25.3", + "version": "0.25.4", "description": "Cryptography resources for blockchain projects", "contributors": [ "IOV SAS ", @@ -41,9 +41,9 @@ "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, "dependencies": { - "@cosmjs/encoding": "^0.25.3", - "@cosmjs/math": "^0.25.3", - "@cosmjs/utils": "^0.25.3", + "@cosmjs/encoding": "^0.25.4", + "@cosmjs/math": "^0.25.4", + "@cosmjs/utils": "^0.25.4", "bip39": "^3.0.2", "bn.js": "^4.11.8", "elliptic": "^6.5.3", diff --git a/packages/encoding/package.json b/packages/encoding/package.json index 8d8a40c4..c5e49877 100644 --- a/packages/encoding/package.json +++ b/packages/encoding/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/encoding", - "version": "0.25.3", + "version": "0.25.4", "description": "Encoding helpers for blockchain projects", "contributors": [ "IOV SAS " diff --git a/packages/faucet-client/package.json b/packages/faucet-client/package.json index d0b76767..4aa42381 100644 --- a/packages/faucet-client/package.json +++ b/packages/faucet-client/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/faucet-client", - "version": "0.25.3", + "version": "0.25.4", "description": "The faucet client", "contributors": [ "Will Clark " diff --git a/packages/faucet/package.json b/packages/faucet/package.json index 1f569395..24a67179 100644 --- a/packages/faucet/package.json +++ b/packages/faucet/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/faucet", - "version": "0.25.3", + "version": "0.25.4", "description": "The faucet", "contributors": [ "Ethan Frey ", @@ -39,13 +39,13 @@ "start-coralnet": "FAUCET_ADDRESS_PREFIX=coral FAUCET_TOKENS=\"ushell,ureef\" FAUCET_CREDIT_AMOUNT_USHELL=10000000 FAUCET_CREDIT_AMOUNT_UREEF=2000000 FAUCET_CONCURRENCY=3 FAUCET_MNEMONIC=\"economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone\" ./bin/cosmos-faucet start \"https://lcd.coralnet.cosmwasm.com\"" }, "dependencies": { - "@cosmjs/crypto": "^0.25.3", - "@cosmjs/encoding": "^0.25.3", - "@cosmjs/launchpad": "^0.25.3", - "@cosmjs/math": "^0.25.3", - "@cosmjs/proto-signing": "^0.25.3", - "@cosmjs/stargate": "^0.25.3", - "@cosmjs/utils": "^0.25.3", + "@cosmjs/crypto": "^0.25.4", + "@cosmjs/encoding": "^0.25.4", + "@cosmjs/launchpad": "^0.25.4", + "@cosmjs/math": "^0.25.4", + "@cosmjs/proto-signing": "^0.25.4", + "@cosmjs/stargate": "^0.25.4", + "@cosmjs/utils": "^0.25.4", "@koa/cors": "^3.0.0", "koa": "^2.11.0", "koa-bodyparser": "^4.2.1" diff --git a/packages/json-rpc/package.json b/packages/json-rpc/package.json index 51d35088..ce464e0f 100644 --- a/packages/json-rpc/package.json +++ b/packages/json-rpc/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/json-rpc", - "version": "0.25.3", + "version": "0.25.4", "description": "Framework for implementing a JSON-RPC 2.0 API", "contributors": [ "IOV SAS ", @@ -42,7 +42,7 @@ "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, "dependencies": { - "@cosmjs/stream": "^0.25.3", + "@cosmjs/stream": "^0.25.4", "xstream": "^11.14.0" } } diff --git a/packages/launchpad/package.json b/packages/launchpad/package.json index 013c6590..a71d793a 100644 --- a/packages/launchpad/package.json +++ b/packages/launchpad/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/launchpad", - "version": "0.25.3", + "version": "0.25.4", "description": "A client library for the Cosmos SDK 0.37 (cosmoshub-3), 0.38 and 0.39 (Launchpad)", "contributors": [ "Ethan Frey ", @@ -39,11 +39,11 @@ "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, "dependencies": { - "@cosmjs/amino": "^0.25.3", - "@cosmjs/crypto": "^0.25.3", - "@cosmjs/encoding": "^0.25.3", - "@cosmjs/math": "^0.25.3", - "@cosmjs/utils": "^0.25.3", + "@cosmjs/amino": "^0.25.4", + "@cosmjs/crypto": "^0.25.4", + "@cosmjs/encoding": "^0.25.4", + "@cosmjs/math": "^0.25.4", + "@cosmjs/utils": "^0.25.4", "axios": "^0.21.1", "fast-deep-equal": "^3.1.3" }, diff --git a/packages/ledger-amino/package.json b/packages/ledger-amino/package.json index 4ba94c54..b6a42a21 100644 --- a/packages/ledger-amino/package.json +++ b/packages/ledger-amino/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/ledger-amino", - "version": "0.25.3", + "version": "0.25.4", "description": "A library for signing Amino-encoded transactions using Ledger devices", "contributors": [ "Will Clark " @@ -37,14 +37,14 @@ "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.demo.config.js" }, "dependencies": { - "@cosmjs/amino": "^0.25.3", - "@cosmjs/utils": "^0.25.3", + "@cosmjs/amino": "^0.25.4", + "@cosmjs/utils": "^0.25.4", "ledger-cosmos-js": "^2.1.8", "semver": "^7.3.2" }, "devDependencies": { - "@cosmjs/launchpad": "^0.25.3", - "@cosmjs/stargate": "^0.25.3", + "@cosmjs/launchpad": "^0.25.4", + "@cosmjs/stargate": "^0.25.4", "@ledgerhq/hw-transport": "^5.25.0", "@ledgerhq/hw-transport-node-hid": "^5.25.0", "@ledgerhq/hw-transport-webusb": "^5.25.0", diff --git a/packages/math/package.json b/packages/math/package.json index 08d0e372..03f76689 100644 --- a/packages/math/package.json +++ b/packages/math/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/math", - "version": "0.25.3", + "version": "0.25.4", "description": "Math helpers for blockchain projects", "contributors": [ "IOV SAS " diff --git a/packages/proto-signing/package.json b/packages/proto-signing/package.json index 1229b786..0c306f50 100644 --- a/packages/proto-signing/package.json +++ b/packages/proto-signing/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/proto-signing", - "version": "0.25.3", + "version": "0.25.4", "description": "Utilities for protobuf based signing (Cosmos SDK 0.40+)", "contributors": [ "Will Clark ", @@ -43,12 +43,12 @@ "postdefine-proto": "prettier --write \"src/codec/**/*.ts\"" }, "dependencies": { - "@cosmjs/amino": "^0.25.3", + "@cosmjs/amino": "^0.25.4", "long": "^4.0.0", "protobufjs": "~6.10.2" }, "devDependencies": { - "@cosmjs/encoding": "^0.25.3", - "@cosmjs/utils": "^0.25.3" + "@cosmjs/encoding": "^0.25.4", + "@cosmjs/utils": "^0.25.4" } } diff --git a/packages/socket/package.json b/packages/socket/package.json index 849d8f52..5320cd0b 100644 --- a/packages/socket/package.json +++ b/packages/socket/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/socket", - "version": "0.25.3", + "version": "0.25.4", "description": "Utility functions for working with WebSockets", "contributors": [ "IOV SAS ", @@ -42,7 +42,7 @@ "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, "dependencies": { - "@cosmjs/stream": "^0.25.3", + "@cosmjs/stream": "^0.25.4", "isomorphic-ws": "^4.0.1", "ws": "^7", "xstream": "^11.14.0" diff --git a/packages/stargate/package.json b/packages/stargate/package.json index e8909187..06491ae0 100644 --- a/packages/stargate/package.json +++ b/packages/stargate/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/stargate", - "version": "0.25.3", + "version": "0.25.4", "description": "Utilities for Cosmos SDK 0.40", "contributors": [ "Simon Warta " @@ -43,13 +43,13 @@ }, "dependencies": { "@confio/ics23": "^0.6.3", - "@cosmjs/amino": "^0.25.3", - "@cosmjs/encoding": "^0.25.3", - "@cosmjs/math": "^0.25.3", - "@cosmjs/proto-signing": "^0.25.3", - "@cosmjs/stream": "^0.25.3", - "@cosmjs/tendermint-rpc": "^0.25.3", - "@cosmjs/utils": "^0.25.3", + "@cosmjs/amino": "^0.25.4", + "@cosmjs/encoding": "^0.25.4", + "@cosmjs/math": "^0.25.4", + "@cosmjs/proto-signing": "^0.25.4", + "@cosmjs/stream": "^0.25.4", + "@cosmjs/tendermint-rpc": "^0.25.4", + "@cosmjs/utils": "^0.25.4", "long": "^4.0.0", "protobufjs": "~6.10.2" } diff --git a/packages/stream/package.json b/packages/stream/package.json index 9fccd11b..0b787a01 100644 --- a/packages/stream/package.json +++ b/packages/stream/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/stream", - "version": "0.25.3", + "version": "0.25.4", "description": "Utility functions for producing and consuming streams", "contributors": [ "IOV SAS ", diff --git a/packages/tendermint-rpc/package.json b/packages/tendermint-rpc/package.json index 6249f67b..fb36affc 100644 --- a/packages/tendermint-rpc/package.json +++ b/packages/tendermint-rpc/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/tendermint-rpc", - "version": "0.25.3", + "version": "0.25.4", "description": "Tendermint RPC clients", "contributors": [ "IOV SAS ", @@ -42,17 +42,17 @@ "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, "dependencies": { - "@cosmjs/crypto": "^0.25.3", - "@cosmjs/encoding": "^0.25.3", - "@cosmjs/json-rpc": "^0.25.3", - "@cosmjs/math": "^0.25.3", - "@cosmjs/socket": "^0.25.3", - "@cosmjs/stream": "^0.25.3", + "@cosmjs/crypto": "^0.25.4", + "@cosmjs/encoding": "^0.25.4", + "@cosmjs/json-rpc": "^0.25.4", + "@cosmjs/math": "^0.25.4", + "@cosmjs/socket": "^0.25.4", + "@cosmjs/stream": "^0.25.4", "axios": "^0.21.1", "readonly-date": "^1.0.0", "xstream": "^11.14.0" }, "devDependencies": { - "@cosmjs/utils": "^0.25.3" + "@cosmjs/utils": "^0.25.4" } } diff --git a/packages/utils/package.json b/packages/utils/package.json index 55f46783..dbae7d36 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@cosmjs/utils", - "version": "0.25.3", + "version": "0.25.4", "description": "Utility tools, primarily for testing code", "contributors": [ "IOV SAS " From 11ea9d30a1bea3b225458dcf55dff2d94b5bedf0 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Tue, 1 Jun 2021 09:07:53 +0200 Subject: [PATCH 15/15] Upgrade prettier to 2.3.0 --- packages/amino/src/signature.ts | 7 ++-- packages/amino/src/testutils.spec.ts | 3 +- packages/cli/README.md | 5 +-- .../src/cosmwasmclient.spec.ts | 8 ++-- .../cosmwasm-launchpad/src/cosmwasmclient.ts | 22 +++++----- .../src/signingcosmwasmclient.spec.ts | 11 ++--- .../cosmwasm-launchpad/src/testutils.spec.ts | 3 +- .../src/cosmwasmclient.spec.ts | 4 +- .../cosmwasm-stargate/src/cosmwasmclient.ts | 40 +++++++++---------- .../src/signingcosmwasmclient.spec.ts | 9 +---- .../cosmwasm-stargate/src/testutils.spec.ts | 3 +- packages/encoding/src/rfc3339.ts | 3 +- packages/launchpad/README.md | 10 ++--- packages/launchpad/src/cosmosclient.spec.ts | 6 +-- packages/launchpad/src/lcdapi/lcdclient.ts | 8 ++-- .../launchpad/src/signingcosmosclient.spec.ts | 10 ++--- packages/launchpad/src/testutils.spec.ts | 3 +- packages/ledger-amino/src/demo/node.ts | 4 +- packages/proto-signing/src/registry.spec.ts | 4 +- packages/proto-signing/src/testutils.spec.ts | 3 +- packages/stargate/src/fee.spec.ts | 11 ++--- packages/stargate/src/queries/ibc.spec.ts | 24 +++++------ packages/stargate/src/queries/queryclient.ts | 28 ++++++------- .../src/signingstargateclient.spec.ts | 10 ++--- packages/stargate/src/stargateclient.spec.ts | 2 +- .../tendermint-rpc/src/legacy/encodings.ts | 2 +- .../src/tendermint34/encodings.ts | 2 +- yarn.lock | 6 +-- 28 files changed, 117 insertions(+), 134 deletions(-) diff --git a/packages/amino/src/signature.ts b/packages/amino/src/signature.ts index 280653a2..cea95b01 100644 --- a/packages/amino/src/signature.ts +++ b/packages/amino/src/signature.ts @@ -28,9 +28,10 @@ export function encodeSecp256k1Signature(pubkey: Uint8Array, signature: Uint8Arr }; } -export function decodeSignature( - signature: StdSignature, -): { readonly pubkey: Uint8Array; readonly signature: Uint8Array } { +export function decodeSignature(signature: StdSignature): { + readonly pubkey: Uint8Array; + readonly signature: Uint8Array; +} { switch (signature.pub_key.type) { // Note: please don't add cases here without writing additional unit tests case pubkeyType.secp256k1: diff --git a/packages/amino/src/testutils.spec.ts b/packages/amino/src/testutils.spec.ts index 18c5f57b..9b7085aa 100644 --- a/packages/amino/src/testutils.spec.ts +++ b/packages/amino/src/testutils.spec.ts @@ -1,7 +1,8 @@ import { decodeBech32Pubkey } from "./encoding"; import { MultisigThresholdPubkey } from "./pubkeys"; -export const base64Matcher = /^(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|(?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))$/; +export const base64Matcher = + /^(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|(?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))$/; // ./build/wasmd keys add test1 // ./build/wasmd keys add test2 diff --git a/packages/cli/README.md b/packages/cli/README.md index 2671c734..274d0b63 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -45,9 +45,8 @@ $ cosmwasm-cli ```ts // Get account information -const { account_number, sequence } = ( - await client.authAccounts(faucetAddress) -).result.value; +const { account_number, sequence } = (await client.authAccounts(faucetAddress)) + .result.value; // Craft a send transaction const emptyAddress = Bech32.encode("cosmos", Random.getBytes(20)); diff --git a/packages/cosmwasm-launchpad/src/cosmwasmclient.spec.ts b/packages/cosmwasm-launchpad/src/cosmwasmclient.spec.ts index ef84dcbb..860f4cc1 100644 --- a/packages/cosmwasm-launchpad/src/cosmwasmclient.spec.ts +++ b/packages/cosmwasm-launchpad/src/cosmwasmclient.spec.ts @@ -57,7 +57,7 @@ describe("CosmWasmClient", () => { it("caches chain ID", async () => { pendingWithoutLaunchpad(); const client = new CosmWasmClient(launchpad.endpoint); - const openedClient = (client as unknown) as PrivateCosmWasmClient; + const openedClient = client as unknown as PrivateCosmWasmClient; const getCodeSpy = spyOn(openedClient.lcdClient, "nodeInfo").and.callThrough(); expect(await client.getChainId()).toEqual(launchpad.chainId); // from network @@ -71,7 +71,7 @@ describe("CosmWasmClient", () => { it("gets height via last block", async () => { pendingWithoutLaunchpad(); const client = new CosmWasmClient(launchpad.endpoint); - const openedClient = (client as unknown) as PrivateCosmWasmClient; + const openedClient = client as unknown as PrivateCosmWasmClient; const blockLatestSpy = spyOn(openedClient.lcdClient, "blocksLatest").and.callThrough(); const height1 = await client.getHeight(); @@ -88,7 +88,7 @@ describe("CosmWasmClient", () => { pendingWithoutLaunchpad(); const client = new CosmWasmClient(launchpad.endpoint); - const openedClient = (client as unknown) as PrivateCosmWasmClient; + const openedClient = client as unknown as PrivateCosmWasmClient; const blockLatestSpy = spyOn(openedClient.lcdClient, "blocksLatest").and.callThrough(); const authAccountsSpy = spyOn(openedClient.lcdClient.auth, "account").and.callThrough(); @@ -290,7 +290,7 @@ describe("CosmWasmClient", () => { it("caches downloads", async () => { pendingWithoutLaunchpad(); const client = new CosmWasmClient(launchpad.endpoint); - const openedClient = (client as unknown) as PrivateCosmWasmClient; + const openedClient = client as unknown as PrivateCosmWasmClient; const getCodeSpy = spyOn(openedClient.lcdClient.wasm, "getCode").and.callThrough(); const result1 = await client.getCodeDetails(deployedHackatom.codeId); // from network diff --git a/packages/cosmwasm-launchpad/src/cosmwasmclient.ts b/packages/cosmwasm-launchpad/src/cosmwasmclient.ts index 28c9d43c..1f7324e1 100644 --- a/packages/cosmwasm-launchpad/src/cosmwasmclient.ts +++ b/packages/cosmwasm-launchpad/src/cosmwasmclient.ts @@ -339,18 +339,16 @@ export class CosmWasmClient { public async getCodes(): Promise { const result = await this.lcdClient.wasm.listCodeInfo(); - return result.map( - (entry): Code => { - this.anyValidAddress = entry.creator; - return { - id: entry.id, - creator: entry.creator, - checksum: toHex(fromHex(entry.data_hash)), - source: entry.source || undefined, - builder: entry.builder || undefined, - }; - }, - ); + return result.map((entry): Code => { + this.anyValidAddress = entry.creator; + return { + id: entry.id, + creator: entry.creator, + checksum: toHex(fromHex(entry.data_hash)), + source: entry.source || undefined, + builder: entry.builder || undefined, + }; + }); } public async getCodeDetails(codeId: number): Promise { diff --git a/packages/cosmwasm-launchpad/src/signingcosmwasmclient.spec.ts b/packages/cosmwasm-launchpad/src/signingcosmwasmclient.spec.ts index 2cd5c49a..a8e47b2f 100644 --- a/packages/cosmwasm-launchpad/src/signingcosmwasmclient.spec.ts +++ b/packages/cosmwasm-launchpad/src/signingcosmwasmclient.spec.ts @@ -248,7 +248,7 @@ describe("SigningCosmWasmClient", () => { const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic); const client = new SigningCosmWasmClient(launchpad.endpoint, alice.address0, wallet); - const openedClient = (client as unknown) as PrivateCosmWasmClient; + const openedClient = client as unknown as PrivateCosmWasmClient; const blockLatestSpy = spyOn(openedClient.lcdClient, "blocksLatest").and.callThrough(); const authAccountsSpy = spyOn(openedClient.lcdClient.auth, "account").and.callThrough(); @@ -266,13 +266,8 @@ describe("SigningCosmWasmClient", () => { const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic); const client = new SigningCosmWasmClient(launchpad.endpoint, alice.address0, wallet); const wasm = getHackatom().data; - const { - codeId, - originalChecksum, - originalSize, - compressedChecksum, - compressedSize, - } = await client.upload(wasm); + const { codeId, originalChecksum, originalSize, compressedChecksum, compressedSize } = + await client.upload(wasm); expect(originalChecksum).toEqual(toHex(sha256(wasm))); expect(originalSize).toEqual(wasm.length); expect(compressedChecksum).toMatch(/^[0-9a-f]{64}$/); diff --git a/packages/cosmwasm-launchpad/src/testutils.spec.ts b/packages/cosmwasm-launchpad/src/testutils.spec.ts index 5b2202b8..562b9ee0 100644 --- a/packages/cosmwasm-launchpad/src/testutils.spec.ts +++ b/packages/cosmwasm-launchpad/src/testutils.spec.ts @@ -25,7 +25,8 @@ export function makeRandomAddress(): string { export const tendermintIdMatcher = /^[0-9A-F]{64}$/; /** @see https://rgxdb.com/r/1NUN74O6 */ -export const base64Matcher = /^(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|(?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))$/; +export const base64Matcher = + /^(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|(?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))$/; // https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#bech32 export const bech32AddressMatcher = /^[\x21-\x7e]{1,83}1[02-9ac-hj-np-z]{38}$/; diff --git a/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts b/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts index e0437dba..46dd0b20 100644 --- a/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts +++ b/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts @@ -57,7 +57,7 @@ describe("CosmWasmClient", () => { it("caches chain ID", async () => { pendingWithoutWasmd(); const client = await CosmWasmClient.connect(wasmd.endpoint); - const openedClient = (client as unknown) as PrivateCosmWasmClient; + const openedClient = client as unknown as PrivateCosmWasmClient; const getCodeSpy = spyOn(openedClient.tmClient!, "status").and.callThrough(); expect(await client.getChainId()).toEqual(wasmd.chainId); // from network @@ -258,7 +258,7 @@ describe("CosmWasmClient", () => { it("caches downloads", async () => { pendingWithoutWasmd(); const client = await CosmWasmClient.connect(wasmd.endpoint); - const openedClient = (client as unknown) as PrivateCosmWasmClient; + const openedClient = client as unknown as PrivateCosmWasmClient; const getCodeSpy = spyOn(openedClient.queryClient!.wasm, "getCode").and.callThrough(); const result1 = await client.getCodeDetails(deployedHackatom.codeId); // from network diff --git a/packages/cosmwasm-stargate/src/cosmwasmclient.ts b/packages/cosmwasm-stargate/src/cosmwasmclient.ts index 619b08b4..fbb9c014 100644 --- a/packages/cosmwasm-stargate/src/cosmwasmclient.ts +++ b/packages/cosmwasm-stargate/src/cosmwasmclient.ts @@ -274,18 +274,16 @@ export class CosmWasmClient { public async getCodes(): Promise { const { codeInfos } = await this.forceGetQueryClient().wasm.listCodeInfo(); - return (codeInfos || []).map( - (entry: CodeInfoResponse): Code => { - assert(entry.creator && entry.codeId && entry.dataHash, "entry incomplete"); - return { - id: entry.codeId.toNumber(), - creator: entry.creator, - checksum: toHex(entry.dataHash), - source: entry.source || undefined, - builder: entry.builder || undefined, - }; - }, - ); + return (codeInfos || []).map((entry: CodeInfoResponse): Code => { + assert(entry.creator && entry.codeId && entry.dataHash, "entry incomplete"); + return { + id: entry.codeId.toNumber(), + creator: entry.creator, + checksum: toHex(entry.dataHash), + source: entry.source || undefined, + builder: entry.builder || undefined, + }; + }); } public async getCodeDetails(codeId: number): Promise { @@ -345,16 +343,14 @@ export class CosmWasmClient { [ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS]: "Genesis", [ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE]: "Migrate", }; - return (result.entries || []).map( - (entry): ContractCodeHistoryEntry => { - assert(entry.operation && entry.codeId && entry.msg); - return { - operation: operations[entry.operation], - codeId: entry.codeId.toNumber(), - msg: JSON.parse(fromAscii(entry.msg)), - }; - }, - ); + return (result.entries || []).map((entry): ContractCodeHistoryEntry => { + assert(entry.operation && entry.codeId && entry.msg); + return { + operation: operations[entry.operation], + codeId: entry.codeId.toNumber(), + msg: JSON.parse(fromAscii(entry.msg)), + }; + }); } /** diff --git a/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts b/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts index ff14f70d..fe254e1e 100644 --- a/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts +++ b/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts @@ -228,13 +228,8 @@ describe("SigningCosmWasmClient", () => { const options = { prefix: wasmd.prefix }; const client = await SigningCosmWasmClient.connectWithSigner(wasmd.endpoint, wallet, options); const wasm = getHackatom().data; - const { - codeId, - originalChecksum, - originalSize, - compressedChecksum, - compressedSize, - } = await client.upload(alice.address0, wasm); + const { codeId, originalChecksum, originalSize, compressedChecksum, compressedSize } = + await client.upload(alice.address0, wasm); expect(originalChecksum).toEqual(toHex(sha256(wasm))); expect(originalSize).toEqual(wasm.length); expect(compressedChecksum).toMatch(/^[0-9a-f]{64}$/); diff --git a/packages/cosmwasm-stargate/src/testutils.spec.ts b/packages/cosmwasm-stargate/src/testutils.spec.ts index e88c6843..8afc8ca1 100644 --- a/packages/cosmwasm-stargate/src/testutils.spec.ts +++ b/packages/cosmwasm-stargate/src/testutils.spec.ts @@ -55,7 +55,8 @@ export function makeRandomAddress(): string { export const tendermintIdMatcher = /^[0-9A-F]{64}$/; /** @see https://rgxdb.com/r/1NUN74O6 */ -export const base64Matcher = /^(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|(?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))$/; +export const base64Matcher = + /^(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|(?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))$/; // https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#bech32 export const bech32AddressMatcher = /^[\x21-\x7e]{1,83}1[02-9ac-hj-np-z]{38}$/; diff --git a/packages/encoding/src/rfc3339.ts b/packages/encoding/src/rfc3339.ts index 180ee995..b5939f30 100644 --- a/packages/encoding/src/rfc3339.ts +++ b/packages/encoding/src/rfc3339.ts @@ -1,6 +1,7 @@ import { ReadonlyDate } from "readonly-date"; -const rfc3339Matcher = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(\.\d{1,9})?((?:[+-]\d{2}:\d{2})|Z)$/; +const rfc3339Matcher = + /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(\.\d{1,9})?((?:[+-]\d{2}:\d{2})|Z)$/; function padded(integer: number, length = 2): string { const filled = "00000" + integer.toString(); diff --git a/packages/launchpad/README.md b/packages/launchpad/README.md index f1ebf825..822375d0 100644 --- a/packages/launchpad/README.md +++ b/packages/launchpad/README.md @@ -255,9 +255,8 @@ transactions, you need to setup the auth extension with: import { LcdClient, setupAuthExtension } from "@cosmjs/launchpad"; const client = LcdClient.withExtensions({ apiUrl }, setupAuthExtension); -const { account_number, sequence } = ( - await client.auth.account(myAddress) -).result.value; +const { account_number, sequence } = (await client.auth.account(myAddress)) + .result.value; ``` A full client can use all of the following extensions: @@ -424,9 +423,8 @@ const fee: StdFee = { gas: "89000000", }; const memo = "Time for action"; -const { account_number, sequence } = ( - await client.auth.account(myAddress) -).result.value; +const { account_number, sequence } = (await client.auth.account(myAddress)) + .result.value; const signDoc = makeSignDoc([msg], fee, apiUrl, memo, account_number, sequence); const { signed, signature } = await signer.sign(myAddress, signDoc); const signedTx = makeStdTx(signed, signature); diff --git a/packages/launchpad/src/cosmosclient.spec.ts b/packages/launchpad/src/cosmosclient.spec.ts index 84a4e110..e19b848f 100644 --- a/packages/launchpad/src/cosmosclient.spec.ts +++ b/packages/launchpad/src/cosmosclient.spec.ts @@ -41,7 +41,7 @@ describe("CosmosClient", () => { it("caches chain ID", async () => { pendingWithoutLaunchpad(); const client = new CosmosClient(launchpad.endpoint); - const openedClient = (client as unknown) as PrivateCosmosClient; + const openedClient = client as unknown as PrivateCosmosClient; const getCodeSpy = spyOn(openedClient.lcdClient, "nodeInfo").and.callThrough(); expect(await client.getChainId()).toEqual(launchpad.chainId); // from network @@ -55,7 +55,7 @@ describe("CosmosClient", () => { it("gets height via last block", async () => { pendingWithoutLaunchpad(); const client = new CosmosClient(launchpad.endpoint); - const openedClient = (client as unknown) as PrivateCosmosClient; + const openedClient = client as unknown as PrivateCosmosClient; const blockLatestSpy = spyOn(openedClient.lcdClient, "blocksLatest").and.callThrough(); const height1 = await client.getHeight(); @@ -72,7 +72,7 @@ describe("CosmosClient", () => { pendingWithoutLaunchpad(); const client = new CosmosClient(launchpad.endpoint); - const openedClient = (client as unknown) as PrivateCosmosClient; + const openedClient = client as unknown as PrivateCosmosClient; const blockLatestSpy = spyOn(openedClient.lcdClient, "blocksLatest").and.callThrough(); const authAccountsSpy = spyOn(openedClient.lcdClient.auth, "account").and.callThrough(); diff --git a/packages/launchpad/src/lcdapi/lcdclient.ts b/packages/launchpad/src/lcdapi/lcdclient.ts index 02afc4cc..0ed7f40e 100644 --- a/packages/launchpad/src/lcdapi/lcdclient.ts +++ b/packages/launchpad/src/lcdapi/lcdclient.ts @@ -101,7 +101,7 @@ export class LcdClient { B extends object, C extends object, D extends object, - E extends object + E extends object, >( options: LcdClientBaseOptions, setupExtensionA: LcdExtensionSetup, @@ -118,7 +118,7 @@ export class LcdClient { C extends object, D extends object, E extends object, - F extends object + F extends object, >( options: LcdClientBaseOptions, setupExtensionA: LcdExtensionSetup, @@ -137,7 +137,7 @@ export class LcdClient { D extends object, E extends object, F extends object, - G extends object + G extends object, >( options: LcdClientBaseOptions, setupExtensionA: LcdExtensionSetup, @@ -158,7 +158,7 @@ export class LcdClient { E extends object, F extends object, G extends object, - H extends object + H extends object, >( options: LcdClientBaseOptions, setupExtensionA: LcdExtensionSetup, diff --git a/packages/launchpad/src/signingcosmosclient.spec.ts b/packages/launchpad/src/signingcosmosclient.spec.ts index 5878700c..a5a6f471 100644 --- a/packages/launchpad/src/signingcosmosclient.spec.ts +++ b/packages/launchpad/src/signingcosmosclient.spec.ts @@ -19,7 +19,7 @@ describe("SigningCosmosClient", () => { it("can be constructed with default fees", async () => { const wallet = await Secp256k1HdWallet.fromMnemonic(faucet.mnemonic); const client = new SigningCosmosClient(launchpad.endpoint, faucet.address0, wallet); - const openedClient = (client as unknown) as PrivateSigningCosmosClient; + const openedClient = client as unknown as PrivateSigningCosmosClient; expect(openedClient.fees).toEqual({ send: { amount: [ @@ -37,7 +37,7 @@ describe("SigningCosmosClient", () => { const wallet = await Secp256k1HdWallet.fromMnemonic(faucet.mnemonic); const gasPrice = GasPrice.fromString("3.14utest"); const client = new SigningCosmosClient(launchpad.endpoint, faucet.address0, wallet, gasPrice); - const openedClient = (client as unknown) as PrivateSigningCosmosClient; + const openedClient = client as unknown as PrivateSigningCosmosClient; expect(openedClient.fees).toEqual({ send: { amount: [ @@ -63,7 +63,7 @@ describe("SigningCosmosClient", () => { undefined, gasLimits, ); - const openedClient = (client as unknown) as PrivateSigningCosmosClient; + const openedClient = client as unknown as PrivateSigningCosmosClient; expect(openedClient.fees).toEqual({ send: { amount: [ @@ -90,7 +90,7 @@ describe("SigningCosmosClient", () => { gasPrice, gasLimits, ); - const openedClient = (client as unknown) as PrivateSigningCosmosClient; + const openedClient = client as unknown as PrivateSigningCosmosClient; expect(openedClient.fees).toEqual({ send: { amount: [ @@ -111,7 +111,7 @@ describe("SigningCosmosClient", () => { const wallet = await Secp256k1HdWallet.fromMnemonic(faucet.mnemonic); const client = new SigningCosmosClient(launchpad.endpoint, faucet.address0, wallet); - const openedClient = (client as unknown) as PrivateCosmosClient; + const openedClient = client as unknown as PrivateCosmosClient; const blockLatestSpy = spyOn(openedClient.lcdClient, "blocksLatest").and.callThrough(); const authAccountsSpy = spyOn(openedClient.lcdClient.auth, "account").and.callThrough(); diff --git a/packages/launchpad/src/testutils.spec.ts b/packages/launchpad/src/testutils.spec.ts index 57bea7d1..41bd378f 100644 --- a/packages/launchpad/src/testutils.spec.ts +++ b/packages/launchpad/src/testutils.spec.ts @@ -17,7 +17,8 @@ export const tendermintShortHashMatcher = /^[0-9a-f]{40}$/; export const dateTimeStampMatcher = /^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\.[0-9]+)?Z$/; export const semverMatcher = /^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/; /** @see https://rgxdb.com/r/1NUN74O6 */ -export const base64Matcher = /^(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|(?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))$/; +export const base64Matcher = + /^(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|(?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))$/; export const hexMatcher = /^([0-9a-fA-F][0-9a-fA-F])*$/; // https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#bech32 diff --git a/packages/ledger-amino/src/demo/node.ts b/packages/ledger-amino/src/demo/node.ts index 7ab4a689..33ab7176 100644 --- a/packages/ledger-amino/src/demo/node.ts +++ b/packages/ledger-amino/src/demo/node.ts @@ -22,9 +22,7 @@ export async function createSigner(): Promise { }); } -export async function getAccounts( - signer: LedgerSigner, -): Promise< +export async function getAccounts(signer: LedgerSigner): Promise< ReadonlyArray<{ readonly algo: string; readonly address: string; diff --git a/packages/proto-signing/src/registry.spec.ts b/packages/proto-signing/src/registry.spec.ts index 274dac87..d4622092 100644 --- a/packages/proto-signing/src/registry.spec.ts +++ b/packages/proto-signing/src/registry.spec.ts @@ -23,11 +23,11 @@ describe("registry demo", () => { denom: "ucosm", amount: "1234567890", }); - const msgSend = (MsgSend.fromPartial({ + const msgSend = MsgSend.fromPartial({ fromAddress: "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6", toAddress: "cosmos1qypqxpq9qcrsszg2pvxq6rs0zqg3yyc5lzv7xu", amount: [coin], - }) as unknown) as IMsgSend; + }) as unknown as IMsgSend; const msgSendBytes = MsgSend.encode(msgSend).finish(); const msgSendWrapped = Any.fromPartial({ typeUrl: "/cosmos.bank.v1beta1.MsgSend", diff --git a/packages/proto-signing/src/testutils.spec.ts b/packages/proto-signing/src/testutils.spec.ts index 1e3c2350..1c1c4a3e 100644 --- a/packages/proto-signing/src/testutils.spec.ts +++ b/packages/proto-signing/src/testutils.spec.ts @@ -1,5 +1,6 @@ /** @see https://rgxdb.com/r/1NUN74O6 */ -export const base64Matcher = /^(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|(?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))$/; +export const base64Matcher = + /^(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|(?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))$/; export const faucet = { mnemonic: diff --git a/packages/stargate/src/fee.spec.ts b/packages/stargate/src/fee.spec.ts index e92b5fa8..1407ea65 100644 --- a/packages/stargate/src/fee.spec.ts +++ b/packages/stargate/src/fee.spec.ts @@ -21,11 +21,12 @@ describe("GasPrice", () => { "0.14utest": { amount: "0.14", denom: "utest" }, // Test denoms "0.14sht": { amount: "0.14", denom: "sht" }, - "0.14testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest": { - amount: "0.14", - denom: - "testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest", - }, + "0.14testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest": + { + amount: "0.14", + denom: + "testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest", + }, "0.14ucoin2": { amount: "0.14", denom: "ucoin2" }, // eslint-disable-next-line @typescript-eslint/naming-convention "0.14FOOBAR": { amount: "0.14", denom: "FOOBAR" }, diff --git a/packages/stargate/src/queries/ibc.spec.ts b/packages/stargate/src/queries/ibc.spec.ts index 3547f2bd..3cbd832b 100644 --- a/packages/stargate/src/queries/ibc.spec.ts +++ b/packages/stargate/src/queries/ibc.spec.ts @@ -228,11 +228,11 @@ describe("IbcExtension", () => { pendingWithoutSimapp(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); - const response = await client.ibc.channel.unreceivedPackets(ibcTest.portId, ibcTest.channelId, [ - 1, - 2, - 3, - ]); + const response = await client.ibc.channel.unreceivedPackets( + ibcTest.portId, + ibcTest.channelId, + [1, 2, 3], + ); expect(response.sequences).toEqual([1, 2, 3].map((n) => Long.fromInt(n, true))); expect(response.height).toBeDefined(); @@ -245,15 +245,11 @@ describe("IbcExtension", () => { pendingWithoutSimapp(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); - const response = await client.ibc.channel.unreceivedAcks(ibcTest.portId, ibcTest.channelId, [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - ]); + const response = await client.ibc.channel.unreceivedAcks( + ibcTest.portId, + ibcTest.channelId, + [1, 2, 3, 4, 5, 6, 7], + ); expect(response.sequences).toEqual([Long.fromInt(ibcTest.commitment.sequence, true)]); expect(response.height).toBeDefined(); diff --git a/packages/stargate/src/queries/queryclient.ts b/packages/stargate/src/queries/queryclient.ts index 834bc65c..f22e1d9b 100644 --- a/packages/stargate/src/queries/queryclient.ts +++ b/packages/stargate/src/queries/queryclient.ts @@ -67,7 +67,7 @@ export class QueryClient { B extends object, C extends object, D extends object, - E extends object + E extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -84,7 +84,7 @@ export class QueryClient { C extends object, D extends object, E extends object, - F extends object + F extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -103,7 +103,7 @@ export class QueryClient { D extends object, E extends object, F extends object, - G extends object + G extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -124,7 +124,7 @@ export class QueryClient { E extends object, F extends object, G extends object, - H extends object + H extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -147,7 +147,7 @@ export class QueryClient { F extends object, G extends object, H extends object, - I extends object + I extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -172,7 +172,7 @@ export class QueryClient { G extends object, H extends object, I extends object, - J extends object + J extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -199,7 +199,7 @@ export class QueryClient { H extends object, I extends object, J extends object, - K extends object + K extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -228,7 +228,7 @@ export class QueryClient { I extends object, J extends object, K extends object, - L extends object + L extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -259,7 +259,7 @@ export class QueryClient { J extends object, K extends object, L extends object, - M extends object + M extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -292,7 +292,7 @@ export class QueryClient { K extends object, L extends object, M extends object, - N extends object + N extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -327,7 +327,7 @@ export class QueryClient { L extends object, M extends object, N extends object, - O extends object + O extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -364,7 +364,7 @@ export class QueryClient { M extends object, N extends object, O extends object, - P extends object + P extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -403,7 +403,7 @@ export class QueryClient { N extends object, O extends object, P extends object, - Q extends object + Q extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, @@ -444,7 +444,7 @@ export class QueryClient { O extends object, P extends object, Q extends object, - R extends object + R extends object, >( tmClient: Tendermint34Client, setupExtensionA: QueryExtensionSetup, diff --git a/packages/stargate/src/signingstargateclient.spec.ts b/packages/stargate/src/signingstargateclient.spec.ts index f882f8cc..c547f26b 100644 --- a/packages/stargate/src/signingstargateclient.spec.ts +++ b/packages/stargate/src/signingstargateclient.spec.ts @@ -31,7 +31,7 @@ describe("SigningStargateClient", () => { pendingWithoutSimapp(); const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic); const client = await SigningStargateClient.connectWithSigner(simapp.tendermintUrl, wallet); - const openedClient = (client as unknown) as PrivateSigningStargateClient; + const openedClient = client as unknown as PrivateSigningStargateClient; expect(openedClient.fees).toEqual({ send: { amount: [ @@ -88,7 +88,7 @@ describe("SigningStargateClient", () => { registry.register("/custom.MsgCustom", MsgSend); const options = { registry: registry }; const client = await SigningStargateClient.connectWithSigner(simapp.tendermintUrl, wallet, options); - const openedClient = (client as unknown) as PrivateSigningStargateClient; + const openedClient = client as unknown as PrivateSigningStargateClient; expect(openedClient.registry.lookupType("/custom.MsgCustom")).toEqual(MsgSend); }); @@ -98,7 +98,7 @@ describe("SigningStargateClient", () => { const gasPrice = GasPrice.fromString("3.14utest"); const options = { gasPrice: gasPrice }; const client = await SigningStargateClient.connectWithSigner(simapp.tendermintUrl, wallet, options); - const openedClient = (client as unknown) as PrivateSigningStargateClient; + const openedClient = client as unknown as PrivateSigningStargateClient; expect(openedClient.fees).toEqual({ send: { amount: [ @@ -157,7 +157,7 @@ describe("SigningStargateClient", () => { }; const options = { gasLimits: gasLimits }; const client = await SigningStargateClient.connectWithSigner(simapp.tendermintUrl, wallet, options); - const openedClient = (client as unknown) as PrivateSigningStargateClient; + const openedClient = client as unknown as PrivateSigningStargateClient; expect(openedClient.fees).toEqual({ send: { amount: [ @@ -216,7 +216,7 @@ describe("SigningStargateClient", () => { }; const options = { gasPrice: gasPrice, gasLimits: gasLimits }; const client = await SigningStargateClient.connectWithSigner(simapp.tendermintUrl, wallet, options); - const openedClient = (client as unknown) as PrivateSigningStargateClient; + const openedClient = client as unknown as PrivateSigningStargateClient; expect(openedClient.fees).toEqual({ send: { amount: [ diff --git a/packages/stargate/src/stargateclient.spec.ts b/packages/stargate/src/stargateclient.spec.ts index ca2d2b7c..36056986 100644 --- a/packages/stargate/src/stargateclient.spec.ts +++ b/packages/stargate/src/stargateclient.spec.ts @@ -53,7 +53,7 @@ describe("StargateClient", () => { it("caches chain ID", async () => { pendingWithoutSimapp(); const client = await StargateClient.connect(simapp.tendermintUrl); - const openedClient = (client as unknown) as PrivateStargateClient; + const openedClient = client as unknown as PrivateStargateClient; const getCodeSpy = spyOn(openedClient.tmClient!, "status").and.callThrough(); expect(await client.getChainId()).toEqual(simapp.chainId); // from network diff --git a/packages/tendermint-rpc/src/legacy/encodings.ts b/packages/tendermint-rpc/src/legacy/encodings.ts index f950fd17..bbdcfc2a 100644 --- a/packages/tendermint-rpc/src/legacy/encodings.ts +++ b/packages/tendermint-rpc/src/legacy/encodings.ts @@ -117,7 +117,7 @@ export function assertNotEmpty(value: T): T { if (typeof value === "number" && value === 0) { throw new Error("must provide a non-zero value"); - } else if (((value as any) as Lengther).length === 0) { + } else if ((value as any as Lengther).length === 0) { throw new Error("must provide a non-empty value"); } return value; diff --git a/packages/tendermint-rpc/src/tendermint34/encodings.ts b/packages/tendermint-rpc/src/tendermint34/encodings.ts index f950fd17..bbdcfc2a 100644 --- a/packages/tendermint-rpc/src/tendermint34/encodings.ts +++ b/packages/tendermint-rpc/src/tendermint34/encodings.ts @@ -117,7 +117,7 @@ export function assertNotEmpty(value: T): T { if (typeof value === "number" && value === 0) { throw new Error("must provide a non-zero value"); - } else if (((value as any) as Lengther).length === 0) { + } else if ((value as any as Lengther).length === 0) { throw new Error("must provide a non-empty value"); } return value; diff --git a/yarn.lock b/yarn.lock index 0dc47276..537b2800 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6418,9 +6418,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^2.0.2, prettier@^2.0.5: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + version "2.3.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" + integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== process-nextick-args@~2.0.0: version "2.0.1"