@bandprotocol/bandchain.js
Version:
TypeScript library for Cosmos SDK and BandChain
34 lines (33 loc) • 1.15 kB
JavaScript
import { Registry } from "@cosmjs/proto-signing";
import { AminoTypes, SigningStargateClient } from "@cosmjs/stargate";
import { cosmosAminoConverters, cosmosProtoRegistry, ibcAminoConverters, ibcProtoRegistry, oracleAminoConverters, oracleProtoRegistry, } from "../codegen";
const protoRegistry = [
...cosmosProtoRegistry,
...ibcProtoRegistry,
...oracleProtoRegistry,
];
const aminoConverters = {
...cosmosAminoConverters,
...ibcAminoConverters,
...oracleAminoConverters,
};
export const getLegacySigningClientOptions = ({ defaultTypes = [], } = {}) => {
const registry = new Registry([...defaultTypes, ...protoRegistry]);
const aminoTypes = new AminoTypes({
...aminoConverters,
});
return {
registry,
aminoTypes,
};
};
export const getLegacySigningClient = async ({ rpcEndpoint, signer, defaultTypes = [], }) => {
const { registry, aminoTypes } = getLegacySigningClientOptions({
defaultTypes,
});
const client = await SigningStargateClient.connectWithSigner(rpcEndpoint, signer, {
registry: registry,
aminoTypes,
});
return client;
};