Use Tendermint34Client

This commit is contained in:
Simon Warta
2021-02-23 13:27:52 +01:00
parent 8eb40f4eef
commit 61a3759200
12 changed files with 49 additions and 51 deletions
@@ -32,9 +32,8 @@ import {
} from "@cosmjs/stargate";
import { TxMsgData } from "@cosmjs/stargate/build/codec/cosmos/base/abci/v1beta1/abci";
import {
adaptor34,
broadcastTxCommitSuccess,
Client as TendermintClient,
Tendermint34Client,
toRfc3339WithNanoseconds,
} from "@cosmjs/tendermint-rpc";
import { assert } from "@cosmjs/utils";
@@ -45,22 +44,22 @@ import { setupWasmExtension, WasmExtension } from "./queries";
/** Use for testing only */
export interface PrivateCosmWasmClient {
readonly tmClient: TendermintClient;
readonly tmClient: Tendermint34Client;
readonly queryClient: QueryClient & AuthExtension & BankExtension & WasmExtension;
}
export class CosmWasmClient {
private readonly tmClient: TendermintClient;
private readonly tmClient: Tendermint34Client;
private readonly queryClient: QueryClient & AuthExtension & BankExtension & WasmExtension;
private readonly codesCache = new Map<number, CodeDetails>();
private chainId: string | undefined;
public static async connect(endpoint: string): Promise<CosmWasmClient> {
const tmClient = await TendermintClient.connect(endpoint, adaptor34);
const tmClient = await Tendermint34Client.connect(endpoint);
return new CosmWasmClient(tmClient);
}
protected constructor(tmClient: TendermintClient) {
protected constructor(tmClient: Tendermint34Client) {
this.tmClient = tmClient;
this.queryClient = QueryClient.withExtensions(
tmClient,
@@ -43,7 +43,7 @@ import {
} from "@cosmjs/stargate";
import { SignMode } from "@cosmjs/stargate/build/codec/cosmos/tx/signing/v1beta1/signing";
import { TxRaw } from "@cosmjs/stargate/build/codec/cosmos/tx/v1beta1/tx";
import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import Long from "long";
import pako from "pako";
@@ -118,12 +118,12 @@ export class SigningCosmWasmClient extends CosmWasmClient {
signer: OfflineSigner,
options: SigningCosmWasmClientOptions = {},
): Promise<SigningCosmWasmClient> {
const tmClient = await TendermintClient.connect(endpoint, adaptor34);
const tmClient = await Tendermint34Client.connect(endpoint);
return new SigningCosmWasmClient(tmClient, signer, options);
}
private constructor(
tmClient: TendermintClient,
tmClient: Tendermint34Client,
signer: OfflineSigner,
options: SigningCosmWasmClientOptions,
) {
@@ -17,7 +17,7 @@ import {
} from "@cosmjs/stargate";
import { SignMode } from "@cosmjs/stargate/build/codec/cosmos/tx/signing/v1beta1/signing";
import { AuthInfo, SignDoc, TxBody } from "@cosmjs/stargate/build/codec/cosmos/tx/v1beta1/tx";
import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import { setupWasmExtension, WasmExtension } from "./queries";
import hackatom from "./testdata/contract.json";
@@ -203,7 +203,7 @@ export function fromOneElementArray<T>(elements: ArrayLike<T>): T {
export async function makeWasmClient(
endpoint: string,
): Promise<QueryClient & AuthExtension & BankExtension & WasmExtension> {
const tmClient = await TendermintClient.connect(endpoint, adaptor34);
const tmClient = await Tendermint34Client.connect(endpoint);
return QueryClient.withExtensions(tmClient, setupAuthExtension, setupBankExtension, setupWasmExtension);
}
+3 -3
View File
@@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { encodePubkey } from "@cosmjs/proto-signing";
import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import { assert } from "@cosmjs/utils";
import Long from "long";
@@ -9,8 +9,8 @@ import { nonExistentAddress, pendingWithoutSimapp, simapp, unused, validator } f
import { AuthExtension, setupAuthExtension } from "./auth";
import { QueryClient } from "./queryclient";
async function makeClientWithAuth(rpcUrl: string): Promise<[QueryClient & AuthExtension, TendermintClient]> {
const tmClient = await TendermintClient.connect(rpcUrl, adaptor34);
async function makeClientWithAuth(rpcUrl: string): Promise<[QueryClient & AuthExtension, Tendermint34Client]> {
const tmClient = await Tendermint34Client.connect(rpcUrl);
return [QueryClient.withExtensions(tmClient, setupAuthExtension), tmClient];
}
+3 -3
View File
@@ -1,4 +1,4 @@
import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import {
nonExistentAddress,
@@ -10,8 +10,8 @@ import {
import { BankExtension, setupBankExtension } from "./bank";
import { QueryClient } from "./queryclient";
async function makeClientWithBank(rpcUrl: string): Promise<[QueryClient & BankExtension, TendermintClient]> {
const tmClient = await TendermintClient.connect(rpcUrl, adaptor34);
async function makeClientWithBank(rpcUrl: string): Promise<[QueryClient & BankExtension, Tendermint34Client]> {
const tmClient = await Tendermint34Client.connect(rpcUrl);
return [QueryClient.withExtensions(tmClient, setupBankExtension), tmClient];
}
@@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { coin, coins } from "@cosmjs/launchpad";
import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing";
import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import { sleep } from "@cosmjs/utils";
import { MsgDelegate } from "../codec/cosmos/staking/v1beta1/tx";
@@ -13,8 +13,8 @@ import { QueryClient } from "./queryclient";
async function makeClientWithDistribution(
rpcUrl: string,
): Promise<[QueryClient & DistributionExtension, TendermintClient]> {
const tmClient = await TendermintClient.connect(rpcUrl, adaptor34);
): Promise<[QueryClient & DistributionExtension, Tendermint34Client]> {
const tmClient = await Tendermint34Client.connect(rpcUrl);
return [QueryClient.withExtensions(tmClient, setupDistributionExtension), tmClient];
}
+3 -3
View File
@@ -1,4 +1,4 @@
import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import Long from "long";
import { pendingWithoutSimapp, simapp } from "../testutils.spec";
@@ -6,8 +6,8 @@ import { IbcExtension, setupIbcExtension } from "./ibc";
import * as ibcTest from "./ibctestdata.spec";
import { QueryClient } from "./queryclient";
async function makeClientWithIbc(rpcUrl: string): Promise<[QueryClient & IbcExtension, TendermintClient]> {
const tmClient = await TendermintClient.connect(rpcUrl, adaptor34);
async function makeClientWithIbc(rpcUrl: string): Promise<[QueryClient & IbcExtension, Tendermint34Client]> {
const tmClient = await Tendermint34Client.connect(rpcUrl);
return [QueryClient.withExtensions(tmClient, setupIbcExtension), tmClient];
}
@@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { toAscii } from "@cosmjs/encoding";
import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import { QueryAllBalancesRequest, QueryAllBalancesResponse } from "../codec/cosmos/bank/v1beta1/query";
import { Coin } from "../codec/cosmos/base/v1beta1/coin";
@@ -8,8 +8,8 @@ import { nonNegativeIntegerMatcher, pendingWithoutSimapp, simapp, unused } from
import { QueryClient } from "./queryclient";
import { toAccAddress } from "./utils";
async function makeClient(rpcUrl: string): Promise<[QueryClient, TendermintClient]> {
const tmClient = await TendermintClient.connect(rpcUrl, adaptor34);
async function makeClient(rpcUrl: string): Promise<[QueryClient, Tendermint34Client]> {
const tmClient = await Tendermint34Client.connect(rpcUrl);
return [QueryClient.withExtensions(tmClient), tmClient];
}
+13 -13
View File
@@ -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 { Client as TendermintClient, Header, NewBlockHeaderEvent, ProofOp } from "@cosmjs/tendermint-rpc";
import { Tendermint34Client, Header, NewBlockHeaderEvent, ProofOp } from "@cosmjs/tendermint-rpc";
import { arrayContentEquals, assert, assertDefined, isNonNullObject, sleep } from "@cosmjs/utils";
import { Stream } from "xstream";
@@ -29,24 +29,24 @@ export interface ProvenQuery {
export class QueryClient {
/** Constructs a QueryClient with 0 extensions */
public static withExtensions(tmClient: TendermintClient): QueryClient;
public static withExtensions(tmClient: Tendermint34Client): QueryClient;
/** Constructs a QueryClient with 1 extension */
public static withExtensions<A extends object>(
tmClient: TendermintClient,
tmClient: Tendermint34Client,
setupExtensionA: QueryExtensionSetup<A>,
): QueryClient & A;
/** Constructs a QueryClient with 2 extensions */
public static withExtensions<A extends object, B extends object>(
tmClient: TendermintClient,
tmClient: Tendermint34Client,
setupExtensionA: QueryExtensionSetup<A>,
setupExtensionB: QueryExtensionSetup<B>,
): QueryClient & A & B;
/** Constructs a QueryClient with 3 extensions */
public static withExtensions<A extends object, B extends object, C extends object>(
tmClient: TendermintClient,
tmClient: Tendermint34Client,
setupExtensionA: QueryExtensionSetup<A>,
setupExtensionB: QueryExtensionSetup<B>,
setupExtensionC: QueryExtensionSetup<C>,
@@ -54,7 +54,7 @@ export class QueryClient {
/** Constructs a QueryClient with 4 extensions */
public static withExtensions<A extends object, B extends object, C extends object, D extends object>(
tmClient: TendermintClient,
tmClient: Tendermint34Client,
setupExtensionA: QueryExtensionSetup<A>,
setupExtensionB: QueryExtensionSetup<B>,
setupExtensionC: QueryExtensionSetup<C>,
@@ -69,7 +69,7 @@ export class QueryClient {
D extends object,
E extends object
>(
tmClient: TendermintClient,
tmClient: Tendermint34Client,
setupExtensionA: QueryExtensionSetup<A>,
setupExtensionB: QueryExtensionSetup<B>,
setupExtensionC: QueryExtensionSetup<C>,
@@ -86,7 +86,7 @@ export class QueryClient {
E extends object,
F extends object
>(
tmClient: TendermintClient,
tmClient: Tendermint34Client,
setupExtensionA: QueryExtensionSetup<A>,
setupExtensionB: QueryExtensionSetup<B>,
setupExtensionC: QueryExtensionSetup<C>,
@@ -105,7 +105,7 @@ export class QueryClient {
F extends object,
G extends object
>(
tmClient: TendermintClient,
tmClient: Tendermint34Client,
setupExtensionA: QueryExtensionSetup<A>,
setupExtensionB: QueryExtensionSetup<B>,
setupExtensionC: QueryExtensionSetup<C>,
@@ -126,7 +126,7 @@ export class QueryClient {
G extends object,
H extends object
>(
tmClient: TendermintClient,
tmClient: Tendermint34Client,
setupExtensionA: QueryExtensionSetup<A>,
setupExtensionB: QueryExtensionSetup<B>,
setupExtensionC: QueryExtensionSetup<C>,
@@ -138,7 +138,7 @@ export class QueryClient {
): QueryClient & A & B & C & D & E & F & G & H;
public static withExtensions(
tmClient: TendermintClient,
tmClient: Tendermint34Client,
...extensionSetups: Array<QueryExtensionSetup<object>>
): any {
const client = new QueryClient(tmClient);
@@ -160,9 +160,9 @@ export class QueryClient {
return client;
}
private readonly tmClient: TendermintClient;
private readonly tmClient: Tendermint34Client;
public constructor(tmClient: TendermintClient) {
public constructor(tmClient: Tendermint34Client) {
this.tmClient = tmClient;
}
@@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { coin, coins } from "@cosmjs/launchpad";
import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing";
import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import { sleep } from "@cosmjs/utils";
import { MsgDelegate, MsgUndelegate } from "../codec/cosmos/staking/v1beta1/tx";
@@ -13,8 +13,8 @@ import { setupStakingExtension, StakingExtension } from "./staking";
async function makeClientWithStaking(
rpcUrl: string,
): Promise<[QueryClient & StakingExtension, TendermintClient]> {
const tmClient = await TendermintClient.connect(rpcUrl, adaptor34);
): Promise<[QueryClient & StakingExtension, Tendermint34Client]> {
const tmClient = await Tendermint34Client.connect(rpcUrl);
return [QueryClient.withExtensions(tmClient, setupStakingExtension), tmClient];
}
@@ -20,7 +20,7 @@ import {
OfflineSigner,
Registry,
} from "@cosmjs/proto-signing";
import { adaptor34, Client as TendermintClient } from "@cosmjs/tendermint-rpc";
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import { AminoTypes } from "./aminotypes";
import { MsgMultiSend } from "./codec/cosmos/bank/v1beta1/tx";
@@ -86,12 +86,12 @@ export class SigningStargateClient extends StargateClient {
signer: OfflineSigner,
options: SigningStargateClientOptions = {},
): Promise<SigningStargateClient> {
const tmClient = await TendermintClient.connect(endpoint, adaptor34);
const tmClient = await Tendermint34Client.connect(endpoint);
return new SigningStargateClient(tmClient, signer, options);
}
private constructor(
tmClient: TendermintClient,
tmClient: Tendermint34Client,
signer: OfflineSigner,
options: SigningStargateClientOptions,
) {
+5 -6
View File
@@ -12,9 +12,8 @@ import {
import { Uint53, Uint64 } from "@cosmjs/math";
import { decodePubkey } from "@cosmjs/proto-signing";
import {
adaptor34,
broadcastTxCommitSuccess,
Client as TendermintClient,
Tendermint34Client,
toRfc3339WithNanoseconds,
} from "@cosmjs/tendermint-rpc";
import { assert, assertDefinedAndNotNull } from "@cosmjs/utils";
@@ -115,20 +114,20 @@ export function coinFromProto(input: Coin): Coin {
/** Use for testing only */
export interface PrivateStargateClient {
readonly tmClient: TendermintClient;
readonly tmClient: Tendermint34Client;
}
export class StargateClient {
private readonly tmClient: TendermintClient;
private readonly tmClient: Tendermint34Client;
private readonly queryClient: QueryClient & AuthExtension & BankExtension;
private chainId: string | undefined;
public static async connect(endpoint: string): Promise<StargateClient> {
const tmClient = await TendermintClient.connect(endpoint, adaptor34);
const tmClient = await Tendermint34Client.connect(endpoint);
return new StargateClient(tmClient);
}
protected constructor(tmClient: TendermintClient) {
protected constructor(tmClient: Tendermint34Client) {
this.tmClient = tmClient;
this.queryClient = QueryClient.withExtensions(tmClient, setupAuthExtension, setupBankExtension);
}