From 979bddd3ef0e3b75d3befae3076944c7e863d996 Mon Sep 17 00:00:00 2001 From: Lesther Caballero Date: Thu, 14 Mar 2024 11:35:08 +0100 Subject: [PATCH] Update Tendermint client (#5) * Update Tendermint client in SwisstronikSigningStargateClient * Update sdk version to 1.5.0 --- package-lock.json | 2 +- packages/sdk/package.json | 2 +- packages/sdk/src/signer.ts | 20 +++++++++++++++++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index a3ca4a9..f5f80f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42261,7 +42261,7 @@ }, "packages/sdk": { "name": "@swisstronik/sdk", - "version": "1.4.0", + "version": "1.5.0", "license": "Apache-2.0", "dependencies": { "@cosmjs/amino": "^0.31.1", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 98a435a..10af925 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@swisstronik/sdk", - "version": "1.4.0", + "version": "1.5.0", "description": "TypeScript SDK for Swisstronik Network", "license": "Apache-2.0", "source": "src/index.ts", diff --git a/packages/sdk/src/signer.ts b/packages/sdk/src/signer.ts index fcf1802..7814ad8 100644 --- a/packages/sdk/src/signer.ts +++ b/packages/sdk/src/signer.ts @@ -18,7 +18,7 @@ import { SignerData } from "@cosmjs/stargate" import { EthAccount } from "./types-proto/ethermint/types/v1/account.js"; -import { Tendermint34Client } from "@cosmjs/tendermint-rpc" +import { Tendermint34Client, Tendermint37Client } from "@cosmjs/tendermint-rpc" import { createDefaultIdentityRegistry } from "./registry.js" import { MsgCreateDIDDocumentPayload, @@ -107,7 +107,21 @@ export class SwisstronikSigningStargateClient extends SigningStargateClient { private readonly overridenAccountParser: AccountParser; public static async connectWithSigner(endpoint: string | HttpEndpoint, signer: OfflineSigner, options?: SigningStargateClientOptions | undefined): Promise { - const tmClient = await Tendermint34Client.connect(endpoint) + // Tendermint/CometBFT 0.34/0.37 auto-detection. Starting with 0.37 we seem to get reliable versions again 🎉 + // Using 0.34 as the fallback. + let tmClient: Tendermint37Client | Tendermint34Client; + const tm37Client = await Tendermint37Client.connect(endpoint); + const version = (await tm37Client.status()).nodeInfo.version; + console.log(`[sdk::signer.ts] Tendermint version: `, version); + + if (version.startsWith("0.37.")) { + tmClient = tm37Client; + } + else { + tm37Client.disconnect(); + tmClient = await Tendermint34Client.connect(endpoint); + } + return new SwisstronikSigningStargateClient(tmClient, signer, { registry: options?.registry ? options.registry : createDefaultIdentityRegistry(), ...options @@ -115,7 +129,7 @@ export class SwisstronikSigningStargateClient extends SigningStargateClient { } constructor( - tmClient: Tendermint34Client | undefined, + tmClient: Tendermint37Client | Tendermint34Client | undefined, signer: OfflineSigner, options: SigningStargateClientOptions = {} ) {