Skip to content

Commit

Permalink
Update Tendermint client (#5)
Browse files Browse the repository at this point in the history
* Update Tendermint client in SwisstronikSigningStargateClient

* Update sdk version to 1.5.0
  • Loading branch information
itslesther authored Mar 14, 2024
1 parent c680ecf commit 979bddd
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 5 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/sdk/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
20 changes: 17 additions & 3 deletions packages/sdk/src/signer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -107,15 +107,29 @@ export class SwisstronikSigningStargateClient extends SigningStargateClient {
private readonly overridenAccountParser: AccountParser;

public static async connectWithSigner(endpoint: string | HttpEndpoint, signer: OfflineSigner, options?: SigningStargateClientOptions | undefined): Promise<SwisstronikSigningStargateClient> {
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
})
}

constructor(
tmClient: Tendermint34Client | undefined,
tmClient: Tendermint37Client | Tendermint34Client | undefined,
signer: OfflineSigner,
options: SigningStargateClientOptions = {}
) {
Expand Down

0 comments on commit 979bddd

Please sign in to comment.